要分析 CentOS 上的反汇编,通常分为 目标文件/可执行文件分析、内核/驱动分析、动态调试 三大类。下面给你一个从入门到进阶的完整思路,适合安全研究、逆向工程、漏洞分析或底层调试。
在 CentOS 上,常见分析对象包括:
| 类型 | 示例 |
|---|---|
| 用户态程序 | /bin/ls、/usr/bin/xxx |
| 动态库 | .so 文件 |
| 内核模块 | .ko |
| 二进制漏洞样本 | exploit、malware |
| 崩溃 core dump | core.xxx |
# 基础工具
yum install -y binutils gdb strace ltrace
# 反汇编 & 逆向
yum install -y objdump readelf nm
# 高级逆向
yum install -y radare2
可选(推荐):
# 调试符号
debuginfo-install glibc bash
file ./target
常见输出:
ELF 64-bit LSB executableELF 64-bit LSB shared objectreadelf -h ./target # ELF 头
readelf -S ./target # 段表
readelf -s ./target # 符号表
重点看:
.text(代码段).data / .bss.plt / .gotobjdump -d ./target
只看 main:
objdump -d ./target | grep -A 30 "<main>:"
带源码(如果有调试信息):
objdump -S ./target
nm ./target
T:函数U:未定义(外部调用)t:局部函数strings ./target
常用于:
gdb ./target
常用命令:
disas main
disas 0x401234
info registers
info functions
break main
run
stepi
nexti
查看汇编 + 源码:
layout asm
layout src
strace ./target
查看:
openexecveconnectmmapobjdump -d /lib64/libc.so.6 | less
查看:
syscallretpltobjdump -d *.ko
结合:
cat /proc/kallsyms
⚠️ 内核逆向需要:
gdb ./target core
bt
info registers
disas $pc
| 工具 | 用途 |
|---|---|
| radare2 / r2 | 强大逆向 |
| Ghidra | 伪代码 |
| IDA Pro | 商业级 |
| angr | 自动化分析 |
r2 示例:
r2 ./target
aa
pdf @ main
| 架构 | 指令 |
|---|---|
| x86_64 | mov, call, ret, syscall |
| ARM | ldr, str, bl |
file → readelf → strings → objdumpgdb + strace你可以直接告诉我:
我可以给你 具体命令 + 汇编逐行讲解。