一點脫殼經驗。(7千字)

看雪資料發表於2001-04-20

要脫asprotect加的殼,以我等菜鳥,只能使用工具。我的工具箱裡有:
fi243,檢測檔案殼的型別;URL: http://go2.163.com/%7Etoye/tools/fi.zip
trw1.23,不用多說;URL: http://www.doroom.com/down/trw123.zip
bw2k02,衝擊波2000,用來找入口點EP;URL: http://202.103.134.11/~fsdb/bw2k02.zip
SuperBPM,輔助設斷工具,確保trw能夠中斷成功;URL: http://www.digitalrice.com/kaparo/files/debuggers/superbpm.zip
peditor,修正脫殼後的檔案;URL: http://go2.163.com/%7Etoye/tools/peditor.zip
ImportREC1.2beta2,用來修復脫殼後檔案的import表;URL: http://www.digitalrice.com/kaparo/files/utilities/imprec.zip
此外還有專用自動脫殼工具,如rad,caspr等。URL: http://mud.sz.jsinfo.net/per/aaron/files/unpackers/win/caspr0952.zip
實在不行,脫不下來或脫下來不能用,只有用記憶體補丁了。我推薦ppatcher3.93,比常見的3.60版增加了許多有用的新特性,如WaitForWindowName,下面會講到。URL未知,我是從作者那裡直接獲得的。

我的執行環境是win98第二版,沒有安裝softice。

