在 CentOS 下,objdump 是 binutils 软件包里的工具,用来反汇编、查看目标文件/可执行文件/共享库的信息。下面按常见用法给你一个实用速查表。
yum install -y binutils
安装完成后确认:
objdump -v
objdump -f test
输出:
objdump -d test
objdump -S test
示例编译:
gcc -g -o test test.c
objdump -S test
objdump -d -j .text test
常见 section:
.text:代码段.data:已初始化数据.rodata:只读数据.bss:未初始化数据objdump -h test
输出:
objdump -t test
或只看动态符号:
objdump -T test
等价工具:nm、readelf -s
objdump -r test.o
常用于 .o 文件分析链接过程。
默认是 AT&T 语法,可切换为 Intel 语法:
objdump -M intel -d test
objdump -p test
可以看到:
objdump -M intel -S test
objdump -d test | grep -A 30 "<main>:"
objdump -d test.o
objdump -r test.o
| 工具 | 适合 |
|---|---|
| objdump | 反汇编、综合查看 |
| readelf | ELF 结构分析(更底层) |
示例:
readelf -h test
readelf -S test
✅ 程序 crash,看汇编
✅ 检查是否开了 NX / PIE / RELRO
✅ 分析 so 依赖
✅ 学习 C 编译后的汇编实现
如果你有 具体场景(比如分析 core dump、so、内核模块、漏洞分析),可以直接贴文件或命令,我可以帮你具体解读输出。