我正在使用FASM汇编语言编写程序,希望能够查看所有宏展开后生成的代码。通常可以使用objdump -d
来反汇编二进制文件,但对于由fasm生成的二进制文件,它只会输出以下内容:
$ cat true.fasm
format ELF64 executable
sys_exit = 60
entry $
mov eax, sys_exit
xor edi, edi
syscall
$ fasm true.fasm
$ objdum -d ./true
out/true: file format elf64-x86-64
我能做的是将二进制文件加载到gdb
中,并使用starti
启动它,然后使用x/10i $rip
解码指令,但这种方法并不是最佳选择。有没有可以实现相同功能的非交互式命令?
.text
节),只有程序头,告诉操作系统如何映射到内存。我不知道一个好的方便的方法来反汇编它,除了把它当作一个平面二进制文件并对所有内容进行反汇编(例如ndisasm -b32
)。然后自己找到实际指令的开始位置。 - Peter Cordes-D
(大写 D,反汇编所有)选项,看看是否效果更好。 - Ross Ridge-D
results in same output:file format elf64-x86-64
- KAction