La rétro-ingénierie (traduction littérale de l'anglais reverse engineering), également appelée rétroconception, ingénierie inversée ou ingénierie inverse, est l'activité qui consiste à étudier un objet pour en déterminer le fonctionnement interne ou la méthode de fabrication.
Plusieurs objectifs peuvent être visés par cette analyse :
Suivant la nature de l'objet et l'objectif, différentes méthodes et techniques sont utilisées. Pour des objets physiques, il est possible de démonter le système jusqu'à un certain point pour en analyser les constituants. En électronique et en informatique, la démarche 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 des variations du ou des signaux en entrée.
Celle-ci s'applique principalement dans le domaine militaire depuis la nuit des temps. C'est ainsi que, selon L'Histoire de Polybe, à partir de la capture d'une birème phénicienne, superpuissance maritime de l'époque, seulement 40 jours avant la bataille de la pointe d'Italie, que les Romains, alors puissance uniquement continentale, ont réussi à imposer leur domination maritime sur l'ensemble de la méditerranée en copiant le procédé de standardisation employé par les Puniques, leur permettant de bâtir à partir de rien et en un temps record une véritable flotte de combat approchant les 80 navires, y ajoutant quelques perfectionnements tels que le corvus (sorte de passerelle d'abordage dotée d'un crochet de bronze en forme de bec de corbeau, se figeant avec force dans le pont du navire abordé), puis quelques décennies plus tard sur les trirèmes, le xylokastron (château de bois) en proue, les balistes de marine, qui malgré leur début chaotique en raison de la modification du centre de gravité rendant dangereuse leur utilisation par mer agitée, permirent de transformer les batailles navales en affrontements d'infanterie à partir de la première bataille de Mylae en -260. On trouve plusieurs exemples de rétro-ingénierie dans le domaine militaire. Par exemple, à la fin des années 1940, les Soviétiques ont construit le bombardier Tupolev Tu-4, qui est en fait une copie du bombardier américain Boeing B-29 Superfortress. Cette copie, si fidèle au modèle originale qu'elle portait le sigle Boeing moulé sur le palonnier, a été réalisée par la rétro-ingénierie de trois B-29 capturés après un atterrissage forcé en URSS.
Il y a la possibilité de refaire un schéma électronique en analysant un circuit imprimé, il est aussi possible de récupérer le code assembleur de certains circuits intégrés (PIC,FPGA,ARM,...), si la protection n'a pas été activée.
Le principe de la rétroconception repose sur la prise d’un nuage de points issu de la surface de l’objet à scanner numériquement ou à palper mécaniquement. Ce nuage de points est traité par des logiciels de reconstruction de surfaces permettant d’abord de construire un modèle polygonal (utilisé dans l’usinage, la simulation et le prototypage rapide) et ensuite de générer une surface NURBS. Exporté vers un logiciel CAO, l’objet défini numériquement pourra être modifié, analysé et adapté à son environnement et à son architecture interne.
Quelles sont les différentes raisons d’utiliser la rétroconception ?