在 Linux 下进行反汇编(disassembly)时,常见的指令/工具主要有 objdump、gdb、ndisasm、objconv、radare2/rizin、IDA(Linux 版) 等。它们的“区别”通常体现在使用场景、功能强弱、输出格式、是否交互等方面。
下面按常用工具和核心区别来说明。
objdump -d file
objdump -d -M intel file # Intel 语法
objdump -d -S file # 反汇编+源码
objdump -D file # 反汇编所有段
gdb ./file
(gdb) disassemble main
set disassembly-flavor intel
ndisasm -b 32 file
r2 ./file
[0x000000]> pdf
objconv -fasm file
| 工具 | 是否运行 | 理解格式 | 交互 | 难度 | 典型用途 |
|---|---|---|---|---|---|
| objdump | 否 | ELF | 否 | 低 | 静态分析 |
| gdb | 是 | ELF | 是 | 中 | 调试 |
| ndisasm | 否 | raw | 否 | 低 | shellcode |
| radare2 | 否/是 | 多 | 是 | 高 | 逆向 |
| IDA | 否/是 | 多 | 是 | 高 | 专业逆向 |
如果你愿意,我可以:
你更关心哪一方面?