温馨提示×

怎么反汇编CentOS程序

小樊
46
2026-08-19 07:32:04
栏目: 智能运维

CentOS 上反汇编程序,通常使用的是 GNU Binutils 里的工具(如 objdump),或者更强大的 radare2 / Ghidra / IDA。下面按常见场景给你一套实用做法。


一、准备环境(CentOS)

1️⃣ 安装必要工具

sudo yum install -y binutils gdb

可选(强烈推荐):

sudo yum install -y nasm radare2

二、使用 objdump 反汇编(最常用)

1️⃣ 反汇编整个可执行文件

objdump -d your_program

示例:

objdump -d ./a.out

2️⃣ 反汇编指定函数

objdump -d ./a.out | grep -A 20 "<main>:"

3️⃣ 显示源码 + 汇编(如果有调试信息)

objdump -S ./a.out

⚠️ 编译时要加 -g

gcc -g -o a.out main.c

4️⃣ 查看符号表

objdump -t ./a.out

三、查看 ELF 文件结构(辅助分析)

readelf -h ./a.out        # ELF 头
readelf -S ./a.out        # 段表
readelf -s ./a.out        # 符号表

四、使用 GDB 动态反汇编(调试必备)

1️⃣ 启动 GDB

gdb ./a.out

2️⃣ 反汇编函数

disassemble main

或 AT&T / Intel 语法切换:

set disassembly-flavor intel
disassemble main

五、使用 radare2(进阶推荐)

1️⃣ 安装

sudo yum install -y radare2

2️⃣ 打开程序

r2 ./a.out

3️⃣ 常用命令

aaa        # 自动分析
pdf        # 反汇编当前函数
s main     # 跳转 main
pdf        # 查看 main

六、如果是 stripped(去符号)程序

file ./a.out

如果是:

stripped

可以:

objdump -d ./a.out
r2 ./a.out
aaa

或用:

strings ./a.out

七、常见示例(完整流程)

gcc -g -o test test.c
objdump -S test
gdb ./test

八、推荐工具对比

工具 适合
objdump 静态分析、快速查看
gdb 动态调试
radare2 逆向工程
Ghidra/IDA 高级逆向

如果你愿意,可以告诉我:

  • 32 位还是 64 位
  • C / C++ / Go / Rust
  • 是否被 strip
  • 想静态分析还是动态调试

我可以给你更精确的命令和反汇编解读

0