老文章档案 · 2003 年

一点脱壳经验

破解教程 · 脱壳教程 · 2003-09-25 · 作者:人气: · 出处:赢政天下整理收藏)

asprotect版本多,升级快,每一次小小的升级,都足以使以前的脱壳方法或工具失效,没有一种自动脱壳工具是万能的。这里是caspr的作者SAC/UG2000对asprotect的评价:

ASProtect是一个非常强大的win32保护工具。它拥有压缩(compression)、加密(encryption)、反跟踪代码(anti-debugging code)、反-反汇编代码(anti-disassembler code)、crc校验(crc checking),反脱壳(anti-dumping)等特点。它使用了 Blowfish,Twofish,TEA等强劲的加密算法,还用RSA1024 - 非常强劲的公钥加密算法 (very strong public keys cryptographic algorithm )- 作为注册密钥生成器(sregistration keys generation)。(注:公钥加密算法属于非对称密钥算法体制,与对称密钥体制相对。)它还通过API钩子(API hooks,包括importhooks(GPA hook)和export hooks)与加壳的程序进行通讯。

ASProtect v1.1甚至 用到了 Win95.Marburg's 多态变形引擎(polymorphic engine)。

ASProtect v1.11c 增加了 反Apihook代码(anti-Apihook code(stolen from Win32.Crypto)) 和BPE32 的多态变形引擎(BPE32's polymorphic engine.)。

现在的大问题是:ASProtect究竟是一个超级病毒还是一个商业软件?(Is it a super virus or a commercial protector?)

怎么样,是不是已经对asprotect望而生畏了?

因此我对asprotect的作者Alexey Solodovnikov(从名字看应该是个俄国人)非常钦佩。不过不用怕。

公欲善其事,必先利其器。

要脱asprotect加的壳,似我等菜鸟,只能使用工具。我的工具箱里有:

fi243,检测文件壳的类型

trw1.23,不用多说;

bw2k02,冲击波2000,用来找入口点EP;

SuperBPM,辅助设断工具,确保trw能够中断成功;

peditor,修正脱壳后的文件;

ImportREC1.2beta2,用来修复脱壳后文件的import表;

此外还有专用自动脱壳工具,如rad,caspr等。

实在不行,脱不下来或脱下来不能用,只有用内存补丁了。我推荐ppatcher3.93,比常见的3.60版增加了许多有用的新特性,如aitForWindowName,下面会讲到。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修复输入表,参照以下这篇文章

若还是不行,建议你用内存补丁或放弃暴破,去算注册号吧。

以下以S-Spline 2.04为例,讲一讲手动脱壳和修复import表的具体操作步骤。S-Spline 2.04

第一步,用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显示为7e910,这就是入口点了。退出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,还没来得及试。

革命尚未成功,同志仍需努力。

不要仅仅满足于几个软件的破解,应该立志做出更多更好的工具来,跟老外们一争高下。

--------------------------------------------------------------------------------(出处:赢政天下整理收藏)

相关文章:

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史