温馨提示×

linux反汇编指令咋选

小樊
48
2026-09-24 17:22:28
栏目: 智能运维

在 Linux 下进行反汇编,选什么指令主要看你目标文件类型、架构、以及你想要的信息详细程度。下面给你一个实用选型指南。


一、先搞清楚你要反汇编什么

场景 推荐工具
可执行文件 / 共享库(ELF) objdump
原始二进制(无符号) objdump / ndisasm
正在运行的进程 gdb
内核 / 驱动 objdump + addr2line
想交互式分析 gdb / radare2 / ghidra

二、最常用:objdump(首选)

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

objdump -d ./a.out

2️⃣ 反汇编 + 源码对照(有调试信息)

objdump -S ./a.out

3️⃣ 反汇编指定段

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

4️⃣ Intel 语法(更直观)

objdump -M intel -d ./a.out

✅ 90% 情况用这个就够


三、原始二进制文件(无 ELF 头)

x86 / x86_64

ndisasm -b 64 file.bin

ARM

arm-none-eabi-objdump -b binary -m arm -D file.bin

四、调试时反汇编:gdb

进入 gdb

gdb ./a.out

反汇编当前函数

disassemble

指定函数

disassemble main

Intel 语法

set disassembly-flavor intel
disassemble main

✅ 适合动态调试、看运行时行为


五、进阶工具(可选)

radare2(轻量、强大)

r2 ./a.out
pdf @ main

Ghidra(GUI,反编译)

  • 适合逆向工程
  • 可生成 C 伪代码

六、架构怎么选?

架构 objdump 参数
x86 默认
x86_64 默认
ARM -m arm
AArch64 -m aarch64
MIPS -m mips

七、快速选型口诀 ✅

ELF 文件 → objdump -d -M intel
调试 → gdb disassemble
裸二进制 → ndisasm / objdump -b binary
逆向分析 → radare2 / ghidra


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

  • 架构(x86 / ARM?)
  • 文件类型(ELF / bin / 内核?)
  • 用途(学习 / 调试 / 逆向?)

我可以直接给你最合适的一条命令。

0 踩