在 Linux 下进行反汇编,选什么指令主要看你目标文件类型、架构、以及你想要的信息详细程度。下面给你一个实用选型指南。
| 场景 | 推荐工具 |
|---|---|
| 可执行文件 / 共享库(ELF) | objdump |
| 原始二进制(无符号) | objdump / ndisasm |
| 正在运行的进程 | gdb |
| 内核 / 驱动 | objdump + addr2line |
| 想交互式分析 | gdb / radare2 / ghidra |
objdump -d ./a.out
objdump -S ./a.out
objdump -d -j .text ./a.out
objdump -M intel -d ./a.out
✅ 90% 情况用这个就够
ndisasm -b 64 file.bin
arm-none-eabi-objdump -b binary -m arm -D file.bin
gdb ./a.out
disassemble
disassemble main
set disassembly-flavor intel
disassemble main
✅ 适合动态调试、看运行时行为
r2 ./a.out
pdf @ main
| 架构 | 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
如果你愿意,可以告诉我:
我可以直接给你最合适的一条命令。