Rétro-ingénierie
Un article de Wikipédia, l'encyclopédie libre.
La rétro-ingénierie (traduction littérale de l'anglais Reverse engineering), également appelée rétro-conception, est l'activité qui consiste à étudier un objet pour en déterminer le fonctionnement. L'objectif peut être par exemple de créer un objet différent avec des fonctionnalités identiques à l'objet de départ sans contrefaire de brevet. Ou encore de modifier le comportement d'un objet dont on ne connaît pas explicitement le fonctionnement.
La démarche utilisée peut être celle de l'étude d'une boîte noire : on isole l'objet à étudier, on détermine les entrées et les sorties actives. On essaie ensuite de déterminer la réponse du système en fonction du signal d'entrée. Mais il est également possible de démonter le système jusqu'à un certain point pour en analyser les constituants.
Sommaire |
[modifier] Rétro-ingénierie et logiciel
La rétro-ingénierie s'applique aussi au logiciel. Ceci peut être réalisé en utilisant des outils d'analyse comme le décompilateur. Les méthodes employées sont similaires à celle du débogage.
La rétro-ingénierie de fichiers binaires exécutables destinés à la plate-forme Java peuvent se réaliser avec le programme ArgoUML.
Le projet Samba est un exemple typique de rétro-ingénierie. L'équipe a dû déterminer le fonctionnement du partage de ressources en réseau du système d'exploitation Microsoft Windows sans avoir accès aux spécifications techniques officielles. Ils ont donc dû les déterminer puis les traduire sous forme d'un programme informatique. Il en va de même pour le système de fichier NTFS.
La rétro-ingénierie logicielle est fréquemment appliquée aux structures de données : il s'agit, dans ce cas de figure, d'effectuer une rétro-documentation des structures de données physiques peu ou mal documentées (applications vieillissantes). On essaie de reconstituer un modèle de données à partir des structures physiques des fichiers ou des tables.
La rétro-ingénierie logicielle fut popularisée avec le détournement des protections anticopie des jeux vidéo. Cette activité est appelée cracking.
En cryptographie, la rétro-ingénierie prend plusieurs formes avec des attaques cryptanalytiques. Le but est d'extraire des informations secrètes depuis la « boîte noire » symbolisant la procédure de chiffrement. Ces types d'attaques sont nommés attaques par canaux auxiliaires. On pense que la rétro-ingénierie est aussi à l'origine de la fuite des algorithmes RC2 et RC4 qui furent diffusés sur Internet via le groupe de discussion sci.crypt. L'algorithme Arcfour est d'ailleurs un clone de RC4.
[modifier] Rétro-ingénierie appliquées à des objets physiques
Des systèmes de traitement du signal peuvent être utilisés pour numériser la forme d'un objet. Les coordonnées récupérées peuvent être ensuite entrées dans un outil de conception assistée par ordinateur.
[modifier] La rétro-ingénierie comme activité de veille compétitive
La rétro-ingénierie est aussi une activité de veille compétitive. Elle est orientée vers :
- l'étude des produits concurrents,
- la compréhension des méthodes utilisées par le concurrent,
- la recherche des fournisseurs,
- la détermination des composants utilisés,
- l'estimation du coût de revient à partir de tout ou partie des informations précédentes,
- déceler de potentielles violations de brevets commises par un concurrent ou à éviter.
[modifier] La rétro-ingénierie comme défense
- l'étude de binaire malicieux (rootkit) dans le cadre d'une attaque informatique.
- l'étude de virus informatique pour l'amélioration d'un anti-virus ou en vue d'apporter un moyen d'éradication
[modifier] Voir aussi
[modifier] Liens externes
- OpenRCE: Un portail de rétro-ingénierie
- Site du projet Samba
- MoDisco: (Model Discovery), un projet Eclipse sur la rétro-ingénierie dirigée par les modèles
- Site d'ArgoUML : Permet la rétro-ingénierie de fichiers binaires exécutables Java
- Reverse Code Engineering Community
- French Reverse Engineering Team
- Ligue des Assoiffés de Bricolage sur Ordinateur.