Familiarité avec les principaux concepts de rétro-ingénierie

Parfois, un ingénieur doit penser dans la direction opposée à l'analyse du produit. Par exemple, un ingénieur en mécanique peut tirer des conclusions sur la façon dont un produit est développé en fonction de sa conception et de ses propriétés physiques. Ils peuvent être en mesure de produire le même produit s'il a une compréhension approfondie de ce qu'il est et de quoi il consiste.

Vous pouvez également comparer l'ingénierie inverse aux preuves d'équations mathématiques. Alors, comment l'ingénierie inverse est-elle utilisée ? Vérifier Qu'est-ce que la fabrication assistée par ordinateur (FAO) ?

Familiarité avec les principaux concepts de la rétro-ingénierie - explications

Qu'est-ce que la rétro-ingénierie ?

L'ingénierie inverse est le processus de découverte des principes techniques d'une machine ou d'un système en analysant sa structure, sa fonction et son mode de fonctionnement. Ce processus se fait souvent en décomposant un système (machine mécanique, application logicielle, composant électronique) en plusieurs parties ou en essayant de re-fabriquer un système similaire qui remplit la même fonction que le système d'origine. Si vous regardez les domaines du travail d'ingénierie inverse, vous pouvez voir que vous pouvez l'utiliser à de nombreuses fins différentes. Si vous le regardez du point de vue de la cybersécurité, les opérations suivantes sont possibles avec les méthodes de rétro-ingénierie :

  1. Analyse du code source de logiciels non open source.
  2. Analyse de la vulnérabilité de sécurité et de sa cause.
  3. Analyse des logiciels malveillants.
  4. Fissuration et réparation.

Vous pouvez voir l'ingénierie inverse utilisée même dans les jeux informatiques de nos jours. Par exemple, le développeur crée souvent des modifications pour l'interface et le gameplay en utilisant des méthodes d'ingénierie inverse.

Dans le domaine de la rétro-ingénierie, il existe deux approches d'analyse différentes : statique et dynamique. Vous effectuez une analyse statique lorsque vous analysez une application sans l'exécuter réellement. D'autre part, la méthode d'analyse dynamique nécessite que l'application s'exécute afin de surveiller son comportement et les données qu'elle utilise.

Mais avant de procéder à une analyse d'ingénierie inverse, vous devez connaître certains termes importants sur le fonctionnement de l'ingénierie informatique. Vérifier Comment isoler un ordinateur, une sécurité renforcée pour la frénésie de la vie privée.

Les grandes parties de l'ingénierie informatique

L'ingénierie inverse est pratiquement impossible à moins que vous ne compreniez l'ingénierie informatique. Vous devez étudier les quatre parties principales :

  1. EntréeL'ensemble des méthodes disponibles pour la saisie des données.
  2. Unité centrale de traitement (CPU): Le processeur interprète les instructions, traite les données entrantes et les transmet aux autres composants.
  3. Mémoire: La zone qui contient temporairement des données pendant le traitement.
  4. SortieLe résultat final que l'utilisateur voit.

Vous pouvez voir tous ces détails clés à travers un exemple facile à comprendre, lorsque vous appuyez sur la lettre A de votre clavier. Lorsqu'il est enfoncé, un événement d'entrée se produit. Après cette étape, le CPU traite les données et utilise un petit espace en mémoire pour les stocker. Enfin, vous verrez la lettre A sur votre écran et terminerez le processus avec la sortie.

Allez au plus profond du CPU

Familiarité avec les principaux concepts de la rétro-ingénierie - explications

