在 Linux 下做“反汇编”,常见场景和对应命令如下,按使用频率和工具类型给你整理一份速查表。
objdump(系统自带)适合 ELF 可执行文件、.o 目标文件、静态/动态库。
objdump -d test
-g 编译)objdump -S test
objdump -d test | grep -A 30 "<main>:"
objdump -M intel -d test
objdump -d -j .text test
gdb ./test
(gdb) disassemble main
指定行数:
(gdb) disassemble /m main
Intel 语法:
(gdb) set disassembly-flavor intel
(gdb) disassemble main
ndisasm(裸二进制文件)适合 boot、shellcode、无 ELF 头文件。
ndisasm -b 32 shellcode.bin
ndisasm -b 64 shellcode.bin
gdb + peda / pwndbg(安全/逆向推荐)安装后体验极佳:
gdb ./test
pwndbg> disasm main
或:
pwndbg> pdis main
radare2(专业逆向)r2 -d ./test
[0x000000]> aaa
[0x000000]> pdf @ main
| 需求 | 命令 |
|---|---|
| 反汇编 ELF | objdump -d |
| 看源码+汇编 | objdump -S |
| Intel 语法 | -M intel |
| 调试中反汇编 | disassemble |
| 裸二进制 | ndisasm |
| 专业逆向 | radare2 |
如果你愿意,可以告诉我:
我可以直接给你最合适的一条命令。