温馨提示×

CentOS反汇编指令如何设

小樊
37
2026-07-20 19:16:18
栏目: 智能运维

CentOS 上做“反汇编”通常依赖 binutils(objdump)gdbradare2 / r2 等工具。下面按常见场景给你一个实用速查表。


一、准备环境(CentOS)

1️⃣ 安装常用反汇编工具

sudo yum install -y binutils gdb

可选(更强):

sudo yum install -y radare2

二、最常用:objdump 反汇编

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

objdump -d test

2️⃣ 反汇编指定函数

objdump -d test | grep -A 20 "<main>:"

3️⃣ 显示源码 + 汇编(需要 -g 编译)

objdump -S test

4️⃣ 显示 Intel 语法(推荐)

objdump -M intel -d test

✅ 默认是 AT&T 语法(%eax、$0x1),-M intel 更接近 Windows / IDA 风格。


三、结合 GCC 使用(非常重要)

编译时加调试信息

gcc -g -o test test.c

反汇编时效果最好

objdump -S -M intel test

四、GDB 中的反汇编指令(调试时)

1️⃣ 进入 gdb

gdb ./test

2️⃣ 反汇编当前函数

disassemble

3️⃣ Intel 语法

set disassembly-flavor intel
disassemble main

4️⃣ 反汇编指定地址范围

disassemble 0x400500,0x400550

5️⃣ 单步执行并看汇编

ni        # 单步(不进入函数)
si        # 单步(进入函数)

五、快速对比:AT&T vs Intel 语法

# AT&T(objdump 默认)
mov    $0x1,%eax

# Intel(推荐)
mov    eax,0x1

六、进阶工具(可选)

radare2(专业逆向)

r2 ./test

常用命令:

aa        # 分析
pdf @ main

七、常见错误排查

❌ 看不到汇编?

  • 文件被 strip
file test
  • 没有 -g 编译
  • 是脚本文件而不是 ELF

八、总结(最常用组合)

gcc -g -o test test.c
objdump -M intel -d test

或调试时:

gdb ./test
set disassembly-flavor intel
disassemble main

如果你愿意,我可以:

  • ✅ 帮你 逐行解释一段反汇编代码
  • ✅ 教你 从 C 到汇编对照学习
  • ✅ 针对 漏洞分析 / CTF / 内核 / 驱动 场景讲解

直接把你的 CentOS 版本 + 目标文件 发我即可。

0