在 Linux 下进行反汇编时,保存结果通常有几种常见方式,取决于你使用的工具(如 objdump、gdb、radare2、IDA 等)。下面按常用工具说明:
objdump -d ./test > disasm.txt
常用参数:
-d:反汇编代码段-D:反汇编所有段-M intel:使用 Intel 语法(默认是 AT&T)objdump -d -M intel ./test > disasm.txt
objdump -d -M intel ./test | grep -A 50 "<main>:" > main.txt
gdb ./test
在 gdb 中:
set disassembly-flavor intel
disassemble main
保存结果:
set logging on
set logging file gdb_disasm.txt
disassemble main
set logging off
或者一次性:
gdb -batch -ex "set disassembly-flavor intel" -ex "disassemble main" ./test > gdb_disasm.txt
r2 -q -c "pdf @ main" ./test > r2_disasm.txt
pdf:反汇编当前函数pd 100:反汇编 100 条指令e asm.syntax=intel:Intel 语法示例:
r2 -q -e asm.syntax=intel -c "pdf @ main" ./test > r2_disasm.txt
nm ./test > symbols.txt
objdump -d ./test > full_disasm.txt
objdump -d -S ./test > disasm_with_source.txt
(-S 会尽量穿插源码)
objdump -d ./test | aha > disasm.html
如果你能告诉我:
我可以直接给你一条最合适的命令。