在 CentOS 上进行程序反汇编,通常依赖 GNU 工具链(如 objdump、gdb)或专门的反汇编/逆向工具(如 radare2、IDA、Ghidra)。下面按常用程度和场景给你一个系统性的指南。
sudo yum install -y binutils gdb gcc make
可选但推荐:
sudo yum install -y ncurses-devel
// test.c
#include <stdio.h>
int main() {
int a = 3, b = 4;
return a + b;
}
gcc -O0 -g -o test test.c
objdump -d test
objdump -d test | grep -A 20 "<main>:"
objdump -S test
objdump -t test
gdb ./test
disassemble main
disassemble /m main
break main
run
stepi
info registers
sudo yum install -y git make gcc
git clone https://github.com/radareorg/radare2
cd radare2
sys/install.sh
r2 -d ./test
常用命令:
aaa # 自动分析
pdf # 反汇编当前函数
s main # 跳到 main
pdf @ main
objdump -d /bin/ls
或:
r2 /bin/ls
aaa
pdf @ main
| 工具 | 用途 |
|---|---|
objdump -d |
静态反汇编 |
objdump -S |
源码+汇编 |
gdb disassemble |
调试时反汇编 |
radare2 |
逆向分析 |
Ghidra / IDA |
高级逆向(GUI) |
strip test
readelf -h test
objdump -d module.ko
如果你有具体需求(比如:
✅ 反汇编 C/C++ 程序
✅ 分析 恶意程序
✅ 逆向 无符号二进制
✅ 反汇编 内核 / 驱动)
可以告诉我,我可以给你更针对性的命令和思路。