在 Linux 下做反汇编(disassembly),常用工具和指令如下,按使用场景给你列一下:
适合反汇编 ELF 文件、查看汇编代码
objdump -d 文件名
反汇编所有可执行代码段
objdump -d -M intel 文件名
用 Intel 语法(默认是 AT&T)
objdump -d -M intel -S 文件名
混合源码 + 汇编(编译时需 -g)
objdump -D 文件名
反汇编所有段(包括数据段,不一定有意义)
适合看运行时的汇编
gdb 文件名
进入 GDB 后:
disassemble
反汇编当前函数
disassemble 函数名
disassemble /m 函数名
汇编 + 源码对照
disassemble 0x地址, 0x地址
指定地址范围
查看当前指令:
x/10i $pc
适合 boot、shellcode
ndisasm -b 32 文件
ndisasm -b 64 文件
r2 文件名
pdf # 反汇编当前函数
| 工具 | 场景 |
|---|---|
| objdump | 静态分析 ELF |
| gdb | 动态调试 |
| ndisasm | 裸二进制 |
| radare2 | 专业逆向 |
如果你是:
可以告诉我,我给你更具体的命令示例。