使用Objdump進行目標文件的反彙編和文件佈局的簡要分析

一、源代碼文件如下圖




二、使用file命令查看文件類型

分析:編譯後的目標文件類型爲ELF-X86類型




三、使用objdump –d 進行反彙編

分析:

1、  目標文件類型爲ELF-X86

2、  <mian>下面的callq包含重定位項,也就是2個函數的入口地址




四、objdump –hrt 查看目標文件佈局圖

分析:

1、.bss 沒有初始化和初始化爲0的全局變量(bss類型的全局變量只佔內存空間,而不佔文件空間)

2、.data 很明顯就是數據段,裏面存放着數據。(如果數據爲0,爲了優化考慮,編譯器會把他當作bss處理)。data段存放初始化過的(非0)的全局變量。data類型的全局變量佔用文件空間,運行時佔用內存空間。

3、rodata 只讀數據段,他是多個進程間共享的,這樣可以提高空間利用率。

4、段-size:

.text 7b

.data 04

.bss 0

.rodata 1e






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章