温馨提示×

哪些linux反汇编指令好用

小樊
37
2026-07-21 12:58:38
栏目: 智能运维

在 Linux 下进行反汇编(disassembly),常用且“好用”的指令/工具取决于你的使用场景(静态分析、动态调试、内核、二进制格式等)。下面按常用程度 + 场景给你一个实用清单。


一、最常用:objdump(基础必备)

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

objdump -d ./a.out

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

objdump -S ./a.out

3️⃣ 显示符号表

objdump -t ./a.out

4️⃣ 显示段信息

objdump -h ./a.out

✅ 优点:

  • 系统自带
  • 支持 ELF / 多种架构
  • 适合快速查看

❌ 缺点:

  • 对混淆/加壳支持一般
  • 不可交互

二、最推荐:GDB(动态反汇编)

1️⃣ 反汇编当前函数

disassemble

2️⃣ 反汇编指定地址

disassemble 0x4005f0

3️⃣ 反汇编指定函数

disassemble main

4️⃣ Intel 语法(更直观)

set disassembly-flavor intel
disassemble main

✅ 优点:

  • 运行态反汇编
  • 可结合寄存器、内存
  • 实战调试必备

三、专业逆向:radare2 / r2

安装

sudo apt install radare2

常用命令

r2 ./a.out
aaa          # 自动分析
pdf          # 反汇编当前函数
pdf @ main   # 反汇编 main 函数
pd 20        # 反汇编 20 条指令

✅ 优点:

  • 强大、免费
  • 支持符号、交叉引用
  • 逆向工程神器

❌ 缺点:

  • 学习曲线陡

四、最友好:Ghidra / IDA(图形化)

Ghidra(NSA 开源)

./ghidraRun

✅ 优点:

  • 反汇编 + 伪 C 代码
  • 免费
  • 支持多种架构

❌ 缺点:

  • 占用资源大
  • 不适合纯命令行

五、轻量好用:ndisasm(适合裸二进制)

安装

sudo apt install nasm

使用示例

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

✅ 适合:

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

六、查看符号 & 调用关系

nm

nm ./a.out

readelf

readelf -a ./a.out

七、推荐组合(实战)

场景 推荐
快速查看 objdump -d
调试分析 gdb + disassemble
逆向工程 radare2
伪代码 Ghidra
Shellcode ndisasm

八、常用小技巧

Intel 语法(objdump)

objdump -M intel -d ./a.out

反汇编指定函数

objdump -d ./a.out | grep -A 20 "<main>:"

如果你愿意,我可以:

  • ✅ 给你一个反汇编速查表
  • ✅ 对比 objdump vs radare2 vs gdb
  • ✅ 教你从汇编还原 C 语义
  • ✅ 针对 CTF / 内核 / 恶意样本 给专用方案

你主要用反汇编做什么?

0