Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我写了一个非常基本的Hello World程序来了解部分。使用后,objdump我得到了所有部分。我正在使用ubuntu 12.04.
Hello World
objdump
ubuntu 12.04
在输出中我发现它是这样的:
.init 节的反汇编 段 .plt 的拆卸 部分.text的反汇编 __do_global_dtors_aux 段.fini的反汇编
.init 节的反汇编
段 .plt 的拆卸
部分.text的反汇编
__do_global_dtors_aux
段.fini的反汇编
我想知道这些部分是什么?他们存储什么数据?特别是.plt和.fini。关于.init,.text我可以猜到,但其他人呢?
.plt
.fini
.init
.text
你应该谷歌它:这是第一个结果。这是了解更多有关 ELF 格式的良好开端。
关于.initand .fini,它就在这里。
以下是带有简要说明的 ELF 部分列表。
从这个方便的页面:
我要提到的下一部分是 .plt 部分。这包含我们调用共享库中的函数时使用的跳转表。
从这个页面:
.fini 本节包含有助于进程终止代码的可执行指令。即当程序正常退出时,系统会安排执行本节中的代码。
本节包含有助于进程终止代码的可执行指令。即当程序正常退出时,系统会安排执行本节中的代码。
您可能会发现这个简短的教程很有帮助。它还包含相关文献的链接。
“揭秘链接器,第 1 部分”:http ://www.rtos.be/?p=2166
我希望它有所帮助。
费尔南多