在 Linux 下进行反汇编(disassembly)时,支持的文件格式主要取决于你使用的工具链(如 objdump、gdb、radare2、IDA、ghidra 等)。下面按常见分类说明 Linux 下反汇编通常支持哪些格式。
这是 Linux 下最重要、最核心的格式:
.so).o)支持工具:
objdump -d a.out
gdb a.out
readelf -a a.out
很多 Linux 反汇编工具也支持 Windows 格式:
.exe.dll.sys常用工具:
objdump(配合 x86_64-w64-mingw32-objdump)radare2GhidraIDA示例:
x86_64-w64-mingw32-objdump -d test.exe
Linux 工具对 Mach-O 的支持不如 ELF 完整,但以下工具支持:
radare2Ghidraobjdump(部分,需配置)没有任何文件头,直接是机器码:
示例(指定架构):
objdump -b binary -m arm -D firmware.bin
radare2:
r2 -a arm -b 32 -e bin.relocs.apply=true firmware.bin
主要用于:
支持工具:
radare2Ghidraobjcopy(可转换格式)gdb ./a.out core
可反汇编崩溃现场代码。
| 工具 | ELF | PE | Mach-O | Raw | HEX |
|---|---|---|---|---|---|
| objdump | ✅ | ✅(交叉) | ❌/⚠️ | ✅ | ❌ |
| gdb | ✅ | ❌ | ❌ | ⚠️ | ❌ |
| radare2 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ghidra | ✅ | ✅ | ✅ | ✅ | ✅ |
| IDA | ✅ | ✅ | ✅ | ✅ | ✅ |
Linux 下反汇编最原生支持的是 ELF 格式,但借助交叉工具和第三方逆向工具,几乎支持所有主流可执行格式(PE / Mach-O / Raw / HEX 等)。
如果你有具体场景(比如:嵌入式、Windows 程序、shellcode、内核模块),我可以给你更针对性的建议。