2017-03-15 2 views
0

J'ai un code binaire que je vais désassembler pour l'assemblage. Ce code ne fait pas partie du fichier structuré exe ou dll donc objdump et gdb ne le reconnaissent pas.Décompiler le code binaire brut à l'assemblage

Comment puis-je le démonter pour l'assemblage?

+0

Connaissez-vous le format de ce code, par ex. c'est binaire pour quelle plateforme/architecture etc? –

+0

oui, c'est le code Windows. Ce code est copié dans la mémoire allouée par 'VirtualAlloc', puis lancé avec l'appel API Create32 de' CreateThread' –

+0

Donc mon idée serait d'ajouter les en-têtes win exe appropriés pour le rendre [format PE] (https: //en.wikipedia. org/wiki/Portable_Executable) et même si ce n'est pas ce n'est pas 100% PE essayer de le démonter en utilisant par exemple [PE Explorer] (http://www.heaventools.com/PE_Explorer_disassembler.htm), mais je ne l'ai pas testé auparavant. –

Répondre

1

GDB et objdump reposent sur les informations de section dans les binaires ELF du système V afin de les désassembler. En d'autres termes, pour que gdb et objdump fonctionnent, le code à analyser doit être dans un binaire ELF et ce binaire doit avoir une table d'en-tête de section intacte qui décrit précisément la disposition du binaire.

Comment puis-je le décompiler pour l'assemblage?

La décompilation est la reconstruction du code source à partir d'un binaire. Le désassemblage est la traduction des instructions du CPU en langage assembleur. J'ai un code binaire que je voudrais désassembler pour l'assemblage.

Si vous avez un code machine à désassembler et que l'architecture du jeu d'instructions du code est connue, un outil pouvant vous aider est le Capstone disassembly framework. Voici une démo utilisant des liaisons python: Python tutorial for Capstone.

Radare2 est une autre option.

Si cela n'est pas utile, il existe un site reverse engineering sur StackExchange où vous avez plus de chances de trouver exactement ce dont vous avez besoin.