PE頭-關於內存地址反推和unpackme#1的應用

在unpackme#1的破解中,涉及到修改PE文件。

其步驟是現在在text節的空白處填寫代碼,並在PE文件中修改執行OEP。

 

問題一 ee f8 01是怎麼來的

je short 00401083是e9 96 01修改爲ee f8 01的思路的關鍵是考慮到原有是經過加密,直接修改自己寫的地址並非加密的,執行時是會出現錯誤,所以要針對的異或加密。

 

問題二 如何確定要修改的地址

內存中地址要反推到PE文件的值。

起始值:確定起始內存地址

偏差值:當前地址減去起始地址

       節:確定節的位置,根據PE文件中節VA的定義判斷

偏移值:節-VA

具體值:再根據PointerToRawData+偏移值

如果存在重定位等問題時,則是根據具體的起始內存開始計算,只不過計算的是相對值,

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