Hex Code zu Opcode?!
-
Hallo,
ich hänge nun schon seit längeren an meinem Programm und kann dies nicht fertigstellen. Dabei ist die Frage eigentlich recht einfach!Kann mir vielleicht jemand sagen wie ich aus Hex Code zu dem dazugehörigen Opcode komme? Beispiel:
E800FF00 ist ein Call ???????
(weiß ich jetzt nicht auswendig).
Mir geht es darum wie ich aus dem E800FF00 an den Offset komme der GeCallt wird. Das einzige was ICH weiß ist, das das erste Byte die Funktion angibt die ausgeführt wird (jmp,xor etc.), und die letzten bytes die Adresse beeinflussten.Ich währe für Hilfe aüßerst dankbar!
Danke!
-
Es gibt verschiedene Arten von calls. Es gibt indirekte und direkte Sprünge. Bei direkten Sprüngen steht am Ende ein offset von der aktuellen Position zum Sprungziel. Wobei es aber da auch eine Kurz-Variante gibt, die nur +/- 127 Bytes springen kann... Schau's dir am besten in der Intel Instruction Reference an.
-
Du kannst einen Disassembler (z.B. ndisasm) mit dem kurtzen Hex-Stückchen füttern. dann sagt der dir den dazugehörigen Befehl.
-
jan delay -fan schrieb:
Du kannst einen Disassembler (z.B. ndisasm) mit dem kurtzen Hex-Stückchen füttern. dann sagt der dir den dazugehörigen Befehl.
Ja, aber ich möchte einfach nur eine Routine in meinem Programm womit ich den Hexcode zu dem dazugehörigen Opcode umwandeln kann. Deshalb hilft mir ein externer Dissambler leider nicht viel...
-
Hi!
Guck mal hier:
http://www.fh-wedel.de/~wol/ass/instruct.pdf
Ich glaube eher das du folgendes suchst:
http://developer.intel.com/design/pentium/manuals/24319101.pdf
Ansonsten hier mal gucken, einige Links funktionieren allerdings nicht:
http://www.x86.org/intel.doc/inteldocs.htmCode-Hacker
-
hi,
-> Sandpile.org findest du auch eine Liste der Opcodes (x86->Opcodes)
-
google mal nach libdisasm
das ist eine lib, die genau das macht was du willst
-
0rp schrieb:
google mal nach libdisasm
das ist eine lib, die genau das macht was du willst
Danke! Endlich etwas was mir helfen könnte, werde ich mir gleich mal ansehen!