温馨提示×

CentOS反汇编命令有哪些

小樊
51
2026-08-04 08:40:53
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)中,反汇编(disassembly)通常使用 binutilsGDBobjdumpradare2IDAGhidra 等工具。下面按常用程度使用场景来介绍。


一、最常用:objdump(推荐)

objdump 属于 binutils,CentOS 默认一般已安装。

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

objdump -d ./a.out

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

objdump -d -j .text ./a.out

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

objdump -S ./a.out

4️⃣ 显示符号表

objdump -t ./a.out

5️⃣ Intel 语法(默认是 AT&T)

objdump -M intel -d ./a.out

二、GDB 中反汇编(动态调试)

适合调试时查看汇编代码。

1️⃣ 启动 GDB

gdb ./a.out

2️⃣ 反汇编当前函数

disassemble

3️⃣ 反汇编指定函数

disassemble main

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

disassemble 0x4005f0,0x400620

5️⃣ Intel 语法

set disassembly-flavor intel
disassemble main

三、ndisasm(适合裸二进制文件)

ndisasm 来自 nasm

安装

yum install nasm

反汇编二进制文件

ndisasm -b 32 file.bin
ndisasm -b 64 file.bin

✅ 常用于:

  • Shellcode
  • Bootloader
  • 无 ELF 头的二进制

四、readelf(辅助分析)

虽然不能直接反汇编,但常用于分析结构。

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

五、高级反汇编 / 逆向工具(可选)

1️⃣ radare2(强烈推荐)

yum install radare2
r2 ./a.out
pd 20        # 反汇编 20 条
pdf          # 反汇编当前函数

2️⃣ Ghidra / IDA

  • 图形化
  • 反编译 + 反汇编
  • 不在 CentOS 默认仓库

六、对比总结

工具 用途 是否默认安装
objdump 静态反汇编
gdb 动态调试 + 反汇编
ndisasm 裸二进制 ❌(需 nasm)
readelf ELF 分析
radare2 逆向分析
Ghidra 高级逆向

七、常见组合用法

objdump -M intel -d ./a.out | less
gdb ./a.out
(gdb) set disassembly-flavor intel
(gdb) disassemble main

如果你愿意,我可以:

  • ✅ 专门讲 x86 / x64 汇编
  • ✅ 用 真实 ELF 文件示例演示反汇编
  • ✅ 教你 从反汇编还原 C 代码逻辑

只要告诉我你的使用场景即可。

0