Asprotect 1.2x 加殼的 Advanced Direct Remailer 2.17 脫殼 (3千字)

看雪資料發表於2002-06-20

Asprotect 1.2x 加殼的 Advanced Direct Remailer 2.17 脫殼
--------------------------------------------------------

官方主頁: http://www.mailutilities.com
軟體下載: http://mirror.mailutilities.com/adr.zip
軟體說明: 建立本地的 SMTP 伺服器,支援多執行緒和 Socks5 Proxy,這樣您的 email 客戶端軟體可以不透過 ISP 的 SMTP 伺服器而直接向目的地址的伺服器發信,特別適合群發郵件的使用者,速度比透過ISP的伺服器要快50倍以上!

使用工具: loader、TRW2000、superbpm、Import REConstructor v1.4.2+


這個軟體同樣是在漢化新世紀論壇上有朋友要的,我的水平太爛,搞了好半天才搞定了脫殼:)

脫殼過程:

一  找程式的入口點
    用 fs0 大哥的 loader 載入軟體主程式,幾秒鐘後 loader 會告訴你,程式的 OEP 是 0043835E。


二  TRW 初步脫殼
    下面要在入口處脫殼,先開啟 SuperBPM,選中 erase 前面的核取方塊,然後用 TRW 載入 adr.exe,下g 43835E,TRW 停在程式的入口處,接著下 pedump ,將記憶體中的程式脫出來。


三  修復匯入表
    開啟原加殼程式,在 Import REConstructor v1.4.2+ 的 Attach to an Active Process 視窗中選取 adr.exe 程式,然後在下方的 OEP 處填入正確的入口 0001000,點 IAI AutoSearch,再點 Get Imports ,然後點 Show Invalid,在Imported Functions Found 視窗裡的無效地址上點滑鼠右鍵,選 Trace Leve11(disasm),這樣 Import REConstructor 能夠自動修復的專案就搞定了。

    再點 show invaids,發現還剩下幾個沒有修復,再次在那幾個沒有修復的地址上點滑鼠右鍵,選中 Plugin Tracer(Asprotect 1.2X Emul),這樣這個外掛能修復的專案也全部搞定了。再點 show invaids,所有的匯入表專案都顯示有效了,運氣真好:)

    現在點選 Fix Dump,選擇 TRW 脫殼出來的檔案 dump.exe,會在目錄下生成修正了匯入表的程式 dump_.exe

四  去軟體校驗
    執行 dump_.exe,彈出一個提示,說“crypt api not found....”云云,不爽,還有校驗啊:(

    TRW 載入 dump_.exe,下 pmodule,來到程式領空,然後下斷點 bpx messageboxa,F5 執行程式,馬上被 TRW 斷了下來。(如果這裡不先下 pmodule,直接下斷,F5,程式會被斷在 BFFXXXX 這個地址上,不在程式的領空內)

0167:00434C70 6A04            PUSH    BYTE +04
0167:00434C72 6AFF            PUSH    BYTE -01
0167:00434C74 FF151C224400    CALL    `KERNEL32!GetProcAddress`
0167:00434C7A 85C0            TEST    EAX,EAX  // EAX 是否為1
0167:00434C7C A3DC7B4600      MOV      [00467BDC],EAX
0167:00434C81 7516            JNZ      00434C99  // 不是則死,所以 JNZ => JMP
0167:00434C83 6A10            PUSH    BYTE +10
0167:00434C85 68AC634400      PUSH    DWORD 004463AC
0167:00434C8A 687C9A4400      PUSH    DWORD 00449A7C
0167:00434C8F 50              PUSH    EAX
0167:00434C90 FF1530234400    CALL    `USER32!MessageBoxA`  // 彈出 crypt api not found.... 的提示
0167:00434C96 33C0            XOR      EAX,EAX
0167:00434C98 C3              RET      // 上面的校驗過程結束
0167:00434C99 B801000000      MOV      EAX,01  // 跳到此處,即可跳過校驗
0167:00434C9E C3              RET   


    所以將 0167:00434C81 的 JNZ 00434C99 改為 JMP 00434C99 即可。用 LodePE 的 FLC 功能,得 offset 34C81,用十六進位制編輯工具改之 (75 -> EB)。

    因為是朋友漢化需要,特別用 eXescope 編輯了一下資源,無問題。


五  破解
    汗...這個我跟了半天,一點頭緒都沒有,倒是有跟到一個跳轉,改了之後隨意輸入註冊碼都會提示註冊成功,不過根本沒有用-_-# 這個還是留待高手解決吧:P


六  遺留的問題
    在 98 下修復匯入表,破掉校驗的檔案在 XP 下無法執行,XP 下的到了 98 下也不能執行,比較了一下,好像兩個系統下修復的匯入表專案有很多不同,與我上次在論壇問過的一個 aspr 1.2x 加殼的軟體差不多,希望有高手能幫忙看看。

  破解的問題,電神老大能不能指點一下?


                                                                                                                                                                    炎之川 於 2002.6.20
                                                            mail:skipli@sina.com
                                                            http://skipli.yeah.net

相關文章