Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Convertir opcode en ASM


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Futur Membre du Club
    Convertir opcode en ASM
    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.

  2. #2
    Expert confirmé
    Bonjour,

    Toute la doc nécessaire est disponible sur le site de Intel (mais il faut chercher un peu)
    Le mysticisme est une maladie qui crée des problèmes là où il n’en existe pas.

  3. #3
    Futur Membre du Club
    Citation Envoyé par droggo Voir le message
    Bonjour,

    Toute la doc nécessaire est disponible sur le site de Intel (mais il faut chercher un peu)
    J'ai deja regardé mais difficile a lire comme doc mdrr j'esperais qu'il y avait mieux ... mais bon visiblement il va falloir que j'me la retape en entier

    Merci et si vous avez une autre solution efficace je prend toujours !!! Surtout si c'est une api deja existante (mais ca m'etonnerai un peu qu'il en existe une ...)

  4. #4
    Futur Membre du Club
    pour ceux que ca interesse : j'ai trouvé une API de la gnu : libopcode ... ainsi qu'un wrappeur dessus appeler libopdis ... j'sais pas encore ce que ca vaut mais j'vous tiendrai au courrant.

  5. #5
    Expert éminent
    salut,

    un lien peut être intéressant : http://ref.x86asm.net/coder64.html

    sinon effectivement il faut se palucher les manuels Intel (de mémoire je crois le 1er et le 3e surtout), et c'est assez lourdingue.