Objdump命令用法介绍(objdump命令详解)

一、objdump命令简介

objdump是一个用于分析文件的命令行工具。它通常被用于UNIX和Linux系统中,用来检查可执行文件、动态链接共享库和内核镜像的文件格式和内容。

$ objdump -h test.out

上述命令将以16进制显示test.out文件的头信息。

二、objdump命令参数说明

1. -a参数

使用-a参数可以显示包括符号表在内的所有头部和代码段信息。

$ objdump -a test.out

上述命令将以16进制显示test.out文件的所有信息。

2. -D参数

使用-D参数可以显示文件的反汇编代码。

$ objdump -D test.out

上述命令将以反汇编代码的形式显示test.out文件中的代码。

3. -x参数

使用-x参数可以显示文件的所有头信息。

$ objdump -x test.out

上述命令将以16进制显示test.out文件的所有头信息。

4. -C参数

使用-C参数可以将符号名进行C++反汇编。

$ objdump -C test.out

上述命令将以C++反汇编的形式显示test.out文件中的代码。

5. -S参数

使用-S参数可以以反汇编代码和源代码的形式显示文件的代码段。

$ objdump -S test.out

上述命令将以反汇编和源代码的形式显示test.out文件中的代码。

三、objdump命令实战

1. 查看C程序的汇编代码和源代码

可以使用以下命令来查看一个C程序的汇编代码和源代码:

$ gcc -g test.c -o test
$ objdump -D test | less
$ objdump -S test | less

第一条命令生成了一个可执行文件test。

第二条命令使用objdump -D命令来查看test的汇编代码。

第三条命令使用objdump -S命令来以汇编和源代码的形式查看test的代码。

2. 查看可执行文件中函数调用的地址

可以使用以下命令来查看可执行文件中的函数调用地址:

$ objdump -d -j .plt test

上述命令将显示可执行文件test中所有函数调用的地址。

3. 查看共享库中函数的地址

可以使用以下命令来查看共享库中函数的地址:

$ objdump -T /lib/libc.so.6

上述命令将显示共享库libc.so.6中所有函数的地址。

4. 查看可执行文件中的符号表

可以使用以下命令来查看可执行文件中的符号表:

$ objdump -t test

上述命令将显示可执行文件test中的符号表。

5. 查看可执行文件中的重定位节

可以使用以下命令来查看可执行文件中的重定位节:

$ objdump -r test

上述命令将显示可执行文件test中的所有重定位节。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平