在這些日子裏,我正在閱讀一些PE可執行文件規範。然後我做了小C程序做push ebp, pop ebp
,我編譯它。編譯成功後,我打開可執行文件中的PE文件,並查看位置PE_magic + PE_header_size + PE_OPTHDR_entrypoint
,其中PE魔術在文件中首次出現「PE」字符串,PE_header_size爲24,PE_OPTHDR爲16,根據PE & COFF規範。在那個位置我找到地址0x1000,但我的文件長度只有0x600。那麼我在正確的位置,或入口點(這是在0x200)的地址設置不正確?是正確的地方的入口點?
我包括我的文件的圖像和我的代碼。
代碼(在項目屬性我已經選中除了標準庫):
int main() {
int a = 0;
__asm {
push ebp
pop ebp
}
}
讓我看看你的代碼來讀取PE,至少可以得到頭文件信息 – 2013-03-09 13:40:11