在 Linux 下进行反汇编(disassembly)和逆向分析,常用工具如下,按使用场景分类:
GNU binutils 自带,适合查看 ELF 文件汇编代码。
objdump -d ./a.out
常用选项:
objdump -M intel -d ./a.out # Intel 语法
objdump -s -j .text ./a.out # 查看段内容
✅ 适合:快速查看函数汇编
❌ 不适合:复杂逆向、交互分析
调试器,可动态反汇编。
gdb ./a.out
常用命令:
disas main
disas 0x401000
info registers
x/10i $rip
✅ 适合:调试 + 看汇编
✅ 支持 AT&T / Intel 语法
功能强大的逆向工程框架。
r2 ./a.out
常用命令:
aaa # 自动分析
pdf @ main # 反汇编 main
图形界面版本:
cutter
✅ 适合:中高级逆向
✅ 免费、开源
支持反汇编 + 伪代码(类似 IDA)。
./ghidraRun
✅ 适合:大型程序、ELF、二进制分析
✅ 免费、跨平台
✅ 支持多种架构(x86 / ARM / MIPS)
逆向分析“神器”。
✅ 适合:专业逆向、CTF、安全研究
| 场景 | 推荐工具 |
|---|---|
| 快速看汇编 | objdump |
| 调试 + 汇编 | GDB |
| 静态逆向 | Ghidra |
| 动态逆向 | Radare2 / GDB |
| 商业/专业 | IDA Pro |
| 工具 | x86/x64 | ARM | MIPS |
|---|---|---|---|
| objdump | ✅ | ✅ | ✅ |
| GDB | ✅ | ✅ | ✅ |
| Ghidra | ✅ | ✅ | ✅ |
| Radare2 | ✅ | ✅ | ✅ |
objdump -M intel -d ./test | less
输出示例:
main:
push rbp
mov rbp, rsp
mov eax, 0
pop rbp
ret
如果你愿意,我可以: