Bonjour,
Je souhaite convertir du code hexadecimal en assembleur x86_x64 sur linux (un peu comme objdump).
Cependant je n'arrive pas a comprendre comment fonctionne les opcodes.
Par exemple : objdump traduit "48 89 e5" en "mov %rsp,%rbp".
J'crois voir certaine chose car l'opcode "55" correspond a un "push %rbp" je suppose donc que le "5" de "e5" sert a dire qu'on travail sur le registre %rbp ... en revanche le 48 reste un vrai mystere pour moi ... le 89 m'a l'air d'indiqué qu'on fait un mov mais j'suis pas bien bien sur ...
Quelqu'un aurait-il une idée pour convertir de l'hexa en assembleur ? une API ? ou de la doc bien faite pour comprendre le fonctionnement des opcodes et de leurs conversions ?
J'ai lu le code source d'objdump mais j'vois pas bien comment il fait malgré tout ... en plus les 3000 lignes par fichier n'aide pas bcp :3
Si ça interesse qq un c'ets pour coder en C un gdb lite on va dire.
Merci de votre aide et bonne journée à vous.
Partager