Ingénierie inverse

0
Apprendre encore plus Cet article a plusieurs problèmes. Aidez -nous à l’améliorer ou discutez de ces problèmes sur la page de discussion . ( Apprenez comment et quand supprimer ces modèles de messages )

Apprendre encore plus La section principale de cet article est peut-être trop courte pour résumer correctement les points clés . Veuillez envisager d’élargir la piste pour fournir un aperçu accessible de tous les aspects importants de l’article. ( janvier 2018 )

(Découvrez comment et quand supprimer ce modèle de message)

La rétro-ingénierie (également connue sous le nom de rétro-ingénierie ou rétro-ingénierie ) est un processus ou une méthode par laquelle on tente de comprendre par un raisonnement déductif comment un appareil, un processus, un système ou un logiciel précédemment fabriqué accomplit une tâche avec très peu (le cas échéant) comprendre exactement comment il le fait.

L’ingénierie inverse est applicable dans les domaines de l’ingénierie informatique , de l’ingénierie mécanique , de la conception , de l’ingénierie électronique, de l’ingénierie logicielle , de l’ ingénierie chimique , [1] et de la biologie des systèmes . [2]

Aperçu

Il existe de nombreuses raisons d’effectuer de la rétro-ingénierie dans divers domaines. L’ingénierie inverse a ses origines dans l’analyse du matériel à des fins commerciales ou militaires. [3] : 13 Cependant, le processus d’ingénierie inverse, en tant que tel, ne concerne pas la création d’une copie ou la modification de l’artefact d’une manière ou d’une autre. Il ne s’agit que d’une analyse pour déduire les caractéristiques de conception des produits avec peu ou pas de connaissances supplémentaires sur les procédures impliquées dans leur production d’origine. [3] : 15

Dans certains cas, l’objectif du processus de rétro-ingénierie peut simplement être une nouvelle documentation des Systèmes hérités . [3] : 15 [4] Même lorsque le produit rétro-conçu est celui d’un concurrent, le but n’est peut-être pas de le copier mais d’effectuer une analyse du concurrent . [5] L’ingénierie inverse peut également être utilisée pour créer des produits interopérables et malgré certaines législations étroitement adaptées des États-Unis et de l’Union européenne, la légalité de l’utilisation de techniques d’ingénierie inverse spécifiques à cette fin a été vivement contestée devant les tribunaux du monde entier pendant plus de deux décennies. [6]

L’ingénierie inverse du logiciel peut aider à améliorer la compréhension du code source sous-jacent pour la maintenance et l’amélioration du logiciel, des informations pertinentes peuvent être extraites pour prendre une décision pour le développement du logiciel et des représentations graphiques du code peuvent fournir des vues alternatives concernant le code source, qui peut aider à détecter et corriger un bogue logiciel ou une vulnérabilité. Souvent, à mesure que certains logiciels se développent, leurs informations de conception et leurs améliorations sont souvent perdues au fil du temps, mais ces informations perdues peuvent généralement être récupérées grâce à la rétro-ingénierie. Le processus peut également aider à réduire le temps nécessaire pour comprendre le code source, réduisant ainsi le coût global du développement logiciel. [7]L’ingénierie inverse peut également aider à détecter et à éliminer un code malveillant écrit dans le logiciel avec de meilleurs détecteurs de code. L’inversion d’un code source peut être utilisée pour trouver d’autres utilisations du code source, telles que la détection de la réplication non autorisée du code source là où il n’était pas destiné à être utilisé, ou la révélation de la manière dont le produit d’un concurrent a été construit. [8] Ce processus est couramment utilisé pour “craquer” des logiciels et des supports afin de supprimer leur protection contre la copie , [8] : 7 ou pour créer une copie éventuellement améliorée ou même une Contrefaçon , ce qui est généralement l’objectif d’un concurrent ou d’un pirate informatique . [8] : 8

Les développeurs de logiciels malveillants utilisent souvent des techniques d’ingénierie inverse pour trouver des vulnérabilités dans un système d’exploitation afin de créer un virus informatique capable d’exploiter les vulnérabilités du système. [8] : 5 L’ingénierie inverse est également utilisée dans la cryptanalyse pour trouver des vulnérabilités dans le chiffrement de substitution , l’algorithme à clé symétrique ou la cryptographie à clé publique . [8] : 6

Il existe d’autres utilisations de la rétro-ingénierie :

  • Interfaçage . L’ingénierie inverse peut être utilisée lorsqu’un système doit s’interfacer avec un autre système et que la manière dont les deux systèmes négocieraient doit être établie. De telles exigences existent généralement pour l’interopérabilité .
  • Espionnage militaire ou commercial . Apprendre les dernières recherches d’un ennemi ou d’un concurrent en volant ou en capturant un prototype et en le démantelant peut entraîner le développement d’un produit similaire ou une meilleure contre-mesure contre celui-ci.
  • Obsolescence . Les Circuits intégrés sont souvent conçus sur des systèmes propriétaires et construits sur des lignes de production, qui deviennent obsolètes en quelques années seulement. Lorsque les systèmes utilisant ces pièces ne peuvent plus être maintenus puisque les pièces ne sont plus fabriquées, la seule façon d’intégrer la fonctionnalité dans la nouvelle technologie est de procéder à une ingénierie inverse de la puce existante, puis de la reconcevoir à l’aide d’outils plus récents en utilisant la compréhension acquise comme un guide. Un autre problème lié à l’obsolescence qui peut être résolu par l’ingénierie inverse est la nécessité de prendre en charge (maintenance et fourniture pour un fonctionnement continu) les appareils hérités existants qui ne sont plus pris en charge par leur fabricant d’équipement d’origine . Le problème est particulièrement critique dans les opérations militaires.
  • Analyse de la sécurité des produits . Celui-ci examine le fonctionnement d’un produit en déterminant les spécifications de ses composants, en estime les coûts et identifie les contrefaçons potentielles de brevets . L’acquisition de données sensibles en désassemblant et en analysant la conception d’un composant système fait également partie de l’analyse de la sécurité des produits. [9] Une autre intention peut être de supprimer la protection contre la copie ou de contourner les restrictions d’accès.
  • Veille technique concurrentielle . Il s’agit de comprendre ce que fait réellement son concurrent, plutôt que ce qu’il dit qu’il fait.
  • Économiser de l’argent . Découvrir ce qu’un appareil électronique peut faire peut éviter à un utilisateur d’acheter un produit séparé.
  • Réaffectation . Les objets obsolètes sont alors réutilisés d’une manière différente mais utile.
  • Conception . Les entreprises de production et de conception ont appliqué l’ingénierie inverse au processus de fabrication artisanal pratique. Les entreprises peuvent travailler sur des collections de fabrication « historiques » grâce à la numérisation 3D, à la remodélisation et à la reconception 3D. En 2013, les fabricants italiens Baldi et Savio Firmino ainsi que l’Université de Florence ont optimisé leurs processus d’innovation, de conception et de production. [dix]

