在 Linux 下进行反汇编(disassembly),常用工具取决于你的目标(ELF 可执行文件、内核、固件、shellcode 等)。下面按使用频率和场景给你一个实用清单。
适合:ELF 可执行文件、.o、内核模块
objdump -d ./a.out
常用选项:
objdump -M intel -d ./a.out # Intel 语法(默认 AT&T)
objdump -s -j .text ./a.out # 显示段内容
objdump -x ./a.out # 查看 ELF 头、段、符号
✅ 优点:
适合:调试 + 反汇编
gdb ./a.out
(gdb) disas main
(gdb) set disassembly-flavor intel
(gdb) disas
配合:
info functions
info registers
x/10i $rip
✅ 优点:
适合:逆向工程、商业分析
版本:
ida64 ./a.out
✅ 优点:
适合:不想花钱但想要 IDA 级别
ghidraRun
✅ 优点:
适合:黑客、CTF、自动化分析
r2 ./a.out
> aaa
> pdf @ main
图形界面:
cutter
✅ 优点:
适合:shellcode、没有 ELF 头的文件
ndisasm -b 64 shellcode.bin
arm-none-eabi-objdump -d firmware.elf
| 场景 | 推荐工具 |
|---|---|
| 学习汇编 | objdump + gdb |
| 程序逆向 | Ghidra / IDA |
| CTF | radare2 |
| 内核 / 驱动 | objdump + gdb + IDA |
| shellcode | ndisasm |
只想看汇编? → objdump
要调试? → gdb
要逆向工程? → Ghidra / IDA
要自动化分析? → radare2
裸二进制? → ndisasm
如果你愿意,可以告诉我:
我可以直接给你最合适的一条命令或分析流程。