温馨提示×

CentOS反汇编指令如何写

小樊
40
2026-07-09 02:18:31
栏目: 智能运维

CentOS 上“反汇编指令”通常指 使用 objdump / gdb / radare2 等工具对二进制文件进行反汇编。下面按常见场景给你一份实用速查表。


一、常用反汇编工具

CentOS 常见工具:

  • objdump(binutils,最常用)
  • gdb(调试 + 反汇编)
  • radare2(进阶逆向)
  • ndisasm(x86 专用,需安装 nasm

二、objdump 反汇编(最常用)

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

objdump -d test

2️⃣ 反汇编指定函数

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

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

objdump -S test

4️⃣ 显示 Intel 语法(默认是 AT&T)

objdump -M intel -d test

5️⃣ 反汇编指定段(如 .text)

objdump -d -j .text test

三、GDB 反汇编

1️⃣ 启动程序

gdb ./test

2️⃣ 反汇编当前函数

disassemble

3️⃣ 反汇编指定函数

disassemble main

4️⃣ Intel 语法

set disassembly-flavor intel
disassemble main

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

disassemble 0x4005f0,0x400620

四、radare2(进阶)

r2 ./test

常用命令:

aaa        # 自动分析
pd 20      # 反汇编 20 行
pdf        # 反汇编当前函数
s main     # 跳到 main

五、ndisasm(x86 专用)

yum install nasm
ndisasm -b 64 test

⚠️ 注意:ndisasm 不识别 ELF 结构,更适合裸二进制。


六、示例:完整流程

1️⃣ 编译(带调试信息)

gcc -g -o test test.c

2️⃣ 反汇编 main 函数

objdump -M intel -d test | grep -A 30 "<main>:"

或:

gdb ./test
(gdb) set disassembly-flavor intel
(gdb) disassemble main

七、常见语法区别(AT&T vs Intel)

AT&T(默认) Intel
mov %eax,%ebx mov ebx, eax
pushq %rbp push rbp
寄存器加 % %

推荐用 Intel 语法,更直观


八、CentOS 安装工具(如缺失)

yum install binutils gdb nasm radare2

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

  • ✅ 是 x86 还是 ARM
  • ✅ 是 用户态程序 / 内核模块 / shellcode
  • ✅ 想分析 ELF / 裸二进制

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

0