shell之objdump命令

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