首頁
社區(qū)
課程
招聘
修改text段后,為什么無法正確進入OEP?

我將OEP地址修改到了一個新節(jié)區(qū),同時再將.text節(jié)區(qū)全部進去修改。當(dāng)我將這個修改后的軟件放入OD,發(fā)現(xiàn)OD沒辦法定位到設(shè)定好的新的OEP。
AddressOfEntryPoint和ImageBase分別為6000與4000000,理論上我難度不應(yīng)該在加載該文件時跳轉(zhuǎn)至406000么?
但當(dāng)我試著將它丟進OD,發(fā)現(xiàn)軟件停在了7725B46B的地方,且沒辦法順利往下調(diào)試。
請問,這是為什么?以及PE文件裝載器是如何定位到OEP的(因為我發(fā)現(xiàn)即便設(shè)定了一個新的OEP,它也并沒有跳轉(zhuǎn)過去)?

收藏
2條回答
ffashi 2021-5-5

用stud看清楚先。

回復(fù)
小白iii 2021-6-6

因為沒有圖片展示修改后拖入OD的代碼,所以下面的內(nèi)容純屬個人猜測:

  1. 從地址上可以看出,代碼位于地址 0x7XXXXXXX ,通常這個地址保存的都是系統(tǒng)模塊,而程序在處于被調(diào)試狀態(tài)的時候,會默認(rèn)設(shè)置一個斷點,使程序中斷在 ntdll!LdrpDoDebuggerBreak 位置,有沒有可能斷下的是這個位置?驗證方法,再次按下 F9,如果程序二次中斷,基本就能確定了。
  2. 添加區(qū)段的時候有沒有為區(qū)段添加可執(zhí)行的屬性,如果沒有添加,程序在進入 OEP 時,由于不可執(zhí)行,會產(chǎn)生異常,最終也可能中斷在一個 0x7XXXXXXX 的地址上。
  3. 如果上面的兩個都不是,那么請補充和問題相關(guān)的更多信息,例如修改后的 pe 文件,或拖入 OEP 后顯示的代碼內(nèi)容。
回復(fù)
JsonBourne: 你說的有道理!
回復(fù) 2022-6-14
PE結(jié)構(gòu) 殼
  參與學(xué)習(xí)     人
  提問次數(shù)     100 個
0
我的提問
0
我的回答
0
學(xué)習(xí)收益