温馨提示×

centos怎样使用反汇编指令

小樊
50
2026-10-09 01:49:00
栏目: 智能运维

在 CentOS 下做“反汇编”通常依赖 GNU 工具链(如 objdump、gdb、gcc 自带内联汇编查看等)。下面按常见使用场景给你说明。


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

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

objdump -d test

或

objdump -d test.o

常用选项:

  • -d:反汇编可执行代码
  • -D:反汇编所有段(包括数据段)
  • -M intel:使用 Intel 语法(默认是 AT&T)
  • -S:源码 + 汇编混合(需要编译时加 -g)

示例(Intel 语法):

objdump -d -M intel test

2️⃣ 反汇编并查看源码(推荐)

编译时加调试信息:

gcc -g -o test test.c

然后:

objdump -S -M intel test

3️⃣ 只反汇编某个函数

objdump -d -M intel test | grep -A 20 main

或使用 nm 找到地址:

nm test | grep main
objdump -d -M intel --start-address=0x4005b6 --stop-address=0x400600 test

二、使用 gdb 进行反汇编(调试时非常方便)

1️⃣ 启动 gdb

gdb ./test

2️⃣ 反汇编当前函数

disassemble

3️⃣ 反汇编指定函数

disassemble main

4️⃣ Intel 语法(推荐)

set disassembly-flavor intel
disassemble main

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

disassemble 0x4005b6, 0x400600

三、查看内联汇编 / 编译器生成的汇编

1️⃣ 只生成汇编代码(不链接)

gcc -S -masm=intel test.c

生成:

test.s

2️⃣ 查看优化后的汇编

gcc -O2 -S -masm=intel test.c

四、其他反汇编工具(可选)

ndisasm(适合裸二进制)

yum install nasm
ndisasm -b 64 test.bin

radare2(高级逆向)

yum install radare2
r2 ./test
pdf

五、AT&T vs Intel 语法对比(很重要)

默认(AT&T):

movl %eax, %ebx

Intel:

mov ebx, eax

✅ 建议初学者用:

-M intel

六、常见错误排查

❌ objdump: not found

yum install binutils

❌ gdb: command not found

yum install gdb

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

  • 是 C 程序 / 汇编程序 / 二进制文件
  • 是否用于 CTF / 逆向 / 内核 / 漏洞分析

我可以给你更精确的命令示例。

0 踩