• 标 题:一点脱壳经验。(7千字)
  • 作 者:kingtall
  • 时 间:2001-4-20 1:11:00
  • 链 接:http://bbs.pediy.com

要脱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,还没来得及试。

    革命尚未成功,同志仍需努力。
    不要仅仅满足于几个软件的破解,应该立志做出更多更好的工具来,跟老外们一争高下。