在 CentOS(或任何 Linux)上进行反汇编/逆向分析,核心不是“系统本身”,而是工具链 + 目标文件类型 + 分析目的。下面按实战角度给你一套常用技巧与思路。
不同目标,方法完全不同:
| 目标 | 方式 |
|---|---|
| ELF 可执行文件 / 动态库 | objdump / gdb / radare2 / Ghidra |
内核模块 .ko |
交叉注意内核符号 |
| 正在运行的进程 | /proc/pid/exe + gdb attach |
| 系统调用 / 汇编层 | strace + objdump |
| Shellcode / 二进制片段 | ndisasm / r2 |
objdump -d ./binary
常用参数:
objdump -M intel -d ./binary # Intel 语法
objdump -s -j .text ./binary # 查看段内容
适合:
gdb ./binary
(gdb) disas main
(gdb) disas 0x401000
技巧:
set disassembly-flavor intel
layout asm
layout regs
进阶:
gdb -q -batch -ex "disas main" ./binary
✅ 适合动态调试 + 反汇编结合
r2 ./binary
常用命令:
aaa # 自动分析
pd 20 # 反汇编 20 行
pdf # 反汇编当前函数
s main
pdf
优点:
r2pipe 自动化ndisasm -b 64 shellcode.bin
适合:
适合:
yum install binutils gdb nasm
或:
dnf install radare2
CentOS 常见:
查看:
uname -m
file ./binary
带符号:
objdump -t ./binary
去符号(strip):
strip ./binary
技巧:
objdump -d 看地址strings 找线索rpm -qf /usr/bin/xxx
rpm -ql package
系统程序通常:
objdump -d ./binary | grep -A 20 "<main>:"
strings ./binary | less
ldd ./binary
readelf -h ./binary
readelf -S ./binary
checksecgdb-peda / pwndbg❌ 直接反汇编整个二进制(太大)
✅ 先定位函数 / 入口点
❌ 忽略动态链接
✅ 结合 plt / got 分析
❌ 不看系统调用
✅ strace + 反汇编一起用
CentOS 反汇编 = 工具链 + ELF 结构理解 + 目标明确
如果你愿意,可以告诉我:
我可以直接给你 针对场景的完整分析流程。