あなたがマシンコードEIP・ポイントを知っているし、あなたはそれを逆アセンブルしたい場合は、この(私は0x8b0c4d8b
のあなたの例を取った)ような何か:だから
#create binary file
$ echo -en "\x8b\x0c\x4d\x8b" > foo.bin
#disassemble it
$ objdump -D -b binary -m i386 foo.bin
foo.bin: file format binary
Disassembly of section .data:
00000000 :
0: 8b .byte 0x8b
1: 0c 4d or $0x4d,%al
3: 8b .byte 0x8b
を、この場合には、それはdoesnの任意のメモリ位置を変更しますが、そうした場合は、アセンブリコードから簡単に確認できます。
編集:これはプログラムから行うと思われるようです。 udis86をご覧ください。それは指示のexamining operandsを可能にする。 ARMの場合は、disarmを参照してください。
出典
2012-04-27 08:22:01
Job
デバッガを使用する - その命令のアドレスにブレークポイントを設定し、ブレークポイントにヒットしたときにEIPを調べます - これは唯一の信頼できる方法です。 –
しかしEIPは命令のアドレスです、そうですか?私はまだこの命令が書き込むアドレスを得ることができません。 – zsounder
私は@PaulR misspokeだと思います。それにもかかわらず、逆アセンブラ(または1つのツールが組み込まれたツール)を使用するか、x86オペコードを逆アセンブルする方法を知っている独自のツールを作成する必要があります。 – geekosaur