温馨提示×

CentOS反汇编命令怎么写

小樊
39
2026-08-19 07:38:01
栏目: 智能运维

CentOS 上做反汇编(disassembly),常用工具是 objdump / gdb / radare2 / ndisasm 等。下面按使用场景给你最实用的命令示例。


一、使用 objdump(最常用 ✅)

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

objdump -d test

2️⃣ 反汇编指定函数

objdump -d test | grep -A 20 main

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

objdump -S test

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

objdump -M intel -d test

5️⃣ 反汇编 32 位程序

objdump -m i386 -d test

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

objdump -d -j .text test

二、使用 gdb(动态调试时常用)

1️⃣ 进入 gdb

gdb ./test

2️⃣ 反汇编当前函数

disassemble

3️⃣ 反汇编指定函数

disassemble main

4️⃣ 使用 Intel 语法

set disassembly-flavor intel
disassemble main

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

disassemble 0x4005f0,0x400620

三、使用 ndisasm(反汇编纯二进制)

适合 shellcode / 裸二进制文件。

安装

yum install nasm

用法

ndisasm -b 32 test.bin
ndisasm -b 64 test.bin

四、使用 radare2(高级逆向工具)

安装

yum install radare2

基本用法

r2 ./test

进入后:

aaa        # 自动分析
pdf @ main # 反汇编 main 函数

五、常见示例汇总

✅ 反汇编 + Intel 语法

objdump -M intel -d test

✅ 反汇编带源码

objdump -S test

✅ 调试时反汇编

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

六、注意事项

  1. 编译时推荐加 -g
gcc -g -o test test.c
  1. 64 位 vs 32 位
file test
  1. stripped 程序
objdump -d test

函数名可能丢失,但汇编仍在。


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

  • ELF / 二进制 / shellcode
  • 32 位还是 64 位
  • 静态分析还是动态调试

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

0