一:objdump介绍
在 Linux中,一切皆文件。 Linux 编程实际上是编写处理各种文件的代码。系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和多样的用途。
目标文件是包含带有附加地址和值的助记符号的路线图。这些符号可以用来对各种代码段和数据段进行命名,包括经过初始化的和未初始化的。它们也可以用来定位嵌入的调试信息,就像语义 Web,非常适合由程序进行阅读。
objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
objdump -D命令来查看test的汇编代码。
objdump -S命令来以汇编和源代码的形式查看test的代码。
2. 查看可执行文件中函数调用的地址
可以使用以下命令来查看可执行文件中的函数调用地址:
objdump -d -j .plt test
可以使用以下命令来查看可执行文件中的符号表:
objdump -t test
紧接着可以用nm查看函数和全局变量,静态变量
[root@localhost testEg]# nm test.o
0000000000000000 T add
000000000000002a T main
U printf
0000000000000014 T sub