在 CentOS 上做“反汇编”通常依赖 binutils / gdb / objdump / radare2 / IDA 等工具。下面按常见场景给你一套实用指南。
objdump(最常用,系统自带)适合:ELF 可执行文件、.o 文件、库文件
安装(一般已安装):
yum install -y binutils
objdump -d test
objdump -d test | grep -A 20 main
objdump -S test
objdump -t test
gdb(调试 + 反汇编)适合:动态调试、单步反汇编
安装:
yum install -y gdb
gdb ./test
disassemble main
disassemble 0x4005f6
disas
b main
run
disas
ndisasm(适合裸二进制)适合:shellcode、无格式 bin
安装:
yum install -y nasm
使用:
ndisasm -b 64 test.bin
radare2(专业逆向)适合:逆向工程、CTF
安装:
yum install -y radare2
使用:
r2 ./test
常用命令:
aaa # 分析
pdf @ main # 反汇编 main
pd 20 # 反汇编 20 条
gcc -g -o test test.c
gcc -O0 -g -o test test.c
file test
objdump -M intel -d test
-M intel使用 Intel 语法(默认是 AT&T)
objdump -S -M intel test
gdb ./test
(gdb) disassemble main
查看系统:
uname -m
| 系统 | 指令 |
|---|---|
| x86 | 32 位 |
| x86_64 | 64 位 |
| aarch64 | ARM64 |
反汇编时自动识别,无需额外参数。
nm 查看)nm test | grep main
<+0> <+1>?说明没有调试信息,建议:
gcc -O0 -g
gcc -O0 -g -o test test.c
objdump -M intel -S test
或:
gdb ./test
disassemble main
如果你有具体场景(比如:
可以直接说,我可以给你针对性命令和解释。