暴破Windows优化大师V4.31 Build 920 (3千字)
Windows 优化大师 V4.31 破解经 FI V2.45 侦查得知安装得到的所有可执行文件都是用 Aapack V2.11 加的壳
可以分别用 unaspack V2.11c 给 OctoDll.dll 和 Windows优化大师.exe 脱壳
在 Windows优化大师.exe 中修改判断返回值的跳转使之成为彻底破解版(这里从略)
-----------------------------------------------------------------------
深入内层的破解方法
OctoDll.dll
:00404301 E8B2FDFFFF call 004040B8
:00404306 83E802 sub eax, 00000002
:00404309 8945E0 mov dword ptr [ebp-20], eax
:0040430C C165DC02 shl dword ptr [ebp-24], 02
/005F4306 6810435F00 push 005F4310 //置返回地址
/005F430B E92B3DF8FF jmp 0057803B
:00404310 8D4DDC lea ecx, dword ptr [ebp-24]
:00404313 8B01 mov eax, dword ptr [ecx]
:00404315 8B5104 mov edx, dword ptr [ecx+04]
:00404318 0FACD002 shrd eax, edx, 02 //双精度右移
:0040431C C1EA02 shr edx, 02
:0040431F 8901 mov dword ptr [ecx], eax
:00404321 895104 mov dword ptr [ecx+04], edx
:00404324 8B45DC mov eax, dword ptr [ebp-24]
:00404327 3B45E4 cmp eax, dword ptr [ebp-1C]
:0040432A 7404 je 00404330
设法在 00404310 之前提取注册用户的正确校验码[ebp-1C],作校验过程的逆运算,用所得结果覆盖
通过伪注册码计算得到的中间校验码[ebp-24]及[ebp-20]
用SMC技术可这样实现:
先用 topo V1.2 在加壳的 Windows优化大师.exe 中开辟56个字节的空间,位于 Offset=7D019H 处
:00578019 66C70506435F006810 mov word ptr [005F4306], 1068 //修改代码,改变走向
:00578022 C70508435F00435F00E9 mov dword ptr [005F4308], E9005F43
:0057802C C7050C435F002B3DF8FF mov dword ptr [005F430C], FFF83D2B
:00578036 E9C6DF0600 jmp 005E6001 //回到原加壳的 Windows优化大师.exe 的入口点
:0057803B 8B55E4 mov edx, dword ptr [ebp-1C] //注册用户的正确校验码
:0057803E C1EA1E shr edx, 1E
:00578041 83C250 add edx, 00000050 //保存进位以备双精度右移
:00578044 8955E0 mov dword ptr [ebp-20], edx
:00578047 8B55E4 mov edx, dword ptr [ebp-1C]
:0057804A C1E202 shl edx, 02 //双精度右移的反向操作
:0057804D 8955DC mov dword ptr [ebp-24], edx
:00578050 C3 ret
由此得到的 Windows优化大师.exe 之彻底破解版可接受任意注册码,并可网上升级
另外未注册或注册失败时,注册表存在如下字符串键值
HKEY_LOCAL_MACHINE\Software\Wom\Masters = "0F0F0F0F"
注册成功则此键值不存在
Sysdoctor.exe 会根据该键值存在与否决定 Windows优化大师 是否正常注册过
附注:
经由上面这种改动, Windows优化大师.exe 相对于原来的文件的变化可以总结如下:
1)修改原 Windows优化大师.exe 文件的文件头 Header
即将 128H~12BH 这个 dword 单元的 01601E00 (就是说原 Header 位于 00400000+001E6001=005E6001H)
改为 19801700 (故新的 Header 的 RVA: 00578019-00400000=00178019H, 所以把 01601E 改为 198017)
2)开辟的56个字节的空间,位于 Offset=7D019H 处, 所以把 7D019H 起的56个字节修改为:
:00578019 66C70506435F006810 mov word ptr [005F4306], 1068
:00578022 C70508435F00435F00E9 mov dword ptr [005F4308], E9005F43
:0057802C C7050C435F002B3DF8FF mov dword ptr [005F430C], FFF83D2B
:00578036 E9C6DF0600 jmp 005E6001
:0057803B 8B55E4 mov edx, dword ptr [ebp-1C]
:0057803E C1EA1E shr edx, 1E
:00578041 83C250 add edx, 00000050
:00578044 8955E0 mov dword ptr [ebp-20], edx
:00578047 8B55E4 mov edx, dword ptr [ebp-1C]
:0057804A C1E202 shl edx, 02
:0057804D 8955DC mov dword ptr [ebp-24], edx
:00578050 C3 ret
