温馨提示×

用什么工具反汇编Linux

小樊
43
2026-08-05 04:08:43
栏目: 智能运维

在 Linux 下进行反汇编(disassembly),常用工具取决于你的目标(ELF 可执行文件、内核、固件、shellcode 等)。下面按使用频率和场景给你一个实用清单。


一、最常用:objdump(必备)

适合:ELF 可执行文件、.o、内核模块

objdump -d ./a.out

常用选项:

objdump -M intel -d ./a.out     # Intel 语法(默认 AT&T)
objdump -s -j .text ./a.out     # 显示段内容
objdump -x ./a.out              # 查看 ELF 头、段、符号

✅ 优点:

  • 系统自带
  • 稳定、适合学习 ❌ 缺点:
  • 反汇编逻辑较简单,不适合复杂混淆代码

二、交互式反汇编:GDB(动态 + 静态)

适合:调试 + 反汇编

gdb ./a.out
(gdb) disas main
(gdb) set disassembly-flavor intel
(gdb) disas

配合:

info functions
info registers
x/10i $rip

✅ 优点:

  • 动态调试 + 反汇编
  • 适合漏洞分析 ❌ 缺点:
  • 不适合大规模静态分析

三、专业级:IDA Pro(最强)

适合:逆向工程、商业分析

  • 支持 x86 / x64 / ARM / MIPS
  • 控制流图(CFG)
  • 伪代码(Hex-Rays)

版本:

  • IDA Free(免费,功能受限)
  • IDA Pro(商业)
ida64 ./a.out

✅ 优点:

  • 行业标准
  • 分析能力极强 ❌ 缺点:
  • 收费(免费版够用)

四、免费替代:Ghidra(NSA 开源)

适合:不想花钱但想要 IDA 级别

ghidraRun

✅ 优点:

  • 免费、功能强
  • 支持伪代码
  • 支持多种架构 ❌ 缺点:
  • Java 写,稍慢
  • 学习曲线略高

五、轻量现代:Radare2 + Cutter

适合:黑客、CTF、自动化分析

r2 ./a.out
> aaa
> pdf @ main

图形界面:

cutter

✅ 优点:

  • 功能极强
  • 脚本化 ❌ 缺点:
  • 命令复杂

六、快速查看:ndisasm(适合裸二进制)

适合:shellcode、没有 ELF 头的文件

ndisasm -b 64 shellcode.bin

七、ARM / 嵌入式:arm-none-eabi-objdump

arm-none-eabi-objdump -d firmware.elf

八、常见组合推荐

场景 推荐工具
学习汇编 objdump + gdb
程序逆向 Ghidra / IDA
CTF radare2
内核 / 驱动 objdump + gdb + IDA
shellcode ndisasm

九、快速选择指南

只想看汇编?        → objdump
要调试?            → gdb
要逆向工程?        → Ghidra / IDA
要自动化分析?      → radare2
裸二进制?          → ndisasm

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

  • 架构(x86 / x64 / ARM)
  • 目标(ELF / 内核 / 固件 / shellcode)
  • 是否调试

我可以直接给你最合适的一条命令或分析流程

0