温馨提示×

linux反汇编怎么保存结果

小樊
52
2026-10-09 08:58:13
栏目: 智能运维

在 Linux 下进行反汇编时,保存结果通常有几种常见方式,取决于你使用的工具(如 objdump、gdb、radare2、IDA 等)。下面按常用工具说明:


一、使用 objdump(最常用)

1. 反汇编并保存到文件

objdump -d ./test > disasm.txt

常用参数:

  • -d:反汇编代码段
  • -D:反汇编所有段
  • -M intel:使用 Intel 语法(默认是 AT&T)
objdump -d -M intel ./test > disasm.txt

2. 反汇编指定函数

objdump -d -M intel ./test | grep -A 50 "<main>:" > main.txt

二、使用 gdb

1. 反汇编并保存

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

三、使用 radare2(r2)

1. 反汇编并保存

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 + objdump(符号 + 反汇编)

nm ./test > symbols.txt
objdump -d ./test > full_disasm.txt

五、常见技巧

1. 同时保存十六进制和汇编

objdump -d -S ./test > disasm_with_source.txt

(-S 会尽量穿插源码)

2. 保存为可读的 HTML / PDF(可选)

objdump -d ./test | aha > disasm.html

如果你能告诉我:

  • 用的是 哪个工具
  • 想保存 整个程序 / 某个函数 / 某段地址
  • 是否需要 Intel 语法

我可以直接给你一条最合适的命令。

0 踩