Reverse engineering MCU

Déverrouillage de microcontrôleur - MikaTech

Nos valeurs et objectifs

À propos de MikaTech

Le temps a passé vite, du jour où nous avons réalisé notre premier projet de reverse engineering sur MCU 8051 en 1998, jusqu'à l'installation de notre laboratoire de reverse engineering d'un million de dollars en 2012, 14 années se sont écoulées. Aujourd'hui, nous démarrons notre nouvelle activité de développement de systèmes visuels embarqués, avec l'espoir de servir encore 10 ans.

signature Peter Lee Co-fondateur & CEO

Reverse engineering des FPGA (Field-programmable gate array)

    • Un réseau de portes programmables (FPGA) est un circuit intégré conçu pour être configuré par un client ou un concepteur après sa fabrication – d'où le terme « programmable sur le terrain ». La configuration d'un FPGA est généralement spécifiée à l'aide d'un langage de description de matériel (HDL), similaire à celui utilisé pour un circuit intégré spécifique à une application (ASIC) (les schémas de circuit étaient auparavant utilisés pour spécifier la configuration, comme pour les ASIC, mais cela devient de plus en plus rare). Les FPGA contemporains disposent de grandes ressources de portes logiques et de blocs RAM pour implémenter des calculs numériques complexes. Étant donné que les conceptions FPGA utilisent des E/S très rapides et des bus de données bidirectionnels, il devient difficile de vérifier le bon timing des données valides dans les temps d'établissement et de maintien. La planification de l'implantation permet d'allouer les ressources au sein du FPGA pour respecter ces contraintes de temps [1]. Les FPGA peuvent être utilisés pour implémenter toute fonction logique qu'un ASIC pourrait réaliser. La possibilité de mettre à jour la fonctionnalité après l'expédition, la reconfiguration partielle d'une partie de la conception [2] et les faibles coûts de développement non récurrents par rapport à une conception ASIC (malgré un coût unitaire généralement plus élevé) offrent des avantages pour de nombreuses applications [3].

      Les FPGA contiennent des composants logiques programmables appelés « blocs logiques » et une hiérarchie d'interconnexions reconfigurables qui permettent de « câbler » les blocs ensemble – un peu comme de nombreuses portes logiques (modifiables) qui peuvent être interconnectées de (nombreuses) configurations différentes. Les blocs logiques peuvent être configurés pour réaliser des fonctions combinatoires complexes, ou simplement des portes logiques simples comme ET et OU exclusif. Dans la plupart des FPGA, les blocs logiques incluent également des éléments de mémoire, qui peuvent être de simples bascules ou des blocs de mémoire plus complets [3].

      Certains FPGA possèdent des fonctionnalités analogiques en plus des fonctions numériques. La fonctionnalité analogique la plus courante est la vitesse de montée et la force d'attaque programmables sur chaque broche de sortie, permettant à l'ingénieur de définir des vitesses lentes sur les broches faiblement chargées qui sonneraient autrement de manière inacceptable, et de définir des vitesses plus fortes et plus rapides sur les broches fortement chargées sur les canaux haute vitesse qui autrement seraient trop lentes [4] [5]. Une autre fonctionnalité analogique relativement courante est les comparateurs différentiels sur les broches d'entrée conçues pour être connectées à des canaux de signalisation différentielle. Quelques « FPGA à signaux mixtes » intègrent des convertisseurs analogique-numérique (CAN) et des convertisseurs numérique-analogique (CNA) périphériques avec des blocs de conditionnement de signal analogique, leur permettant de fonctionner comme un système sur puce [6]. De tels dispositifs brouillent la frontière entre un FPGA, qui transporte des zéros et des uns numériques sur son tissu d'interconnexion programmable interne, et un réseau analogique programmable (FPAA), qui transporte des valeurs analogiques sur son tissu d'interconnexion programmable interne.


    • Liste de reverse engineering des FPGA Xilinx par Mikatech :
    • Série XCxx : décryptage de protection de copie de microprocesseur : X9536 XC9572 XC95108 XC95144 XC95288 XC95216 ...

      Série XCxxXL : reverse engineering microcontrôleur : X9536XL XC9572XL XC95108XL XC95144XL XC95288XL XC95216XL ...


    • Plus d'informations
    • FPGA (Field Programmable Gate Array) : Technologie, sécurité et reverse engineering – Vue d'ensemble

      1. Histoire et origine

      L'écosystème FPGA a évolué à partir des premiers composants semi-conducteurs programmables, notamment les PROM et les PLD, qui prenaient en charge à la fois la programmation par lots en usine et la configuration sur le terrain. Ces premiers dispositifs comportaient des interconnexions de portes câblées fixes, sans la flexibilité de routage dynamique qui caractérise les FPGA modernes. Pour répondre à la demande de matériel reconfigurable à grande échelle, le Naval Surface Warfare Department a financé le projet de Steve Casselman à la fin des années 1980 pour construire un système avec 600 000 portes reprogrammables, aboutissant à une architecture brevetée qui a jeté les bases de la logique programmable de grande densité moderne. Les théories fondamentales pour les matrices logiques et les blocs structurés ont été définies dans des brevets de 1985 par David W. Page et LuVerne R. Peterson, formant le socle théorique de la conception de matériel programmable actuelle.

      En 1985, les fondateurs de Xilinx, Ross Freeman et Bernard Vonderschmitt, ont lancé le XC2064, le premier FPGA commercialement réussi. Contrairement aux PLD antérieurs, il disposait de portes logiques entièrement programmables et d'interconnexions flexibles, marquant la naissance du marché commercial des FPGA. Le XC2064 ne contenait que 64 blocs logiques configurables avec des LUT à 3 entrées doubles, une spécification modeste par rapport aux normes actuelles. Freeman a ensuite été intronisé au National Inventors Hall of Fame pour cette réalisation révolutionnaire. Xilinx a dominé le marché jusqu'au milieu des années 1990, lorsque des concurrents comme Actel ont émergé et capturé près de 18 % des parts de marché mondiales.

      Les années 1990 ont vu une progression rapide de la complexité et du volume de production des FPGA. Au début de la décennie, les FPGA étaient limités aux infrastructures de télécommunications et de réseaux. À la fin des années 1990, l'amélioration de la densité et du rapport coût-efficacité a élargi leur utilisation dans les systèmes embarqués automobiles, industriels et grand public. Cette adoption généralisée a été favorisée par la réduction des nœuds de gravure, l'intégration de capacités DSP et une intégration au niveau de la carte simplifiée pour les scénarios de co-conception avec des MCU et microcontrôleurs embarqués.

      2. Architecture FPGA hybride moderne

      Une tendance moderne dominante intègre la matrice logique FPGA traditionnelle avec des cœurs de processeur embarqués pour créer un système sur puce programmable. Ce concept est né de la conception Burroughs SB24 de 1982, qui combinait une logique CPU reconfigurable sur une seule puce. Les implémentations commerciales actuelles incluent le Xilinx Zynq-7000 avec un double cœur ARM Cortex-A9 à 1,0 GHz, l'Altera Arria V avec un processeur ARM double cœur à 800 MHz, et l'Atmel FPSLIC associant un cœur AVR à une logique programmable. L'Actel SmartFusion intègre également un cœur Cortex-M3, une mémoire flash et RAM embarquées et des périphériques analogiques dans une matrice FPGA à base de flash.

      Lancé en 2010, le Xilinx Zynq-7000 a défini la catégorie des SoC « All Programmable », fusionnant du matériel microcontrôleur ARM durci avec la logique FPGA pour abaisser les barrières de développement pour les ingénieurs embarqués. Fabriqué en gravure 28 nm, il unifie le traitement logiciel séquentiel et l'accélération matérielle parallèle, répondant à la complexité croissante des conceptions embarquées modernes. L'intégration monolithique réduit la consommation d'énergie, minimise les interconnexions PCB, diminue les coûts des composants et améliore la fiabilité du système, car la plupart des défaillances électroniques proviennent des connexions au niveau de la carte plutôt que des défauts internes de la puce.

      Les concepteurs peuvent également implémenter des cœurs de processeur logiciels tels que MicroBlaze, Nios II et Mico32 entièrement dans les ressources logiques du FPGA au lieu d'utiliser des macro-cœurs durcis. Les FPGA contemporains prennent en charge la reconfiguration partielle en cours d'exécution, permettant un calcul reconfigurable où la logique matérielle s'adapte dynamiquement aux exigences des tâches. Au-delà des FPGA traditionnels, des dispositifs hybrides comme le Stretch S5000 combinent des réseaux de processeurs configurables par logiciel et une logique de type FPGA sur une seule puce pour offrir des performances de calcul adaptatives.

      3. Croissance de la densité, échelle du marché et comparaison avec les ASIC

      La densité de portes des FPGA a augmenté de manière exponentielle au fil des décennies : 8 192 portes sur la plateforme Burroughs de 1982, 9 000 portes sur les dispositifs Xilinx de 1987, 600 000 portes sur le prototype naval de 1992, et des millions de portes au début des années 2000. Le marché commercial est passé de 14 millions de dollars en 1987 à plus de 385 millions en 1993, 1,9 milliard en 2005, et une projection de 2,75 milliards en 2010. Les mises en route de conceptions FPGA dans le monde sont passées de 80 000 en 2005 à 90 000 en 2008, reflétant une adoption croissante dans l'industrie.

      Historiquement, les FPGA étaient en retard sur les ASIC en termes de vitesse, d'efficacité énergétique et de densité logique, nécessitant 40 fois la surface, 12 fois la puissance dynamique et fonctionnant à un tiers de la vitesse des implémentations ASIC équivalentes. Les familles modernes comme Xilinx Virtex-7 et Altera Stratix ont comblé cet écart, rivalisant avec les performances des ASIC avec des coûts de matière inférieurs et une reconfiguration à la volée. Des conceptions complexes qui nécessitaient auparavant 6 à 10 ASIC discrets peuvent désormais être consolidées sur un seul FPGA avancé.

      Les FPGA offrent une reprogrammabilité sur le terrain pour corriger les bogues du firmware déployé, réduire les délais de mise sur le marché et éliminer les frais de développement non récurrents coûteux. De nombreux développeurs adoptent un flux de travail hybride, prototypant sur FPGA avant de finaliser les ASIC pour une production à grand volume. Xilinx identifie la hausse des coûts des circuits intégrés, l'allongement des cycles de développement ASIC, la réduction des ressources R&D, les risques de revenus liés aux lancements retardés et les contraintes de coûts économiques comme des tendances clés faisant des FPGA des solutions idéales pour les applications de volume moyen à élevé.

      4. Différences fondamentales entre CPLD et FPGA

      La distinction entre les CPLD et les FPGA est principalement architecturale. Les CPLD utilisent des matrices logiques somme-de-produits rigides associées à un nombre limité de registres horlogés, offrant des délais de propagation prévisibles et un rapport logique/interconnexion élevé avec une flexibilité de conception limitée. Les FPGA sont dominés par le routage, offrant une flexibilité de conception bien plus grande mais une fermeture temporelle plus complexe pour les développeurs. En pratique, les FPGA fournissent une capacité de ressources bien plus importante et intègrent couramment des multiplieurs, de la mémoire et des SERDES haute vitesse, des fonctionnalités rarement vues dans les CPLD.

      Une différence matérielle clé réside dans le stockage non volatile : la plupart des CPLD intègrent une mémoire flash pour conserver les données de configuration pour une mise sous tension instantanée. Les FPGA traditionnels à base de SRAM reposent sur un stockage externe, ce qui les rend vulnérables aux attaques de lecture lors de l'initialisation du démarrage, ce qui est directement lié aux flux de reverse engineering et d'extraction de firmware ciblant les systèmes microcontrôleurs embarqués.

      5. Sécurité des FPGA, reverse engineering et vecteurs d'attaque matériels

      La sécurité des FPGA présente des compromis uniques par rapport aux ASIC et aux microcontrôleurs sécurisés. Les puces FPGA vierges ne contiennent aucune logique fixe lors de la fabrication, ce qui réduit le risque d'implantation matérielle malveillante pendant la fabrication. Cependant, les FPGA SRAM traditionnels exposent leur bitstream lors du chargement depuis une mémoire flash externe, créant des vulnérabilités que les attaquants exploitent pour extraire le contenu flash et effectuer des récupérations de données non autorisées. Les fournisseurs modernes atténuent ce risque avec un chiffrement de bitstream AES allant jusqu'à 256 bits et une authentification pour le stockage externe.

      Les FPGA à base de flash comme les Microsemi ProAsic 3 et Lattice XP2 stockent la configuration en interne, éliminant l'exposition externe du bitstream sans chiffrement obligatoire. Ces dispositifs offrent également une résistance aux radiations SEU pour les applications spatiales, améliorant la fiabilité dans les environnements extrêmes. Pour les FPGA commerciaux verrouillés et les dispositifs MCU, la sécurité est assurée par des registres lockbit dédiés et des fusibles programmables qui activent un état de verrouillage global pour bloquer l'accès au débogage non autorisé et le sondage de la mémoire.

      Pour déverrouiller les puces protégées, les adversaires déploient des techniques non invasives et physiques. Le glitch de tension pendant l'échantillonnage des fusibles au démarrage peut désactiver temporairement l'application des lockbits, permettant aux attaquants d'extraire les secteurs eeprom critiques qui stockent les empreintes de l'appareil et les métadonnées de sécurité. Pour les puces définitivement verrouillées avec des fusibles grillés, une décapsulation précise retire l'époxy de la puce pour exposer la puce de silicium, permettant une modification laser des fusibles programmables une fois pour désactiver définitivement les barrières de sécurité matérielles.

      Après une extraction réussie des données flash et eeprom, les ingénieurs effectuent une extraction complète du firmware pour récupérer les fichiers binaires de configuration bruts. L'étape suivante est la récupération de code, où des outils de décompilation reconstruisent du HDL lisible ou du pseudo-code à partir des données de bitstream capturées. Grâce à un reverse engineering détaillé, les analystes décodent la logique de contrôle cachée, les mécanismes d'authentification et les routines d'interaction périphérique intégrées dans la conception originale.

      Les données de conception récupérées peuvent être modifiées pour supprimer les restrictions anti-clonage, permettant aux acteurs malveillants de programmer le bitstream modifié sur du matériel vierge et de créer une copie exacte de l'appareil verrouillé d'origine. Ce risque de piratage menace la propriété intellectuelle industrielle, en particulier pour les systèmes de contrôle MCU basés sur FPGA utilisés dans l'automobile et l'aérospatiale. Les chercheurs en sécurité éthique utilisent les mêmes techniques pour identifier les faiblesses des lockbits, optimiser les schémas de fusibles et renforcer la sécurité native des FPGA contre la duplication illégale.

      6. Applications, architecture et flux de conception

      Les FPGA servent dans divers domaines, notamment le traitement numérique du signal, la radio logicielle, le prototypage ASIC, l'imagerie médicale, la vision par ordinateur, la cryptographie et les systèmes de détection industriels. Utilisés à l'origine comme simple logique de colle PCB pour remplacer les CPLD, ils fonctionnent désormais comme des SoC complets après l'intégration de multiplieurs dédiés à la fin des années 1990. Traditionnellement utilisés pour des produits de faible volume en raison du coût unitaire programmable, les dynamiques de coût modernes ont étendu leur utilisation aux marchés de grande consommation.

      Les applications verticales clés couvrent l'avionique DO-254, le traitement de la bande de base des télécommunications, l'infodivertissement automobile, le codage vidéo de diffusion, le routage des centres de données, le calcul haute performance, le contrôle moteur industriel et les équipements de balayage médical. L'extraction précoce de crypto-monnaies a également tiré parti des atouts du calcul parallèle FPGA avant le passage au matériel ASIC.

      L'architecture FPGA standard se compose d'une grille de blocs logiques configurables, de pastilles d'E/S périphériques et de canaux de routage uniformes. Les cellules logiques comprennent généralement une LUT, un additionneur complet et une bascule ; les dispositifs haut de gamme modernes adoptent des LUT à 6 entrées pour une efficacité améliorée. Des réseaux de routage globaux dédiés gèrent les signaux d'horloge à faible gigue séparément des pistes d'interconnexion générales. Les segments de routage se terminent par des boîtes de commutation, qui peuvent être chaînées pour former des chemins de signal longue distance à travers la matrice.

      Les blocs embarqués durcis, y compris les multiplieurs DSP, les banques mémoire et les transceivers, améliorent les performances par rapport aux équivalents générés par la logique. Les FPGA sont essentiels pour la validation ASIC pré-silicium et le développement de firmware, accélérant la mise sur le marché des nouveaux produits de puces. Les fabricants, dont Xilinx et Tabula, ont développé des FPGA à empilement 3D utilisant des interposeurs en silicium pour augmenter la densité sans agrandir le boîtier.

      Le flux de conception FPGA standard utilise VHDL ou Verilog pour la saisie, suivi de la synthèse, du placement-routage, de l'analyse temporelle et de la simulation pour générer un bitstream de configuration. Le bitstream est chargé via JTAG ou une mémoire externe. Des outils de haut niveau comme LabVIEW simplifient la programmation, tandis que les cœurs IP préconstruits accélèrent le développement. Les équipes de conception effectuent des simulations RTL, au niveau des portes et de routage post-placement pour vérifier la fonctionnalité avant le déploiement.

      7. Technologie de fabrication et fabricants

      Les technologies de fabrication des FPGA incluent la SRAM pour une reprogrammation illimitée, l'antifusible unique pour une sécurité maximale, les composants PROM/EPROM obsolètes, l'EEPROM électriquement reconfigurable, les dispositifs flash optimisés en densité et le matériel à fusibles bipolaires hérités. Le CMOS est la technologie de transistors dominante pour tous les produits logiques programmables modernes.

      Xilinx et Intel Altera contrôlent plus de 80 % du marché mondial des FPGA, fournissant des logiciels de conception gratuits pour les plates-formes Windows et Linux. Les concurrents de niche incluent le spécialiste basse consommation Lattice Semiconductor, le spécialiste aérospatial sécurisé Microsemi, Achronix haute vitesse et QuickLogic orienté appareils portables. L'architecture FPGA à multiplexage temporel de Tabula (2010) offrait une optimisation de la densité via le partage virtualisé des ressources logiques.

    Questions générales sur l'extraction de firmware pour microcontrôleur


      • Est-il sûr d'envoyer un paiement à MikaTech ?

        Si MikaTech était une mauvaise entreprise, vous trouveriez des tonnes de mauvaises réputations sur ses services sur internet au cours de ses 28 ans d'histoire

        Donc, la réponse est OUI ! Nous sommes de bonnes personnes.

        Pourquoi choisir Mikatech, veuillez cliquer ici pour le savoir


      • Mikatech peut-il casser des circuits intégrés non listés sur ce site ?

        Différents fabricants de puces ont des numéros de pièces différents, mais le cœur interne de la puce peut être fabriqué avec la même technologie. Il serait tout à fait impossible de lister tous les numéros de pièces auxquels notre technologie peut s'appliquer, comme MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.

        De plus, avec l'avancée de la technologie, nous acquérons chaque jour plus d'expérience et développons de nouvelles méthodes de reverse engineering pour différents circuits intégrés. La liste complète des numéros de pièces de circuits intégrés relevant de notre champ de compétence ne cesse de s'agrandir, veuillez nous contacter pour en savoir plus.

      • Ma vie privée sera-t-elle protégée ?

        Mikatech Innovative Limited comprend l'importance de la vie privée de ses clients. Dès que vous contactez Mikatech, vos informations personnelles sont placées sous la protection de notre règlement de gestion, développé au fil de nos années de pratique. Mikatech utilise ces informations pour personnaliser ses services à votre égard et ne les divulguera jamais à des tiers, pour quelque raison que ce soit.
        Pour chaque projet que nous réalisons, nous supprimons toutes les données, tous les matériaux et tous les codes 60 jours après la livraison des fichiers, ce qui nous protège et protège votre vie privée.

      • Est-il légal de faire appel aux services de Mikatech ?

        Oui, c'est tout à fait légal.
        Mikatech fournit ses services de reverse engineering à des fins éducatives uniquement. L'utilisation des services mentionnés ci-dessus peut être illégale dans certains pays ou régions, veuillez vérifier les lois locales. Mikatech n'assume aucune responsabilité concernant l'utilisation des services mentionnés ci-dessus qui pourrait être considérée comme illégale.


      • Je vous ai envoyé un email, pourquoi n'y a-t-il pas de réponse ?

        • A. Notre serveur de messagerie est temporairement en panne, votre message n'a pas été livré dans notre boîte aux lettres même si le message d'envoi réussi s'affiche à l'écran, veuillez nous recontacter.
        • B. Notre email est reconnu comme courrier indésirable par votre serveur, donc notre réponse a été rejetée par votre serveur ou elle est redirigée vers votre dossier de courriers indésirables, veuillez supprimer notre compte de la liste des indésirables ou vérifier votre dossier de courriers indésirables, ou utilisez un autre compte email comme gmail.
        • C. Votre email est reconnu comme courrier indésirable par notre serveur, donc votre email a été placé dans notre dossier de courriers indésirables, veuillez utiliser un autre compte email pour nous recontacter.

        temps de piratage microcontrôleur

        Années

        28 +
        pays de piratage microcontrôleur

        Pays

        110 +
        clients attaque microcontrôleur

        Clients

        5000 +
        projets microcontrôleur déverrouillés

        Projets

        60000 +
        extraction de firmware microcontrôleur embarqué