Situations courantes

Machines

À mesure que la conception assistée par ordinateur (CAO) est devenue plus populaire, la rétro-ingénierie est devenue une méthode viable pour créer un modèle virtuel 3D d’une pièce physique existante à utiliser dans la CAO 3D, la FAO , l’ IAO ou d’autres logiciels. [11] Le processus de rétro-ingénierie consiste à mesurer un objet puis à le reconstruire sous forme de modèle 3D. L’objet physique peut être mesuré à l’aide de technologies de numérisation 3D telles que les MMT , les scanners laser , les numériseurs à lumière structurée ou la tomodensitométrie industrielle (tomodensitométrie). Les données mesurées seules, généralement représentées sous forme de nuage de points, manque d’informations topologiques et d’intention de conception. Le premier peut être récupéré en convertissant le nuage de points en un maillage à face triangulaire. La rétro-ingénierie vise à aller au-delà de la production d’un tel maillage et à récupérer l’intention de conception en termes de surfaces analytiques simples le cas échéant (plans, cylindres, etc.) ainsi qu’éventuellement de surfaces NURBS pour produire un modèle CAO de représentation des frontières. La récupération d’un tel modèle permet de modifier une conception pour répondre à de nouvelles exigences, de générer un plan de fabrication, etc.

La modélisation hybride est un terme couramment utilisé lorsque NURBS et la modélisation paramétrique sont implémentées ensemble. L’utilisation d’une combinaison de surfaces géométriques et de formes libres peut fournir une méthode puissante de modélisation 3D. Des zones de données de forme libre peuvent être combinées avec des surfaces géométriques exactes pour créer un modèle hybride. Un exemple typique de ceci serait l’ingénierie inverse d’une culasse, qui comprend des caractéristiques de moulage de forme libre, telles que des chemises d’eau et des zones usinées à haute tolérance. [12]

L’ingénierie inverse est également utilisée par les entreprises pour intégrer la géométrie physique existante dans les environnements de développement de produits numériques, pour créer un enregistrement numérique 3D de leurs propres produits ou pour évaluer les produits des concurrents. Il est utilisé pour analyser le fonctionnement d’un produit, ce qu’il fait, ses composants ; coûts estimés; identifier une éventuelle Contrefaçon de brevet ; etc.

L’ingénierie de la valeur, activité connexe également utilisée par les entreprises, consiste à déconstruire et à analyser les produits. Cependant, l’objectif est de trouver des opportunités de réduction des coûts.

Ingénierie inverse des PCB

Apprendre encore plus Cette section a besoin d’être agrandie . Vous pouvez aider en y ajoutant . ( avril 2022 )

L’ingénierie inverse des cartes de circuits imprimés consiste à recréer des données de fabrication pour une carte de circuit imprimé particulière. Ceci est fait pour permettre l’analyse comparative et la prise en charge des Systèmes hérités.

Logiciel

En 1990, l’ Institute of Electrical and Electronics Engineers (IEEE) a défini l’ingénierie inverse (logicielle) comme “le processus d’analyse d’un système sujet pour identifier les composants du système et leurs interrelations et pour créer des représentations du système sous une autre forme ou à un niveau d’abstraction supérieur” dans lequel le “système de sujets” est le produit final du développement logiciel. L’ingénierie inverse est un processus d’examen uniquement, et le système logiciel considéré n’est pas modifié, ce qui serait autrement une réingénierie ou une restructuration. La rétro-ingénierie peut être effectuée à partir de n’importe quelle étape du cycle du produit, pas nécessairement à partir du produit final fonctionnel. [7]

Il y a deux composants dans la rétro-ingénierie : la redocumentation et la récupération de la conception. La redocumentation est la création d’une nouvelle représentation du code informatique afin qu’il soit plus facile à comprendre. Pendant ce temps, la récupération de conception est l’utilisation de la déduction ou du raisonnement à partir des connaissances générales ou de l’expérience personnelle du produit pour comprendre pleinement la fonctionnalité du produit. [7] Cela peut également être considéré comme “un retour en arrière dans le cycle de développement”. [13] Dans ce modèle, la sortie de la phase de mise en œuvre (sous forme de code source) est rétro-conçue à la phase d’analyse, dans une inversion du modèle traditionnel en cascade . Un autre terme pour cette technique est la compréhension du programme . [4]La conférence de travail sur l’ingénierie inverse (WCRE) a eu lieu chaque année pour explorer et développer les techniques d’ingénierie inverse. [8] [14] L’ingénierie logicielle assistée par ordinateur (CASE) et la génération de code automatisée ont grandement contribué dans le domaine de l’ingénierie inverse. [8]

La technologie logicielle anti-effraction telle que l’ obfuscation est utilisée pour dissuader à la fois l’ingénierie inverse et la réingénierie des logiciels propriétaires et des systèmes pilotés par logiciel. En pratique, deux grands types de rétro-ingénierie se dégagent. Dans le premier cas, le code source est déjà disponible pour le logiciel, mais des aspects de niveau supérieur du programme, qui sont peut-être mal documentés ou documentés mais qui ne sont plus valides, sont découverts. Dans le second cas, il n’y a pas de code source disponible pour le logiciel, et tout effort visant à découvrir un code source possible pour le logiciel est considéré comme de l’ingénierie inverse. La deuxième utilisation du terme est plus familière à la plupart des gens. L’ingénierie inverse des logiciels peut utiliser la conception de la salle blanchetechnique pour éviter la violation du droit d’auteur.

Dans le même ordre d’idées, les tests de boîte noire en génie logiciel ont beaucoup en commun avec la rétro-ingénierie. Le testeur a généralement l’ API mais a pour objectif de trouver des bogues et des fonctionnalités non documentées en dénigrant le produit de l’extérieur. [15]

D’autres objectifs de l’ingénierie inverse comprennent l’audit de sécurité, la suppression de la protection contre la copie (” cracking “), le contournement des restrictions d’accès souvent présentes dans l’électronique grand public , la personnalisation des Systèmes embarqués (tels que les systèmes de gestion de moteur), les réparations ou les mises à niveau internes, la possibilité de des fonctionnalités supplémentaires sur du matériel “paralysé” à faible coût (comme certains jeux de puces de cartes graphiques), ou même une simple satisfaction de la curiosité.

