在 CentOS 上反汇编程序,通常使用的是 GNU Binutils 里的工具(如 objdump),或者更强大的 radare2 / Ghidra / IDA。下面按常见场景给你一套实用做法。
sudo yum install -y binutils gdb
可选(强烈推荐):
sudo yum install -y nasm radare2
objdump 反汇编(最常用)objdump -d your_program
示例:
objdump -d ./a.out
objdump -d ./a.out | grep -A 20 "<main>:"
objdump -S ./a.out
⚠️ 编译时要加 -g:
gcc -g -o a.out main.c
objdump -t ./a.out
readelf -h ./a.out # ELF 头
readelf -S ./a.out # 段表
readelf -s ./a.out # 符号表
gdb ./a.out
disassemble main
或 AT&T / Intel 语法切换:
set disassembly-flavor intel
disassemble main
sudo yum install -y radare2
r2 ./a.out
aaa # 自动分析
pdf # 反汇编当前函数
s main # 跳转 main
pdf # 查看 main
file ./a.out
如果是:
stripped
可以:
objdump -d ./a.out
r2 ./a.out
aaa
或用:
strings ./a.out
gcc -g -o test test.c
objdump -S test
gdb ./test
| 工具 | 适合 |
|---|---|
| objdump | 静态分析、快速查看 |
| gdb | 动态调试 |
| radare2 | 逆向工程 |
| Ghidra/IDA | 高级逆向 |
如果你愿意,可以告诉我:
我可以给你更精确的命令和反汇编解读。