shell之objdump命令
参数介绍
objdump 是一个在 Linux 中常用的工具,用于显示二进制文件(如可执行文件、目标文件和共享库)的详细信息。它可以提供关于二进制文件中的各种段、符号、机器指令等的详细信息。
以下是 objdump 的一些主要选项和用途:
-h: 显示二进制文件的各节头部信息。
-p: 显示二进制文件的段属性。
-x: 显示二进制文件的完整头部信息,包括节头部、段属性、符号表等。
-d: 反汇编二进制文件中的所有代码段。
-D: 与 -d 类似,但显示反汇编的格式更详细。
-r: 显示二进制文件的重定位表。
-s: 显示二进制文件的数据段。
-T: 显示二进制文件的动态节。
-p: 显示二进制文件的属性。
-t: 显示二进制文件的符号表。
-R: 显示二进制文件的运行时链接信息。
-x: 显示二进制文件的完整头部信息,包括符号表、段属性等。
-i: 显示二进制文件的 inode 信息(仅适用于 ELF 格式)。
-j
–section-headers: 等同于 -h。
–program-headers: 等同于 -p。
–headers: 等同于 -h -p -x。
–relocations: 等同于 -r。
–symbols: 等同于 -t。
–dynamic: 等同于 -T。
–full-contents: 等同于 -d -D -p -r -s -t -T。
–line-numbers: 在反汇编中包含行号信息(通常用于调试)。
–disassemble-all: 反汇编所有代码段,而不仅仅是那些包含符号的段。
–disassemble-zeroes: 反汇编所有包含零的代码段(通常用于调试)。
–add-gnu-debuglink: 为给定的二进制文件添加一个 GNU 调试链接,允许使用 gdb 进行调试。
–source 或 -S: 在反汇编中显示源代码级别的信息(需要调试信息)。
例子
1)显示二进制文件的各节头部信息
objdump -h example
2)显示二进制文件的段属性
objdump -p example
3)显示二进制文件的完整头部信息,包括节头部、段属性、符号表等
objdump -x example
4)反汇编二进制文件中的所有代码段
objdump -d example
5)显示二进制文件的重定位表
objdump -r example
6)显示二进制文件的数据段
objdump -s example
7)显示二进制文件的符号表
objdump -t example
8)显示二进制文件的 inode 信息(仅适用于 ELF 格式)
objdump -i example
9)显示二进制文件的运行时链接信息
objdump -R example
10)在反汇编中包含行号信息(通常用于调试)
objdump --line-numbers example