Logiciel binaire

L’ingénierie inverse binaire est effectuée si le code source d’un logiciel n’est pas disponible. [8] Ce processus est parfois appelé ingénierie de code inversée ou RCE. [16] Par exemple, la décompilation des binaires pour la plate- forme Java peut être réalisée en utilisant Jad. Un cas célèbre de rétro-ingénierie a été la première implémentation non IBM du BIOS PC , qui a lancé l’industrie historique compatible IBM PC qui a été la plate-forme matérielle informatique la plus dominante pendant de nombreuses années. L’ingénierie inverse des logiciels est protégée aux États-Unis par l’ exception d’ utilisation équitable de la loi sur le droit d’auteur. [17] Le Logiciel Samba , qui permet aux systèmes qui n’exécutent pas les systèmes Microsoft Windows de partager des fichiers avec les systèmes qui l’exécutent, est un exemple classique de rétro-ingénierie logicielle [18] puisque le projet Samba a dû rétro-concevoir des informations non publiées sur la façon dont Le partage de fichiers Windows fonctionnait pour que les ordinateurs non Windows puissent l’émuler. Le projet Wine fait la même chose pour l’ API Windows , et OpenOffice.org fait cela pour les formats de fichiers Microsoft Office . Le ReactOSprojet est encore plus ambitieux dans ses objectifs en s’efforçant de fournir une compatibilité binaire (ABI et API) avec les systèmes d’exploitation Windows actuels de la branche NT, ce qui permet aux logiciels et pilotes écrits pour Windows de fonctionner sur un logiciel libre rétro-conçu en salle blanche ( GPL ) équivalent. WindowsSCOPE permet la rétro-ingénierie du contenu complet de la mémoire vive d’un système Windows, y compris une rétro-ingénierie graphique au niveau binaire de tous les processus en cours d’exécution.

Un autre exemple classique, sinon bien connu, est qu’en 1987 , les Laboratoires Bell ont procédé à la rétro-ingénierie du système Mac OS 4.1, fonctionnant à l’origine sur Apple Macintosh SE , afin qu’il puisse l’exécuter sur leurs propres machines RISC. [19]

Techniques logicielles binaires

L’ingénierie inverse des logiciels peut être réalisée par diverses méthodes. Les trois principaux groupes de rétro-ingénierie logicielle sont

  1. Analyse par l’observation de l’échange d’informations, la plus répandue dans l’ingénierie inverse de protocole, qui implique l’utilisation d’analyseurs de bus et de renifleurs de paquets , par exemple pour accéder à un bus informatique ou à une connexion réseau informatique et révéler les données de trafic qui s’y trouvent. Le comportement du bus ou du réseau peut ensuite être analysé pour produire une implémentation autonome qui imite ce comportement. C’est particulièrement utile pour les pilotes de périphériques d’ingénierie inverse . Parfois, la rétro-ingénierie sur les Systèmes embarqués est grandement assistée par des outils délibérément introduits par le constructeur, comme les ports JTAG ou d’autres moyens de débogage. Dans Microsoft Windows, les débogueurs de bas niveau tels que SoftICE sont populaires.
  2. Désassemblage à l’aide d’un désassembleur , ce qui signifie que le langage machine brut du programme est lu et compris dans ses propres termes, uniquement à l’aide de mnémoniques en langage machine . Cela fonctionne sur n’importe quel programme informatique mais peut prendre un certain temps, en particulier pour ceux qui ne sont pas habitués au code machine. Le désassembleur interactif est un outil particulièrement populaire.
  3. Décompilation à l’aide d’un décompilateur , un processus qui tente, avec des résultats variables, de recréer le code source dans un langage de haut niveau pour un programme uniquement disponible en code machine ou en bytecode .

Classement des logiciels

La classification des logiciels est le processus d’identification des similitudes entre différents binaires logiciels (comme deux versions différentes du même binaire) utilisé pour détecter les relations de code entre les échantillons de logiciels. La tâche était traditionnellement effectuée manuellement pour plusieurs raisons (telles que l’analyse des correctifs pour la détection des vulnérabilités et la violation du droit d’auteur ), mais elle peut désormais être effectuée de manière quelque peu automatique pour un grand nombre d’échantillons.

Cette méthode est principalement utilisée pour des tâches de rétro-ingénierie longues et approfondies (analyse complète d’un algorithme complexe ou d’un gros logiciel). En général, la classification statistique est considérée comme un problème difficile, ce qui est également vrai pour la classification des logiciels, et si peu de solutions/outils qui gèrent bien cette tâche.

Code source

Un certain nombre d’ outils UML qualifient le processus d’importation et d’analyse du code source pour générer des diagrammes UML de “rétro-ingénierie”. Voir Liste des outils UML .

Bien qu’UML soit une approche pour fournir une “ingénierie inverse”, des avancées plus récentes dans les activités de normalisation internationales ont abouti au développement du métamodèle de découverte des connaissances (KDM). La norme fournit une ontologie pour la représentation intermédiaire (ou abstraite) des constructions de langage de programmation et de leurs interrelations. Un groupe de gestion d’objetsstandard (en passe de devenir également une norme ISO), KDM a commencé à s’imposer dans l’industrie avec le développement d’outils et d’environnements d’analyse capables d’extraire et d’analyser le code source, binaire et byte. Pour l’analyse du code source, l’architecture des normes granulaires de KDM permet l’extraction des flux du système logiciel (données, contrôle et cartes d’appels), des architectures et des connaissances de la couche métier (règles, termes et processus). La norme permet l’utilisation d’un format de données commun (XMI) permettant la corrélation des différentes couches de connaissances du système pour une analyse détaillée (telle que la cause première, l’impact) ou une analyse dérivée (telle que l’extraction de processus métier). Bien que les efforts pour représenter les constructions de langage puissent être sans fin en raison du nombre de langages, l’évolution continue des langages logiciels, et le développement de nouveaux langages, la norme permet l’utilisation d’extensions pour prendre en charge le large ensemble de langages ainsi que l’évolution. KDM est compatible avec UML, BPMN, RDF et d’autres normes permettant la migration vers d’autres environnements et tire ainsi parti des connaissances système pour des efforts tels que la transformation du système logiciel et l’analyse de la couche métier de l’entreprise.

Protocoles

Learn more.