Si vous voulez vraiment devenir un expert en rétro-ingénierie et approfondir ce sujet, vous avez besoin d'une connaissance approfondie des composants, des périphériques et des langages de programmation de bas niveau, en particulier du processeur. Les principaux sujets que vous devrez connaître sur le CPU sont :

  1. Console: Il est responsable du traitement des données dans la CPU et de leur transfert vers les champs concernés. Vous pouvez considérer cette unité comme un mécanisme de commande de direction.
  2. ALU: Cette abréviation signifie Arithmetic Logic Unit. C'est là que certaines des opérations arithmétiques et logiques ont lieu. Si vous plongez dans les mathématiques, vous verrez que les quatre opérations de base sont essentiellement des variables lorsqu'elles sont ajoutées. ALU est donc basé sur le clustering. Par exemple, soustraire deux de trois équivaut à ajouter deux moins trois.
  3. Registres: Ce sont les zones du CPU qui contiennent les données traitées. Il existe différents types de registres, tout comme il existe différents types de variables dans un langage de programmation. Le registre est responsable du maintien du type et des caractéristiques des données qui lui sont attribuées.
  4. Références: Si vous souhaitez que le CPU effectue de nombreuses opérations différentes en même temps, une certaine manière de les organiser est nécessaire. Les éléments qui font cela sont appelés balises. Chaque transaction fonctionne sur des signaux qui garantissent qu'elle n'interfère pas avec un autre processus.
  5. La circulation sanguineLe chemin utilisé par les données pour se déplacer d'une unité à une autre. Remarquez comment le nom suggère le transport.

Concepts dont vous entendez souvent parler en rétro-ingénierie

Comprendre comment le processeur traite les données et les stocke en mémoire, ainsi que le concept de registres, peut être très utile lors de la rétro-ingénierie. Vous pouvez notamment utiliser le schéma ci-dessous pour mieux comprendre la notion de mémoire :

Familiarité avec les principaux concepts de la rétro-ingénierie - explications

Enfin, pour l'analyse d'ingénierie inverse, vous devez connaître quelques concepts de base sur les registres. C'est l'un des sujets sur lesquels vous vous concentrerez le plus. Voici quelques explications sur les données, les index et les enregistrements d'index qui vous seront utiles de la manière la plus concise :

1. EAX : Abréviation de Accumulated Record. Il enregistre généralement les données qui relèvent de la catégorie des opérations arithmétiques ici.
2. EBX : Abréviation de Basic Register. Il joue un rôle dans le traitement indirect.
3. EDX : enregistrement de données. edx aide les autres registres.
4. EIP : acronyme pour Instruction Indicator. Porte l'adresse de domaine pour démarrer.
5. ESP : porte l'adresse de base.
6. ESI : Contient des informations d'index source.
7. EDI : Contient les informations d'index de destination.

Vous devriez rechercher tous ces détails séparément pour comprendre les nuances. Mais si vous regardez les bases et essayez de comprendre la logique métier, quelle que soit l'architecture de processeur sur laquelle vous vous trouvez, l'analyse du code pour l'ingénierie inverse est très facile.

La rétro-ingénierie commence souvent par le code machine. Vous pouvez comprendre bon nombre des termes ci-dessus si vous êtes familiarisé avec l'assemblage ou si vous avez des connaissances sur les architectures de processeur 32 bits ou 64 bits. Si vous voulez apprendre l'assemblage à partir de zéro, ce sera très utile pour la rétro-ingénierie. Vérifier Qu'est-ce que la limitation du PC et comment puis-je y remédier ?

Que ferez-vous de toutes ces informations ?

Si vous avez une bonne connaissance de la rétro-ingénierie, vous pouvez effectuer une analyse de code quel que soit le système d'exploitation ou l'architecture du processeur avec lequel vous travaillez. Par exemple, il est possible d'accéder à des versions piratées de nombreuses applications ou jeux informatiques. C'est une méthode totalement illégale.

Cependant, si vous voulez devenir un professionnel de la cybersécurité éthique, vous devrez utiliser l'ingénierie inverse pour comprendre pourquoi ce logiciel a été compromis. Si vous souhaitez progresser dans l'ingénierie inverse ou si vous débutez, ce sera un bon choix si vous essayez d'en apprendre davantage sur la relation entre le matériel et le code. Vous pouvez voir maintenant Comment choisir la bonne certification informatique et ne pas le regretter.

source
Aller au bouton supérieur