我寫了一個非常基本的Hello World
程序來了解部分。使用objdump
後,我得到了所有部分。我正在使用ubuntu 12.04
。在c程序中拆卸部分
在輸出我發現它類似的:
部的
拆卸的.init
部.PLT
拆卸部分的拆卸的.text
__do_global_dtors_aux
部分調用.fini
我想知道的那些部分是拆卸?他們存儲什麼數據?特別是.plt
和.fini
。關於.init
和.text
我可以猜到,但其他人呢?
我寫了一個非常基本的Hello World
程序來了解部分。使用objdump
後,我得到了所有部分。我正在使用ubuntu 12.04
。在c程序中拆卸部分
在輸出我發現它類似的:
部的
拆卸的.init
部.PLT
拆卸部分的拆卸的.text
__do_global_dtors_aux
部分調用.fini
我想知道的那些部分是拆卸?他們存儲什麼數據?特別是.plt
和.fini
。關於.init
和.text
我可以猜到,但其他人呢?
你應該谷歌它:here is the first result。瞭解更多關於ELF格式的信息是一個很好的開始。
約.init
和.fini
,it's here。
下一節我想提的是.plt節。這包含我們在共享庫中調用函數時使用的跳轉表。
調用.fini
本節認爲有助於進程終止代碼可執行指令。也就是說,當程序正常退出時,系統會安排執行本節中的代碼。
我知道你們是怎麼編譯該文件 –
第一'的gcc -o objectfile programname.c' 然後'objdump的objectfile'。 – someone