Les protocoles sont des ensembles de règles qui décrivent les formats de message et la façon dont les messages sont échangés : la machine d’état du protocole . En conséquence, le problème de la rétro-ingénierie de protocole peut être divisé en deux sous-problèmes : le format de message et la rétro-ingénierie de la machine d’état.

Les formats de message ont traditionnellement été rétro-conçus par un processus manuel fastidieux, qui impliquait une analyse de la façon dont les implémentations de protocole traitent les messages, mais des recherches récentes ont proposé un certain nombre de solutions automatiques. [20] [21] [22] Typiquement, le groupe d’approches automatiques observe les messages dans des clusters en utilisant diverses analyses de clustering , ou ils émulent l’implémentation du protocole traçant le traitement des messages.

Il y a eu moins de travail sur la rétro-ingénierie des machines à états des protocoles. En général, les machines à états du protocole peuvent être apprises soit par un processus d’ apprentissage hors ligne , qui observe passivement la communication et tente de construire la machine à états la plus générale acceptant toutes les séquences de messages observées, et l’apprentissage en ligne , qui permet la génération interactive de sondages. séquences de messages et écouter les réponses à ces séquences de sondage. En général, l’apprentissage hors ligne de petites machines à états est connu pour être NP-complet , [23] mais l’apprentissage en ligne peut se faire en temps polynomial. [24] Une approche hors ligne automatique a été démontrée par Comparetti et al. [22]et une approche en ligne par Cho et al. [25]

D’autres composants des protocoles typiques, comme les fonctions de chiffrement et de hachage, peuvent également être rétro-conçus automatiquement. En règle générale, les approches automatiques retracent l’exécution des implémentations de protocole et tentent de détecter les tampons en mémoire contenant des paquets non chiffrés. [26]

Circuits intégrés/cartes à puce

L’ingénierie inverse est une forme invasive et destructrice d’analyse d’une carte à puce . L’attaquant utilise des produits chimiques pour graver couche après couche la carte à puce et prend des photos avec un microscope électronique à balayage (MEB). Cette technique peut révéler toute la partie matérielle et logicielle de la carte à puce. Le problème majeur pour l’attaquant est de tout mettre dans le bon ordre pour savoir comment tout fonctionne. Les fabricants de la carte essaient de cacher les clés et les opérations en mélangeant les positions de mémoire, comme par le brouillage du bus. [27] [28]

Dans certains cas, il est même possible de fixer une sonde pour mesurer les tensions alors que la carte à puce est encore opérationnelle. Les fabricants de la carte utilisent des capteurs pour détecter et prévenir cette attaque. [29] Cette attaque n’est pas très courante car elle nécessite à la fois un investissement important en efforts et un équipement spécial qui n’est généralement disponible que pour les grands fabricants de puces. De plus, le gain de cette attaque est faible car d’autres techniques de sécurité sont souvent utilisées, telles que les comptes fantômes. Il n’est toujours pas certain que les attaques contre les cartes à puce et PIN pour répliquer les données de cryptage puis pour casser les PIN fourniraient une attaque rentable contre l’authentification multifacteur.

L’ingénierie inverse complète se déroule en plusieurs étapes majeures.

La première étape après que les images ont été prises avec un SEM consiste à assembler les images, ce qui est nécessaire car chaque couche ne peut pas être capturée par une seule prise de vue. Un SEM doit balayer la zone du circuit et prendre plusieurs centaines d’images pour couvrir toute la couche. L’assemblage d’images prend en entrée plusieurs centaines d’images et produit une seule image correctement superposée de la couche complète.

Ensuite, les couches cousues doivent être alignées car l’échantillon, après gravure, ne peut pas être placé exactement dans la même position par rapport au SEM à chaque fois. Par conséquent, les versions cousues ne se chevaucheront pas correctement, comme sur le circuit réel. Habituellement, trois points correspondants sont sélectionnés et une transformation est appliquée sur cette base.

Pour extraire la structure du circuit, les images alignées et cousues doivent être segmentées, ce qui met en évidence les circuits importants et les sépare de l’arrière-plan inintéressant et des matériaux isolants.

Enfin, les fils peuvent être tracés d’une couche à l’autre, et la netlist du circuit, qui contient toutes les informations du circuit, peut être reconstituée.

Applications militaires

Apprendre encore plus Cette section a besoin de citations supplémentaires pour vérification . ( juillet 2014 ) Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (Learn how and when to remove this template message)

L’ingénierie inverse est souvent utilisée par des personnes pour copier des technologies, des dispositifs ou des informations d’autres nations qui ont été obtenues par des troupes régulières sur le terrain ou par des opérations de renseignement . Il a été souvent utilisé pendant la Seconde Guerre mondiale et la guerre froide . Voici des exemples bien connus de la Seconde Guerre mondiale et plus tard :

  • Jerry can : Les forces britanniques et américaines de la Seconde Guerre mondiale ont remarqué que les Allemands avaient des bidons d’essence avec un excellent design. Ils ont rétro-conçu des copies de ces canettes, qui étaient communément appelées “Jerrycans”.
  • Panzerschreck : Les Allemands ont capturé un bazooka américain pendant la Seconde Guerre mondiale et l’ont rétro-conçu pour créer le plus grand Panzerschreck.
  • Tupolev Tu-4 : En 1944, trois bombardiers américains B-29 en mission au-dessus du Japon ont été contraints d’atterrir en Union soviétique . Les Soviétiques, qui n’avaient pas de bombardier stratégique similaire, décidèrent de copier le B-29. En trois ans, ils avaient développé le Tu-4, une copie presque parfaite. [30]
  • Radar SCR-584 : copié par l’Union soviétique après la Seconde Guerre mondiale, il est connu pour quelques modifications – СЦР-584, Бинокль-Д.
  • Fusée V-2 : Les documents techniques du V-2 et des technologies associées ont été capturés par les Alliés occidentaux à la fin de la guerre. Les Américains ont concentré leurs efforts d’ingénierie inverse via l’opération Paperclip , qui a conduit au développement de la fusée PGM-11 Redstone . [31] Les Soviétiques ont utilisé des ingénieurs allemands capturés pour reproduire des documents techniques et des plans et ont travaillé à partir de matériel capturé pour fabriquer leur clone de la fusée, le R-1 . Ainsi commença le programme de fusées soviétiques d’après-guerre, qui conduisit au R-7 et au début de la course à l’espace .
  • Le missile K-13/R-3S ( nom de rapport OTAN AA-2 Atoll), une copie rétro-conçue soviétique de l’ AIM-9 Sidewinder , a été rendu possible après qu’un AIM-9B taïwanais (ROCAF) ait frappé un PLA MiG-17 chinois sans exploser en septembre 1958. [32] Le missile s’est logé dans la cellule et le pilote est retourné à la base avec ce que les scientifiques soviétiques décriraient comme un cours universitaire sur le développement de missiles.
  • Missile BGM-71 TOW : En mai 1975, les négociations entre l’Iran et Hughes Missile Systems sur la coproduction des missiles TOW et Maverick ont ​​été bloquées en raison de désaccords dans la structure des prix, la révolution de 1979 qui a suivi a mis fin à tous les projets de coproduction. L’Iran a ensuite réussi à rétroconcevoir le missile et produit maintenant sa propre copie, le Toophan .
  • La Chine a inversé de nombreux exemples de matériel occidental et russe, des avions de chasse aux missiles et aux voitures HMMWV , comme le MiG-15 (qui est devenu le J-7) et le Su-33 (qui est devenu le J-15). [33] Des analyses plus récentes de la croissance militaire de la Chine ont souligné les limites inhérentes à l’ingénierie inverse habituelle pour les systèmes d’armes avancés. [34]
  • Au cours de la Seconde Guerre mondiale, des cryptographes polonais et britanniques ont étudié les faiblesses des machines de cryptage de messages allemandes « Enigma » capturées. Leur fonctionnement était alors simulé sur des appareils électromécaniques, des « bombes », qui tentaient tous les réglages de brouilleurs possibles des machines « Enigma » qui aidaient à casser les messages codés qui avaient été envoyés par les Allemands.
  • Toujours pendant la Seconde Guerre mondiale, des scientifiques britanniques ont analysé et vaincu une série de systèmes de radionavigation de plus en plus sophistiqués utilisés par la Luftwaffe pour effectuer des missions de bombardement guidées la nuit. Les contre-mesures britanniques au système étaient si efficaces que dans certains cas, les avions allemands étaient dirigés par des signaux pour atterrir sur les bases de la RAF car ils pensaient être revenus sur le territoire allemand.

