103 votes

Comment puis-je démonter raw x86 code?

Je voudrais démonter le MBR (512 premiers octets) d'un bootable x86 disque que j'ai. J'ai copié le MBR d'un fichier à l'aide de

dd if=/dev/my-device of=mbr bs=512 count=1

Des suggestions pour un Linux utilitaire qui peut démonter le fichier mbr?

121voto

hlovdal Points 11039

Vous pouvez utiliser objdump. Selon cet article, la syntaxe est la suivante:

objdump -D -b binary -mi386 -Maddr16,data16 mbr

37voto

starblue Points 29696

L'outil GNU est appelé objdump, par exemple:

objdump -D -b binary -m i8086 <file>

27voto

asveikau Points 16871

J'aime ndisasm pour ce but. Il est livré avec l'assembleur NASM, qui est gratuit et open source et inclus dans le paquet des dépôts de la plupart des distributions linux.

23voto

jameslin Points 31
ndisasm -b16 -o7c00h -a -s7c3eh mbr

Explication - de ndisasm page de manuel

  • -b = Spécifie de 16, 32 ou 64-bit de mode. La valeur par défaut est de 16 bits mode.
  • -o = Spécifie le notionnel de l'adresse de chargement du fichier. Cette option provoque ndisasm pour obtenir les adresses, il répertorie en bas de la marge de gauche, et la cible adresses de PC-relatif sauts et appels, à droite.
  • -a = Permet automatique (ou intelligent) mode de synchronisation, dans lequel ndisasm tente de deviner où la synchronisation doit être effectuée, par le biais de l'examen de la cible adresses de la relative sauts et appels il démonte.
  • -s = Permet de préciser manuellement une synchronisation adresse, tel que ndisasm aura pas de sortie de n'importe quelle machine de l'instruction qui englobe octets sur les deux côtés de l'adresse. D'où l'instruction qui commence à cette adresse sera correctement démonté.
  • mbr = Le fichier à être démonté.

9voto

Jason Points 1155

sudo dd if=/dev/sda bs=512 count=1 | ndisasm -b16 -o7c00h -

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X