在 CentOS(本质是 Linux)下进行反汇编,常用且“好用”的指令/工具取决于你的使用场景(看二进制、看函数、分析漏洞、逆向等)。下面按推荐程度给你总结:
适合:快速看反汇编、节区、符号
objdump -d ./test
常用参数:
objdump -d -M intel ./test # Intel 语法(推荐)
objdump -d -M att ./test # AT&T 语法
objdump -S ./test # 源码+反汇编(需带 -g)
objdump -x ./test # 看文件结构
✅ 优点:CentOS 自带,无需安装
❌ 缺点:交互差,不适合复杂分析
适合:动态调试、看运行时汇编
gdb ./test
(gdb) disassemble main
(gdb) disassemble /m main # 源码+汇编
设置语法:
set disassembly-flavor intel
✅ 优点:可单步、下断点
❌ 缺点:不适合大规模分析
适合:逆向、漏洞分析、CTF
安装:
yum install radare2
使用:
r2 -d ./test
[0x000000]> aaa
[0x000000]> pdf @ main
✅ 优点:
❌ 缺点:学习曲线稍陡
适合:严肃逆向工程
# 需要 Java
yum install java-11-openjdk
启动:
./ghidraRun
✅ 优点:
❌ 缺点:重,GUI
ndisasm -b 64 ./test
✅ 简单粗暴
❌ 不懂 ELF 结构,不推荐主力使用
| 场景 | 推荐 |
|---|---|
| 快速看 | objdump -d -M intel |
| 调试 | gdb |
| 逆向/CTF | radare2 |
| 严肃分析 | Ghidra |
CentOS 下最好用的是:
objdump看结构,gdb调,radare2干正事。
如果你愿意,我可以:
你主要用反汇编做什么?