Désassembler

Définition, exemples et bonnes pratiques

À retenir

  • C'est l'inverse de l'assemblage.
  • Le résultat est du langage assembleur, très technique et proche du matériel.
  • C'est une technique clé pour la sécurité et l'analyse de logiciels fermés.

Désassembler consiste à transformer un programme informatique fini (composé de 0 et de 1) en un langage textuel lisible par un humain, appelé l'assembleur. C'est un peu comme si vous preniez un objet complexe déjà monté et que vous tentiez de reconstituer son plan de fabrication pour comprendre comment chaque pièce s'imbrique.

Étymologie

Vient du préfixe « dés- » (exprimant l'action inverse) et du verbe « assembler ». En informatique, l'assembleur est le langage le plus proche du processeur ; désassembler revient donc à remonter le courant, du binaire vers ce langage de bas niveau.

Exemples d'usage

  • Analyser un logiciel malveillant (malware) pour comprendre son fonctionnement sans avoir son code source.
  • Étudier une ancienne application dont les fichiers originaux ont été perdus pour la rendre compatible avec un système moderne.
  • Observer comment un processeur spécifique traite une instruction mathématique complexe.

Cas d'usage

On utilise le désassemblage principalement en cybersécurité pour la rétro-ingénierie, dans le développement de pilotes (drivers) ou lors du débogage intensif de systèmes où le code source n'est pas disponible.

Bonnes pratiques

Le désassemblage est une tâche ardue car les noms des variables et les commentaires originaux disparaissent lors de la création du logiciel. Il est conseillé d'utiliser des outils spécialisés (appelés désassembleurs) qui aident à identifier les structures logiques et à annoter manuellement le code au fur et à mesure de la compréhension.

Synonymes

rétro-ingénierie reverse engineering

Antonymes

assembler compiler

Conseil

Pour bien comprendre ce concept, essayez d'écrire un programme très court (comme une simple addition), compilez-le, puis ouvrez le fichier avec un outil comme Ghidra ou objdump pour voir à quoi ressemblent les instructions réelles reçues par votre processeur.

Questions fréquentes

Est-ce la même chose que décompiler ?

Non. Désassembler produit du code assembleur (très bas niveau), alors que décompiler tente de retrouver un langage de haut niveau comme le C ou le Java.

Est-ce légal ?

Cela dépend des pays et des licences logicielles. C'est souvent autorisé pour l'interopérabilité ou la recherche en sécurité, mais interdit pour copier un logiciel commercial.