在 CentOS 上反汇编 ELF 文件,常用下面几种方式,从“最常用”到“进阶”逐步说明。
objdump(最常用 ✅)yum install -y binutils
objdump -d test.elf
.text)objdump -d -j .text test.elf
objdump -S test.elf
objdump -t test.elf
readelf -h test.elf
readelf -S test.elf
readelf -s test.elf
gdb 反汇编(调试 & 动态分析)yum install -y gdb
gdb ./test.elf
disassemble main
disassemble 0x400500
或带机器码:
disassemble /r main
radare2(进阶,逆向常用)yum install -y radare2
r2 test.elf
进入后:
aaa # 自动分析
pd 20 # 反汇编 20 条
s main # 跳到 main
pdf # 反汇编当前函数
objcopy 提取纯代码(高级)objcopy -O binary -j .text test.elf text.bin
然后用:
ndisasm -b 64 text.bin
(需安装 nasm)
| 场景 | 推荐工具 |
|---|---|
| 快速反汇编 | objdump -d |
| 有源码 | objdump -S |
| 调试 | gdb |
| 逆向分析 | radare2 |
| 查看结构 | readelf |
objdump -d test.elf | less
或:
gdb ./test.elf
(gdb) disassemble main
如果你愿意,我可以:
告诉我你用的是 CentOS 几?32 位还是 64 位?