【发布时间】:2010-09-15 09:01:06
【问题描述】:
0x042444FF; /* inc dword ptr [esp+4] */
我需要这个工具来知道哪个部分表示inc,dword,反之亦然。
【问题讨论】:
-
哪台机器?也许将其添加到标签/问题
标签: assembly machine-code
0x042444FF; /* inc dword ptr [esp+4] */
我需要这个工具来知道哪个部分表示inc,dword,反之亦然。
【问题讨论】:
标签: assembly machine-code
您可以使用objdump 工具将可执行二进制文件“反编译”回汇编代码,但由于可能的优化,生成的汇编代码可能与原始程序集不同(但它们本质上应该相似)。
【讨论】:
nasm 来执行此操作。
objdump 的所有可能优化?
gcc 中的优化。
获取该十六进制数字并为您反汇编的命令行工具。我没有听说过工具。您可以使用该数字制作一个 elf 文件,并将这四个字节作为二进制文件,然后调用 objdump。有类似的东西,不过你可以查一下。
http://ref.x86asm.net/index.html
或
http://ref.x86asm.net/coder32.html
0x44 告诉你这是一个增量。 x86 是可变长度的,因此其他一些字节也会发挥作用。如果 0x04 是 esp 的偏移量,我不会感到惊讶。
【讨论】:
以下内容有点不方便,但可以:
$ 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 是生成文件中十六进制数据的地址。
您可以使用任何其他工具来创建二进制文件。
【讨论】: