温馨提示×

CentOS下怎么用objdump

小樊
42
2026-08-19 07:35:03
栏目: 智能运维

CentOS 下,objdumpbinutils 软件包里的工具,用来反汇编、查看目标文件/可执行文件/共享库的信息。下面按常见用法给你一个实用速查表。


一、安装 objdump(如果没有)

yum install -y binutils

安装完成后确认:

objdump -v

二、常用基本用法

1️⃣ 查看目标文件/可执行文件信息

objdump -f test

输出:

  • 文件格式(ELF)
  • 架构(x86-64、ARM 等)
  • 入口点地址

2️⃣ 反汇编代码(最常用)

反汇编整个文件

objdump -d test

反汇编并显示源码(如果有 -g 编译)

objdump -S test

示例编译:

gcc -g -o test test.c
objdump -S test

3️⃣ 只反汇编某个段(section)

objdump -d -j .text test

常见 section:

  • .text:代码段
  • .data:已初始化数据
  • .rodata:只读数据
  • .bss:未初始化数据

4️⃣ 查看所有 section 头信息

objdump -h test

输出:

  • section 名称
  • 大小
  • 虚拟地址
  • 文件偏移

5️⃣ 查看符号表

objdump -t test

或只看动态符号:

objdump -T test

等价工具:nmreadelf -s


6️⃣ 查看重定位信息

objdump -r test.o

常用于 .o 文件分析链接过程。


7️⃣ 查看汇编使用的指令集(AT&T / Intel)

默认是 AT&T 语法,可切换为 Intel 语法:

objdump -M intel -d test

8️⃣ 查看动态链接信息

objdump -p test

可以看到:

  • 依赖的 so
  • 入口点
  • RPATH / RUNPATH

三、常见组合示例

反汇编 + Intel 语法 + 显示源码

objdump -M intel -S test

只看 main 函数

objdump -d test | grep -A 30 "<main>:"

分析一个 .o 文件

objdump -d test.o
objdump -r test.o

四、objdump vs readelf

工具 适合
objdump 反汇编、综合查看
readelf ELF 结构分析(更底层)

示例:

readelf -h test
readelf -S test

五、典型排错场景

✅ 程序 crash,看汇编
✅ 检查是否开了 NX / PIE / RELRO
✅ 分析 so 依赖
✅ 学习 C 编译后的汇编实现


如果你有 具体场景(比如分析 core dump、so、内核模块、漏洞分析),可以直接贴文件或命令,我可以帮你具体解读输出。

0