逆向破解(本地篇)- 10 BC++程序的IAT查找修復

BC++程序脫殼後,利用ImportREC的自動修復是不行的,依舊打不開,需要手動查找IAT範圍。

  1. 重新打開OD,載入原程序,找到OEP,在下方的第一個call,選中後按下回車,進入裏面尋找IAT

  2. 進入CALL後會發現一連串的jmp dword ptr ds:[xxx]代碼,往上翻,直到這個CALL的段首處

  3. 選中第一行,右鍵 → 數據窗口中跟隨 → 內存地址,去左下角的數據窗口中,右鍵 → 長型 → 地址

  4. 可以看到段首的地址(RVA),比如 jmp dword ptr ds:[4E010C] ,起始位置就是 4E010C-400000 = E010C(需要減掉段地址400000)

  5. 然後可以拉到最後一個jmp,就是終止位置,減去起始位置,就是Size大小(其實可以統一寫1000

  6. 有了RVASize後,就找到了IAT,然後進入ImportREC,填入相應值,獲取輸入表,修復脫殼文件

    importREC


PS:

BC++Delphi程序的事件也與一般程序不同,需要使用DeDe來分析,找到相應的按鈕事件和窗體事件,複製地址再去OD中定位,斷點,調試分析。

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