Comment désassembler les exécutables sous Linux
Le désassemblage d'un exécutable binaire en code assembleur fournit un aperçu des instructions machine sous-jacentes. Une idée fausse courante est que gcc a un désassembleur intégré, mais ce n'est pas le cas car gcc est avant tout un compilateur.
L'outil GNU objdump offre un moyen pratique d'effectuer le désassemblage. En appelant objdump avec l'indicateur -d/--disassemble, vous pouvez obtenir la représentation en code assembleur de l'exécutable spécifié.
Par exemple, pour désassembler le binaire situé dans "/path/to/binary", vous exécuterait la commande suivante :
$ objdump -d /path/to/binary
Le résultat du désassemblage ressemblera à ce qui suit :
080483b4 <main>: 80483b4: 8d 4c 24 04 lea 0x4(%esp),%ecx 80483b8: 83 e4 f0 and xfffffff0,%esp 80483bb: ff 71 fc pushl -0x4(%ecx) 80483be: 55 push %ebp 80483bf: 89 e5 mov %esp,%ebp 80483c1: 51 push %ecx 80483c2: b8 00 00 00 00 mov x0,%eax 80483c7: 59 pop %ecx 80483c8: 5d pop %ebp 80483c9: 8d 61 fc lea -0x4(%ecx),%esp 80483cc: c3 ret 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
Ce désassemblage fournit une représentation détaillée des instructions du code assembleur de l'exécutable, permettant l'analyse et le débogage de logiciels complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!