在unpackme#1的破解中,涉及到修改PE文件。
其步驟是現在在text節的空白處填寫代碼,並在PE文件中修改執行OEP。
問題一 ee f8 01是怎麼來的
je short 00401083是e9 96 01修改爲ee f8 01的思路的關鍵是考慮到原有是經過加密,直接修改自己寫的地址並非加密的,執行時是會出現錯誤,所以要針對的異或加密。
問題二 如何確定要修改的地址
內存中地址要反推到PE文件的值。
起始值:確定起始內存地址
偏差值:當前地址減去起始地址
節:確定節的位置,根據PE文件中節VA的定義判斷
偏移值:節-VA
具體值:再根據PointerToRawData+偏移值
如果存在重定位等問題時,則是根據具體的起始內存開始計算,只不過計算的是相對值,