概括一下一般的脫殼步驟:
第一步,用fi243確定殼的型別,有自動脫殼工具的,用工具脫。否則第二步。
第二步,用bw2k確定程式的真正入口點OEP,不妨記為xxxx;若找不到,請試一試Softice + icedump: 使用Icedump 的/tracex 命令可能找到OEP 的地址;若還找不到,只能手動跟蹤,看你的功力和運氣了。
第三步,用trw裝入(load)程式,下bpx xxxx,g。中斷後用pedump命令脫殼,格式是
pedump c:\test\test.exe。不能中斷時執行superbpm,選中erase,重複第三步操作。若脫出來的test.exe可以執行,則脫殼完畢,否則第四步。
第四步, 用peditor 修正test.exe,用Import REConstructor v1.2 beta2修復輸入表,參照以下這篇文章
http://001.com.cn/forum/toye/15039.html
標題:用Import REConstructor v1.2 beta2 修復輸入表】 (7千字)

  • 作 者:BestFont
    若還是不行,建議你用記憶體補丁或放棄暴破,去算註冊號吧。

    以下以S-Spline 2.04為例,講一講手動脫殼和修復import表的具體操作步驟。S-Spline 2.04 下在地址 http://202.108.252.24/stcsr/rj/txtx/S-Spline%202.04.zip。

    第一步,用fi243確定殼的型別。fi243沒有GUI介面,是命令列程式,用法是這樣:
    c:\fi243\fi s-spline.exe。
    Fi已經檢測不出新版asprotect了,所以如果遇到檢測不出的型別,就有可能是asprotect。接著往下做吧。
    第二步,用bw2k確定程式的真正入口點OEP,
    執行bw2k,皮膚上的entry point顯示為00000000。按track鈕,再執行s-spline.exe,程式介面出來之後,bw2k的皮膚上entry point顯示為47e910,這就是入口點了。退出s-spline,我們又邁出了可喜的第二步。
    第三步,執行SuperBPM,選中erase(預設為不選中),確保trw能夠中斷。
    第四步,執行trw2k,按browse找到並選中s-spline.exe,按loader裝入。下bpx 47e910,g。trw彈出時輸入pedump c:\test\test.exe,退出trw(不退也行),但不要退出s-spline。在c:\test下會找到test.exe。這個程式目前還不能執行,因為它的import表是被加密的。
    第五步,用peditor修正test.exe。執行peditor,按browse找到test.exe,確定。再按sections,彈出一個視窗,顯示每個section的資訊。在視窗中點右鍵,在彈出選單中選dumpfixer(RS=VS & RO=VO),提示'DONE',這時可以關閉peditor了。
    第六步,執行ImportREC1.2beta2,在Attach to an Active Process下拉框中選中s-spline.exe,然後在左下方OEP中輸入7e910(就是EP-image base=47e910-400000),按IAT AutoSearch。出現對話方塊Found Something!=》
          “Found address which may be in the Original IAT.Try 'Get Import'”
    按Get Import,再按Show Invalids 按鈕,在Imported Function Found框中會有很多藍色的專案。在其中點右鍵,選Trace Level1(Disasm),再按Show Invalids 按鈕,可以看到所有的dll都為valid:YES字樣。輸入表到此完成。
    第七步,修復已脫殼的程式test.exe。選擇Add new section(預設是選上的),按Fix Dump,並選擇剛才Dump出來的檔案test.exe。ImpRECT 會在該檔案所在目錄生成一個新的檔案:test_.exe ,這就是修復後的檔案。至此終於大功告成,點選test_.exe可以執行了。


    在遇到asprotect之前,procdump一直是我最愛的脫殼工具,它能脫的殼很多,操作方便,穩定性好,很少令我失望。直到那一次,一連碰到三個asprotect加殼的軟體:
    Aspack2.11,加殼軟體,asprotect 1.1b 加殼,未註冊版有時間限制和功能限制;以前的下載地址找不到了,今天找到一個帶破解檔案的,URL:  http://mud.sz.jsinfo.net/per/aaron/files/compressors/win/aspack211.zip。
    Picturetoexe2.30,圖片轉可執行檔案工具,asprotect 1.0 加殼,未註冊版製作出得檔案有公司標誌;http://www.wnsoft.com/apr
    Advanced ZIP Password Recovery3.51(azpr),zip密碼恢復工具,asprotect 1.1 加殼;未註冊版只能破解5位以下密碼。ftp://www.newhua.com/azpr.zip
    有興趣的不妨試一試,練練手。
    那段時間好痛苦啊。找不到真正的入口點(OEP),中斷不了,殼脫不下來,脫下來的又不能執行,真是往事不堪回首。到現在也還談不上破解,只是想把自己的一點經驗寫出來,希望弟兄們看了能少走點彎路。

    提示:
    Aspack用上述方法脫殼修復後,執行時顯示
    Exception EaccessViolation in module ASPACK_.EXE at 007fb318.
    Access violation at address bfc54c.Read of addreds bfc54c.
    不能執行。失敗。但是可以用rad06(http://mud.sz.jsinfo.net/per/aaron/files/unpackers/win/rad_v06.zip)成功脫殼,脫殼後自動去掉時間限制,但仍為未註冊版。

    Picturetoexe2.30用上述方法脫殼失敗,impREC修復的程式執行時提示非法操作。用caspr v0.952脫殼成功。

    Azpr用上述辦法修復成功,檔案可以執行,但對其進行修改後,提示找不到api函式,不能執行。無奈只能用記憶體補丁ppatcher3.93。這裡有thewd提供的破解方法。
    首先在登錄檔中新增如下內容
    [HKEY_LOCAL_MACHINE\Software\Elcom\Advanced ZIP Password Recovery\Registration]
    "Code"="00023112193920061941tcKxzxKUhzLjuAAD"
    以下是ppatcher配置檔案(.ppc)的內容。
    -------------------------------------------------------------------
    #Process Patcher Configuration File
    Version=3.93
    WaitForWindowName=AZPR*

    PatchAuthor=thewd
    PatchContactInformation=thewd@hotmail.com

    DisplayName=Advanced ZIP Password Recovery v3.51
    Filename=azpr.exe
    Filesize=294912
    Address=0x416CE7:0x89:0x8B // (1)
    Address=0x416CE8:0xC8:0xC2
    #End of Configuration File

    #Cracking Notes

    (1) Registration Code Example: 00023112193920061941tcKxzxKUhzLjuAAD

        First 4 characters are ignored.
        Next 16 characters are constant (MD5 Hash)
        Last 16 characters are hashed (MD5) and compared against
        the resource 'DB' for a match.
        i.e.
    mov eax, ecx (Bad Code)  ==>  mov eax, edx (Correct Code)
    ---------------------------------------------------------------------


    建議大家去http://www.exetools.com看一看,工具很多,更新很快。今晚找到caspr1.012,還沒來得及試。

    革命尚未成功,同志仍需努力。
    不要僅僅滿足於幾個軟體的破解,應該立志做出更多更好的工具來,跟老外們一爭高下。
  • 相關文章