objdump 是 GNU Binutils 里非常常用的反汇编工具,下面按常见用法 → 常用选项 → 实战示例来说明。
objdump -d <二进制文件>
这是最常用的一条命令,用来反汇编可执行代码段。
-d(最常用)objdump -d a.out
-D(更激进)objdump -D a.out
-S(源码 + 汇编,强烈推荐)objdump -S a.out
-g:gcc -g -o a.out main.c
-M(控制汇编语法)objdump -d -M intel a.out
intelattx86-64-b(指定文件格式)objdump -b binary -m i386 -D file.bin
-m 指定架构-t(查看符号表)objdump -t a.out
-h(查看段信息)objdump -h a.out
.text、.data、.bss 等段objdump -d a.out
gcc -g -o test test.c
objdump -S test
objdump -d -M intel a.out
objdump -d a.out | grep -A 20 main
或者更精确:
objdump -d a.out | sed -n '/<main>:/,/^$/p'
objdump -b binary -m i386 -D firmware.bin
objdump -t a.out | grep main
objdump 支持:
| 工具 | 用途 |
|---|---|
| objdump | 静态反汇编 |
| gdb | 动态调试 |
| IDA / Ghidra | 高级逆向 |
-gfile a.out
strip a.out
-M intel
如果你愿意,可以告诉我:
我可以给你更精确的 objdump 命令组合。