PE header 中有一個欄位叫做 SizeOfHeaders.
但是這個欄位實際上只是方便給人看得, PE 檔案實際上的 header 大小不一定要跟這個值一樣
程式也可以順利執行
因此, 當要定位 section table 時, 也不能用 SizeOfHeaders 來算
正確的算法應該是
dosHeader.e_lfanew +
sizeof(ntHeaders.FileHeader) +
sizeof(ntHeaders.Signature) +
ntHeaders.FileHeader.SizeOfOptionalHeader;
Reference:
http://bbs.pediy.com/showthread.php?t=152786
沒有留言:
張貼留言