2010-09-19 47 views

回答

8

不,不一定。的PE的入口點在所述IMAGE_OPTIONAL_HEADER結構限定,在AddressOfEntryPoint字段:

的指針入口點函數,相對於圖像的基地址。對於可執行文件,這是起始地址。對於設備驅動程序,這是初始化函數的地址。入口點函數對於DLL是可選的。當沒有入口點時,該成員爲零。

鏈接器可以將其設置爲任何想要的值,只要其有效的相對虛擬偏移進入PE即可。有些編譯器和連接器可能會將入口點放在文本/代碼段的開頭,但是沒有OS或PE格式的要求。

+1

我發現在使用Windows 7時我無法任意設置AddressOfEntryPoint。我生成的小型可執行文件沒有數據目錄或節表。從試驗和錯誤中,我發現條目可能會直接指向PE標頭之後,但不會有小的附加偏移量。 – 2014-10-10 11:34:40