Windows下exe文件的本質是什麼?


從數據結構來講,PE就是個打包文件格式,將不同類型的二進位數據(被稱為Section)合併起來

這些二進位數據可以是代碼,也可以是數據資源

需要注意的是:代碼段也不是必須的

對於Windows來講,PE文件是個內存鏡像,每個Section對應了載入後的一塊內存,PE頭提供了鏡像索引,操作系統載入時映射到內存去


元數據+機器碼


exe 文件不就是擴展名為 exe 的任何文件么……


pe頭

.text

.data

.idata

.odata

.rsrc


套著PE殼的任何東西。。


x86 Disassembly/Windows Executable Files


看你想要什麼答案了

essentially x86 不區分「代碼」 跟 「數據」 因此你可以理解為pe 就是「數據」 但是知道這個對你估計也沒幫助

更實際的看法 不管是PE 還是 ELF 都是 code + data + meta-information


exe和dll都是PE文件,入口函數(EntryPoint)的原型不一樣

PE文件格式,參考MSDN:

Inside Windows: Win32 Portable Executable File Format in Detail

入口函數原型參考文檔

/ENTRY (Entry-Point Symbol)


10111101010101011010101010101....................


想要了解exe格式,反彙編破解蠕蟲病毒等原理,可以參考《Windows PE權威指南》


推薦閱讀:

你編程的動力是什麼?
有沒有程序大牛想過寫本外行看的編程教程?
如果用拉丁語來命名計算機科學裡面的名詞會是怎樣?
編程演算法和數據挖掘涉及的演算法有什麼區別和聯繫嗎?
如何能有效地學習 VBA?

TAG:MicrosoftWindows | 編程 | 計算機 |