Réseaux de gènes

Les concepts d’ingénierie inverse ont également été appliqués à la biologie , en particulier à la tâche de comprendre la structure et la fonction des réseaux de régulation des gènes . Ils régulent presque tous les aspects du comportement biologique et permettent aux cellules d’effectuer des processus physiologiques et des réponses aux perturbations. Comprendre la structure et le comportement dynamique des réseaux de gènes est donc l’un des enjeux primordiaux de la biologie des systèmes, avec des répercussions pratiques immédiates dans plusieurs applications qui dépassent la recherche fondamentale. [35] Il existe plusieurs méthodes d’ingénierie inverse des réseaux de régulation des gènes en utilisant des méthodes de biologie moléculaire et de science des données. Ils ont été généralement divisés en six classes : [36]

Les six classes de méthodes d’inférence de réseaux de gènes, selon [36]

  • Les méthodes de coexpression sont basées sur la notion que si deux gènes présentent un profil d’expression similaire, ils peuvent être liés bien qu’aucune causalité ne puisse être simplement déduite de la coexpression.
  • Les méthodes de motif de séquence analysent les promoteurs de gènes pour trouver des domaines de liaison spécifiques aux facteurs de transcription . S’il est prévu qu’un facteur de transcription se lie à un promoteur d’un gène spécifique, une connexion régulatrice peut être émise.
  • Les méthodes d’ immunoprécipitation de la chromatine (ChIP) étudient le profil à l’échelle du génome de la liaison à l’ADN des facteurs de transcription choisis pour déduire leurs réseaux de gènes en aval.
  • Les méthodes d’orthologie transfèrent la connaissance du réseau de gènes d’une espèce à une autre.
  • Les méthodes de la littérature mettent en œuvre l’exploration de texte et la recherche manuelle pour identifier les connexions de réseaux de gènes putatives ou expérimentalement prouvées.
  • Les méthodes de complexes transcriptionnels tirent parti des informations sur les interactions protéine-protéine entre les facteurs de transcription, étendant ainsi le concept de réseaux de gènes pour inclure les complexes régulateurs transcriptionnels.

Souvent, la fiabilité du réseau de gènes est testée par des expériences de perturbation génétique suivies d’une modélisation dynamique, basée sur le principe que la suppression d’un nœud du réseau a des effets prévisibles sur le fonctionnement des nœuds restants du réseau. [37] Les applications de l’ingénierie inverse des réseaux de gènes vont de la compréhension des mécanismes de la physiologie végétale [38] à la mise en évidence de nouvelles cibles pour la thérapie anticancéreuse. [39]

Chevauchement avec le droit des brevets

L’ingénierie inverse s’applique principalement à la compréhension d’un processus ou d’un artefact dans lequel la manière de sa construction, de son utilisation ou de ses processus internes n’a pas été clarifiée par son créateur.

Les éléments brevetés ne doivent pas en eux-mêmes faire l’objet d’une ingénierie inverse pour être étudiés, car l’essence d’un brevet est que les inventeurs fournissent eux-mêmes une divulgation publique détaillée et reçoivent en retour une protection juridique de l’ invention concernée. Cependant, un article produit sous un ou plusieurs brevets pourrait également inclure une autre technologie non brevetée et non divulguée. En effet, une motivation courante de l’ingénierie inverse est de déterminer si le produit d’un concurrent contient une violation de brevet ou de droit d’auteur .

Légalité

États-Unis

Aux États-Unis, même si un artefact ou un processus est protégé par des secrets commerciaux , la rétro-ingénierie de l’artefact ou du processus est souvent légale s’il a été obtenu de manière légitime. [40]

L’ingénierie inverse des logiciels informatiques relève souvent à la fois du droit des contrats en tant que rupture de contrat et de toute autre loi pertinente. En effet, la plupart des accords de licence d’utilisateur final l’ interdisent spécifiquement, et les tribunaux américains ont statué que si de telles conditions sont présentes, elles annulent la loi sur le droit d’auteur qui l’autorise expressément (voir Bowers v. Baystate Technologies [41] [42] ). Conformément à la section 103(f) du Digital Millennium Copyright Act ( 17 USC § 1201 (f)), une personne en possession légale d’un programme peut faire de l’ingénierie inverse et contourner sa protection si cela est nécessaire pour parvenir à “l’interopérabilité”, un terme qui couvre largement d’autres appareils et programmes qui peuvent interagir avec lui, l’utiliser et pour utiliser et transférer des données vers et depuis celui-ci de manière utile. Il existe une exemption limitée qui permet aux connaissances ainsi acquises d’être partagées et utilisées à des fins d’interopérabilité. [43]

