1
0x042444FF; /* inc dword ptr [esp+4] */

我需要这个工具来知道哪个部分意味着incdword反之亦然。

4

3 回答 3

1

您可以使用该objdump工具将可执行二进制文件“反编译”回汇编代码,但由于可能的优化,生成的汇编代码可能与原始程序集不同(但它们本质上应该相似)。

于 2010-09-15T09:11:59.743 回答
0

以下是有点不方便,但它的工作原理:

$ xxd -r > objdump-test.bin
0000 ff 44 24 04
$ objdump -D --target=binary --architecture i386:intel objdump-test.bin 

objdump-test.bin:     file format binary

Disassembly of section .data:

0000000000000000 <.data>:
   0:   ff 44 24 04             inc    DWORD PTR [esp+0x4]

xxd是一个可以反向工作的 hexdump 实用程序,它是 X11 的一部分。这0000是生成文件中十六进制数据的地址。

您可以使用任何其他工具来创建二进制文件。

于 2010-09-15T17:58:04.203 回答
0

命令行工具,它采用该十六进制数字并为您反汇编它。我还没有听说过工具。您可以使用该数字制作一个 elf 文件,并将这四个字节作为二进制文件,然后调用 objdump。有类似的东西,虽然你可以查一下。

http://ref.x86asm.net/index.html

或者

http://ref.x86asm.net/coder32.html

0x44 告诉你这是一个增量。x86 是可变长度的,因此其他一些字节也会发挥作用。如果 0x04 是 esp 的偏移量,我不会感到惊讶。

于 2010-09-15T13:45:40.567 回答