Désassembleur

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}

Modèle:Confusion

Un désassembleur est un programme informatique qui traduit du langage machine (un fichier exécutable) en langage assembleur (aussi désigné sous le nom de langage « bas niveau »). Cette opération, le désassemblage, est l'inverse de celle effectuée par un programme assembleur, l'assemblage.

Il est possible de désassembler le code machine généré par un compilateur de langage haut-niveau (C/C++, Delphi, etc.), mais on n'obtiendra pas le code source du langage d'origine, juste la correspondance en assembleur du code machine. Pour réaliser cette opération, il faudrait utiliser un décompilateur.

La sortie d'un désassembleur est plus souvent destinée à lire le code de manière plus simple, plus humaine que de lire des suites de bits du code machine (même en hexadécimal), plutôt que de servir d'entrée à un programme assembleur.Modèle:Référence nécessaire En effet, les symboles (nom des variables, étiquettes, noms des procédures) ne sont pas restitués ni même les commentaires de l'auteur (utiles pour comprendre, si l'auteur en avait écrit).

Désassembleurs gratuits et/ou libres

  • Radare2 ;
  • ollydbg ;
  • Bastard ;
  • Bibliothèques libopcodes et libbfd qui font partie du paquetage GNU binutils. Elles sont utilisées par les programmes objdump et gdb ;
  • ndisasm, livré avec l'assembleur 80x86 The Netwide assembler ;
  • PVDasm (aka Proview) ;
  • BIEW ;
  • Ghidra ;
  • x64dbg<ref>Modèle:Lien web</ref> ;

Désassembleurs commerciaux

  • W32DASM, désassembleur pour Windows
  • MULTI développé par Green Hill Software (GHS)
  • IDA : The Interactive Disassembler
  • Hackman Disassembler de la suite de logiciels "Hackman Suite" développé par TechnoLogismiki
  • JEB Decompiler, désassembleur multiplateforme écrit en Java, développé par PNF Software

Articles connexes

Modèle:Autres projets

Notes et références

Modèle:Références

Modèle:Portail