Union européenne

La directive européenne 2009/24 sur la protection juridique des programmes d’ordinateur, qui a remplacé une directive antérieure (1991), [44] régit l’ingénierie inverse dans l’ Union européenne . [45] [46]

Voir également

  • Mécanisme d’Anticythère
  • Analyse comparative
  • Analyseur de bus
  • Chonda
  • Cloner (informatique)
  • Conception de salle blanche
  • MMT
  • Morphing de code
  • Station de jeu virtuelle Connectix
  • Contrefaçon
  • Cryptanalyse
  • Décompiler
  • Déformulation
  • Loi sur le droit d’auteur du millénaire numérique (DMCA)
  • Désassembleur
  • Clé électronique
  • Ingénierie médico-légale
  • Scanner industriel
  • Désassembleur interactif
  • Métamodèle de découverte des connaissances
  • Scanner laser
  • Liste des sujets de production
  • Moteurs Listéroïdes
  • Analyseur logique
  • Chèque de paie
  • Démontage du produit
  • Réaffectation
  • Architecture inversée
  • Rétrodiction
  • Sega contre Accolade
  • Archéologie logicielle
  • Craquage de logiciels
  • Numériseur à lumière structurée
  • Ingénierie de la valeur

Références

  1. ^ Thayer, Ken. “Comment fonctionne l’ingénierie inverse ?” . spécificationglobale . Spécification mondiale IEEE . Récupéré le 26 février 2018 .
  2. ^ Villaverde, Alejandro F.; Banga, Julio R. (6 février 2014). “Ingénierie inverse et identification en biologie des systèmes : stratégies, perspectives et enjeux” . Journal de l’interface de la société royale . 11 (91) : 20130505. doi : 10.1098/rsif.2013.0505 . PMC 3869153 . PMID 24307566 .
  3. ^ un bc Chikofsky , EJ & Croix, JH, II (1990). ” Ingénierie inverse et récupération de conception: une taxonomie “. Logiciel IEEE . 7 (1) : 13-17. doi : 10.1109/52.43044 . S2CID 16266661 .
  4. ^ un b Une Enquête d’Ingénierie Inversée et de Compréhension de Programme. Michael L. Nelson, 19 avril 1996, ODU CS 551 – Enquête sur le génie logiciel. arXiv : cs/0503068v1
  5. ^ Vinesh Raja; Kiran J. Fernandes (2007). Ingénierie inverse : une perspective industrielle . Springer Science et médias d’affaires. p. 3. ISBN 978-1-84628-856-2.
  6. ^ Jonathan Band; Masanobu Katô (2011). Interfaces sur Trial 2.0 . Presse du MIT. p. 136. ISBN 978-0-262-29446-1.
  7. ^ un bc Chikofsky , EJ; Cross, JH (janvier 1990). “Ingénierie inverse et récupération de conception: une taxonomie” (PDF) . Logiciel IEEE . 7 : 13–17. doi : 10.1109/52.43044 . S2CID 16266661 . Archivé de l’original (PDF) le 2018-04-17 . Récupéré le 02/07/2012 .
  8. ^ un bcdefgh Eilam , Eldad ( 2005 ) . Inverser : les secrets de la rétro-ingénierie . John Wiley et fils. ISBN 978-0-7645-7481-8.
  9. ^ Groupe de travail sur l’ingénierie Internet RFC 2828 Glossaire de la sécurité Internet
  10. ^ Karwowski, Waldemar; Trzcielinski, Stefan; Mrugalsk, Beata; DiNicolantonio, Massimo; Rossi, Emilio (2018). Avancées dans la fabrication, la gestion de la production et le contrôle des processus . p. 287–288.
  11. ^ Varady, T; Martin, R; Cox, J (1997). “Ingénierie inverse des modèles géométriques – une introduction”. Conception Assistée par Ordinateur . 29 (4): 255–268. doi : 10.1016/S0010-4485(96)00054-1 .
  12. ^ “Ingénierie inverse” .
  13. ^ Gardien, R. (1992). Réutilisation de logiciels et ingénierie inverse en pratique . Londres, Angleterre : Chapman & Hall. p. 283–305.
  14. ^ “Conférence de travail sur l’ingénierie inverse (WCRE)” . uni-trier.de . Bibliographie informatique. Archivé de l’original le 14 mars 2017 . Récupéré le 22 février 2018 .
  15. ^ Shahbaz, Muzammil (2012). Ingénierie inverse et test de composants logiciels Black-Box : par des techniques d’inférence grammaticale . LAP LAMBERT Editions Académiques. ISBN 978-3659140730.
  16. ^ Chuvakin, Anton; Cyrus Peikari (janvier 2004). Security Warrior (1ère éd.). O’Reilly. Archivé de l’original le 2006-05-22 . Récupéré le 25/05/2006 .
  17. ^ Samuelson, Pamela & Scotchmer, Suzanne (2002). “La loi et l’économie de l’ingénierie inverse” . Journal de droit de Yale . 111 (7): 1575-1663. doi : 10.2307/797533 . JSTOR 797533 . Archivé de l’original le 15/07/2010 . Récupéré le 31/10/2011 .
  18. ^ “Samba : une introduction” . 2001-11-27 . Récupéré le 07/05/2009 .
  19. ^ Lee, Newton (2013). Counterterrorism and Cybersecurity: Total Information Awareness (2e éd.). Springer Science+Business Media. p. 110. ISBN 978-1461472049.
  20. ^ W. Cui, J. Kannan et HJ Wang. Discoverer : Reverse engineering automatique de protocole à partir de traces réseau. Dans Actes du 16e Symposium sur la sécurité USENIX sur le Symposium sur la sécurité USENIX, pp. 1–14.
  21. ^ W. Cui, M. Peinado, K. Chen, HJ Wang et L. Irún-Briz. Tupni : Reverse engineering automatique des formats d’entrée. Dans Actes de la 15e Conférence ACM sur la sécurité informatique et des communications, pp. 391–402. ACM, octobre 2008.
  22. ^ a b PM Comparetti, G. Wondracek, C. Kruegel et E. Kirda. Prospex : Extraction de spécification de protocole. Dans Actes du 30e Symposium IEEE 2009 sur la sécurité et la confidentialité, pp. 110–125, Washington, 2009. IEEE Computer Society.
  23. ^ Or, E (1978). “Complexité de l’identification des automates à partir de données données” . Informations et Contrôle . 37 (3): 302–320. doi : 10.1016/S0019-9958(78)90562-4 .
  24. ^ D. Angluin (1987). “Apprentissage d’ensembles réguliers à partir de requêtes et de contre-exemples”. Information et calcul . 75 (2): 87–106. doi : 10.1016/0890-5401(87)90052-6 .
  25. ^ CY Cho, D. Babic, R. Shin et D. Song. Inférence et analyse de modèles formels de protocoles de commande et de contrôle de botnet , Conférence ACM 2010 sur la sécurité informatique et des communications.
  26. ^ Polyglotte : extraction automatique du format de message de protocole à l’aide d’une analyse binaire dynamique . J. Caballero, H. Yin, Z. Liang et D. Song. Actes de la 14e conférence ACM sur la sécurité informatique et des communications, pp. 317–329.
  27. ^ Wolfgang Rankl, Wolfgang Effing, Manuel de la carte à puce (2004)
  28. ^ T. Welz: Cartes à puce comme méthodes de paiement (2008), Séminaire ITS-Security Ruhr-Universität Bochum
  29. ^ David C. Musker: Protéger et exploiter la propriété intellectuelle dans l’électronique Archivé le 09/07/2011 à la Wayback Machine , Conférences IBC, 10 juin 1998
  30. ^ Yeam Gordon et Vladimir Rigmant, Tupolev Tu-4: Soviet Superfortress (Hinckley, Royaume-Uni: Midland, 2002).
  31. ^ “Fusée Redstone” . centennialofflight.net . Récupéré le 27/04/2010 .
  32. ^ “L’armée de l’air chinoise: concepts, rôles et capacités en évolution”, Centre pour l’étude des affaires militaires chinoises (États-Unis), par National Defense University Press, p. 277
  33. ^ Chandrashekar, S., R. Nagappa, L. Sundaresan et N. Ramani. 2011. Technologie et innovation en Chine : une étude de cas sur le développement d’un superalliage monocristallin pour les aubes de turbine d’avion, R4–11. ISSSP Institut national d’études avancées, Bangalore. http://isssp.in/wp-content/uploads/2013/01/Technology-and-Innovation-in-China-A-case-Study-of-Single-Crystal4.pdf ; et Dillon Zhou, « China J-15 Fighter Jet : Chinese Officials Defend New Fighter As Chinese Original, but Questions Remain », Mic, 16 décembre 2012, https://mic.com/articles/20270/china-j-15 -les-officiels-chinois-des-avions-de-chasse-défendent-le-nouveau-chasseur- comme-original-chinois-mais-des-questions-restent
  34. ^ Andrea Gilli et Mauro Gilli, “Pourquoi la Chine n’a pas encore rattrapé son retard : la supériorité militaro-technologique et les limites de l’imitation, de l’ingénierie inverse et du cyberespionnage, Sécurité internationale 43:3 (2019 141-189, https://doi. org/10.1162/isec_a_00337 .
  35. ^ Giorgi, Federico M. (2020). “Ingénierie inverse du réseau de gènes : la prochaine génération”. Biochimica et Biophysica Acta (BBA) – Mécanismes de régulation des gènes . 1863 (6): 194523. doi : 10.1016/j.bbagrm.2020.194523 . ISSN 1874-9399 . PMID 32145356 . S2CID 212629142 .
  36. ^ un b Mercatelli, Daniele; Scalambra, Laure; Triboli, Luca; Ray, Forêt ; Giorgi, Federico M. (2020). “Ressources d’inférence de réseau de régulation de gène : Un aperçu pratique”. Biochimica et Biophysica Acta (BBA) – Mécanismes de régulation des gènes . 1863 (6): 194430. doi : 10.1016/j.bbagrm.2019.194430 . ISSN 1874-9399 . PMID 31678629 . S2CID 207895066 .
  37. ^ Tegner, J.; Yeung, MKS ; Hâtive, J. ; Collins, JJ (2003). “Réseaux de gènes d’ingénierie inverse : intégration des perturbations génétiques avec la modélisation dynamique” . Actes de l’Académie nationale des sciences . 100 (10): 5944–5949. Bibcode : 2003PNAS..100.5944T . doi : 10.1073/pnas.0933416100 . ISSN 0027-8424 . PMC 156306 . PMID 12730377 .
  38. ^ Friedel, Swetlana; Usadel, Björn; von Wirén, Nicolas ; Sreenivasulu, Nese (2012). ” Ingénierie inverse: un élément clé de la biologie des systèmes pour démêler le dialogue croisé sur le stress abiotique mondial ” . Frontières en sciences végétales . 3 : 294. doi : 10.3389/fpls.2012.00294 . ISSN 1664-462X . PMC 3533172 . PMID 23293646 .
  39. Lefebvre, Céline ; Rieckhof, Gabrielle; Califano, Andrea (2012). “Reverse-engineering des réseaux humains de régulation” . Examens interdisciplinaires de Wiley : biologie des systèmes et médecine . 4 (4): 311–325. doi : 10.1002/wsbm.1159 . ISSN 1939-5094 . PMC 4128340 . PMID 22246697 .
  40. ^ “Secrets commerciaux 101”, article de fond, mars 2011 . COMME MOI. Consulté le 2013-10-31.
  41. ^ Discussion de Baystate contre Bowers . Utsystem.edu. Consulté le 2011-05-29.
  42. ^ Gros, Grant. (2003-06-26) Une affaire de contrat pourrait nuire à l’ingénierie inverse | Monde des développeurs . InfoMonde. Consulté le 2011-05-29.
  43. ^ La section stipule :
    (f) Ingénierie inverse.—
    (1) Nonobstant les dispositions de la sous-section (a)(1)(A), une personne qui a obtenu légalement le droit d’utiliser une copie d’un programme informatique peut contourner une technologie mesure qui contrôle efficacement l’accès à une partie particulière de ce programme dans le seul but d’identifier et d’analyser les éléments du programme qui sont nécessaires pour réaliser l’interopérabilité d’un programme informatique créé indépendamment avec d’autres programmes, et qui n’étaient pas facilement accessibles auparavant la personne procédant au contournement, dans la mesure où ces actes d’identification et d’analyse ne constituent pas une Contrefaçon au sens du présent titre.
    (2) Nonobstant les dispositions des sous-sections (a)(2) et (b), une personne peut développer et employer des moyens technologiques pour contourner une mesure technologique, ou pour contourner la protection conférée par une mesure technologique, afin de permettre l’identification et analyse en vertu du paragraphe (1), ou dans le but de permettre l’interopérabilité d’un programme informatique créé indépendamment avec d’autres programmes, si de tels moyens sont nécessaires pour réaliser cette interopérabilité, dans la mesure où cela ne constitue pas une Contrefaçon au sens du présent titre.
    (3) Les informations acquises par les actes autorisés en vertu du paragraphe (1) et les moyens autorisés en vertu du paragraphe (2) peuvent être mises à la disposition d’autrui si la personne visée au paragraphe (1) ou (2), selon le cas : peut être, fournit de telles informations ou moyens uniquement dans le but de permettre l’interopérabilité d’un programme informatique créé indépendamment avec d’autres programmes, et dans la mesure où cela ne constitue pas une infraction en vertu du présent titre ou ne viole pas la loi applicable autre que cette section.
    (4) Aux fins de la présente sous-section, le terme 「interopérabilité」 signifie la capacité des programmes informatiques à échanger des informations, et de ces programmes à utiliser mutuellement les informations qui ont été échangées.
  44. ^ Directive 91/250/CEE du Conseil du 14 mai 1991 relative à la protection juridique des programmes d’ordinateur . Eur-lex.europa.eu. Consulté le 2011-05-29.
  45. ^ DIRECTIVE 2009/24/CE DU PARLEMENT EUROPÉEN ET DU CONSEIL du 23 avril 2009 sur la protection juridique des programmes d’ordinateur
  46. ^ La directive stipule:

    La reproduction, la traduction, l’adaptation ou la transformation non autorisée de la forme du code dans lequel une copie d’un programme informatique a été mise à disposition constitue une violation des droits exclusifs de l’auteur. Néanmoins, il peut exister des circonstances où une telle reproduction du code et la traduction de sa forme sont indispensables pour obtenir les informations nécessaires pour réaliser l’interopérabilité d’un programme créé indépendamment avec d’autres programmes. Il faut donc considérer que, dans ces circonstances limitées uniquement, l’exécution des actes de reproduction et de traduction par ou pour le compte d’une personne ayant le droit d’utiliser une copie du programme est légitime et compatible avec les bons usages et doit donc être réputée ne pas nécessiter l’autorisation du titulaire du droit. Un objectif de cette exception est de permettre de connecter tous les composants d’un système informatique, y compris ceux de fabricants différents, afin qu’ils puissent fonctionner ensemble. Une telle exception aux droits exclusifs de l’auteur ne peut être utilisée d’une manière qui porte atteinte aux intérêts légitimes du titulaire des droits ou qui soit contraire à l’exploitation normale du programme.

Sources

  • Eilam, Eldad (2005). Inverser : les secrets de l’ingénierie inverse . Éditions Wiley . p. 595.ISBN _ 978-0-7645-7481-8.
  • Elvidge, Julia, “Using Reverse Engineering to Discover Patent Infringement,” Chipworks, septembre 2010. En ligne : http://www.photonics.com/Article.aspx?AID=44063
  • Cipresso, Teodoro (2009). “Formation à l’ingénierie inverse des logiciels” . Mémoire de maîtrise SJSU . Récupéré le 22/08/2009 .
  • Hausi A. Müller et Holger M. Kienle, “A Small Primer on Software Reverse Engineering,” Technical Report, University of Victoria, 17 pages, mars 2009. En ligne : http://holgerkienle.wikispaces.com/file/view/MK -UVic-09.pdf
  • Heines, Henry, “Determining Infringement by X-Ray Diffraction,” Chemical Engineering Process , janvier 1999 (exemple d’ingénierie inverse utilisée pour détecter une violation de propriété intellectuelle)
  • Huang, Andrew (2003). Hacking the Xbox : Une introduction à l’ingénierie inverse . Aucune presse d’amidon . ISBN 978-1593270292.
  • James, Dick (19 janvier 2006). “L’ingénierie inverse fournit des connaissances sur les produits ; facilite la propagation de la technologie” . Conception électronique . Penton Media, Inc . Récupéré le 03/02/2009 .
  • Messler, Robert (2013). Ingénierie inverse : Mécanismes, Structures, Systèmes & Matériaux . McGraw Hill . ISBN 978-0071825160.(introduction aux démontages matériels, y compris la méthodologie, les objectifs)
  • Raja, Vinesh ; Fernandes, Kiran J. (2008). Ingénierie inverse – Une perspective industrielle . Springer . p. 242. ISBN 978-1-84628-855-5.
  • Ingénierie inverse pour les débutants
  • Samuelson, Pamela et Scotchmer, Suzanne, “Le droit et l’économie de l’ingénierie inverse”, 111 Yale LJ 1575 (2002). En ligne : http://people.ischool.berkeley.edu/~pam/papers/l&e%20reveng3.pdf
  • Schulman, Andrew; Brown, Ralf D. ; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [novembre 1993]. DOS non documenté : guide du programmeur sur les fonctions et les structures de données MS-DOS réservées – étendu pour inclure MS-DOS 6, Novell DOS et Windows 3.1 (2 éd.). Lecture, Massachusetts : Addison Wesley . p. 229–241 . ISBN 0-201-63287-X.(xviii+856+vi pages, disquette 3,5″) Errata : [1] [2] (NB. Sur la méthodologie générale de la rétro-ingénierie, appliquée aux logiciels grand public : un programme pour explorer DOS, désassembler DOS.)
  • Schulman, Andrew; et coll. (1992). Windows non documenté : Guide du programmeur pour les fonctions d’API Microsoft Windows réservées . Addison Wesley . ISBN 978-0-201-60834-2.(pp. 59-188 sur la méthodologie générale de la rétro-ingénierie, appliquée aux logiciels grand public : examen des exécutables Windows, désassemblage de Windows, outils d’exploration de Windows)
  • Schulman, Andrew, « Se cacher à la vue de tous : utiliser l’ingénierie inverse pour découvrir la violation de brevets logiciels », Intellectual Property Today , novembre 2010. En ligne : http://www.iptoday.com/issues/2010/11/hiding-in- clair-voyant-utilisant-l’ingénierie-inverse-pour-découvrir-la-violation-de-brevet-logiciel.asp
  • Schulman, Andrew, « Ouvert à l’inspection : utilisation de l’ingénierie inverse pour découvrir l’art antérieur des logiciels », New Matter (Calif. State Bar IP Section), été 2011 (partie 1) ; Automne 2011 (Partie 2). En ligne : http://www.SoftwareLitigationConsulting.com
  • Thumm, Mike (2007). “Tactiques parlantes” (PDF) . Conférence IEEE 2007 sur les Circuits intégrés personnalisés (CICC) . IEEE, Inc. Récupéré le 03/02/2009 .
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More