【文章标题】: 快乐日记本V3.2.5 破解过程
【文章作者】: yangjt
【作者邮箱】: yangjietao123@163.com
【作者主页】: http://blog.sina.com.cn/yangjt
【作者QQ号】: 325002492
【软件名称】: 快乐日记本V3.2.5
【软件大小】: 主程序634KB
【下载地址】: 附件里有,感兴趣的话自己下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OllyICE
【操作平台】: Windows XP SP2
【软件介绍】: 一个很经典的写日记用的软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
PEid查壳,ASPack……简单到我都不想多费口舌了……自己脱好了……
首先OD载入脱壳后文件以后查找字符串,找到这些句
005824ED mov edx, 00582E9C 本产品注册给
00582555 mov edx, 00582EB4 未注册版,您可以免费使用。
00582588 mov edx, 00582EB4 未注册版,您可以免费使用。
00582620 mov edx, 00582E9C 本产品注册给
0058268B mov edx, 00582EB4 未注册版,您可以免费使用。
005826C1 mov edx, 00582EB4 未注册版,您可以免费使用。
005826FF mov edx, 00582E9C 本产品注册给
0058276A mov edx, 00582EB4 未注册版,您可以免费使用。
005827A0 mov edx, 00582EB4 未注册版,您可以免费使用。
005827FC mov edx, 00582E9C 本产品注册给
00582867 mov edx, 00582EB4 未注册版,您可以免费使用。
0058289D mov edx, 00582EB4 未注册版,您可以免费使用。
005828DB mov edx, 00582E9C 本产品注册给
00582946 mov edx, 00582EB4 未注册版,您可以免费使用。
0058297C mov edx, 00582EB4 未注册版,您可以免费使用。
005829F6 mov edx, 00582E9C 本产品注册给
00582A61 mov edx, 00582EB4 未注册版,您可以免费使用。
00582A97 mov edx, 00582EB4 未注册版,您可以免费使用。
00582AD5 mov edx, 00582E9C 本产品注册给
00582B40 mov edx, 00582EB4 未注册版,您可以免费使用。
00582B76 mov edx, 00582EB4 未注册版,您可以免费使用。
00582BD2 mov edx, 00582E9C 本产品注册给
00582C3D mov edx, 00582EB4 未注册版,您可以免费使用。
00582C73 mov edx, 00582EB4 未注册版,您可以免费使用。
00582CB1 mov edx, 00582E9C 本产品注册给
00582D19 mov edx, 00582EB4 未注册版,您可以免费使用。
00582D4C mov edx, 00582EB4 未注册版,您可以免费使用。
然后在这些东西上一次下断点,可能麻烦了一点……但是破解就是要有耐心……
F2好以后F9 运行程序
发现程序先停在这里了……
005824ED . BA 9C2E5800 mov edx, 00582E9C ; 本产品注册给
005824F2 . E8 B528E8FF call 00404DAC
005824F7 . 8B55 F4 mov edx, dword ptr [ebp-C]
之后把代码往上拉
005824DC . E8 FFCFFAFF call 0052F4E0 //关键Call
005824E1 . 837D F8 00 cmp dword ptr [ebp-8], 0 //关键比较
005824E5 . 74 47 je short 0058252E //关键跳转
005824E7 . 8D45 F4 lea eax, dword ptr [ebp-C]
005824EA . 8B4D F8 mov ecx, dword ptr [ebp-8]
005824ED . BA 9C2E5800 mov edx, 00582E9C ; 本产品注册给
005824F2 . E8 B528E8FF call 00404DAC
005824F7 . 8B55 F4 mov edx, dword ptr [ebp-C]
好了……现在让我们来理清一下破解程序的思路……要更改关键跳转是一种办法,可是当我
在继续跟踪这个程序的时候发现它的下面还有一次随机验证……会跳到其他的那些比较上……
所以说,大家刚刚也看到了,这个程序的验证有很多,全部改掉是一种办法,但是我们要找
寻一种更简单更聪明的办法于是乎我们就想到了那个关键的Call 在上面下好断点,把其他断
点删除,因为我们用不到了,把程序重新来过,停在那个Call上以后F7进入,经过N次重新
来过程序和关键Call的跟踪,我们找到了最关键的一个地方
0052F6CF |. /75 04 jnz short 0052F6D5
0052F6D1 |> |33DB xor ebx, ebx //这个异或运算即为破解核心
0052F6D3 |. |EB 02 jmp short 0052F6D7
0052F6D5 |> \B3 01 mov bl, 1
0052F6D7 |> 8B46 5C mov eax, dword ptr [esi+5C]
0052F6DA |. E8 E979FDFF call 005070C8
0052F6DF |. 33C0 xor eax, eax
把它改成 Xor ebx,ecx
OK……此程序界面部分和对功能限制的最困难的部分已经被我们搞定了……
然后我们再把程序打开看看……发现导出日记的时候他会提示:
注册码不对,如果您是注册用户,请与作者联系!
然后我们再次回到脱好壳的程序中,查找字符串,发现在这里:
0057DC97 . E8 940DFBFF call 005 //此为关键Call
0057DC9C . 84C0 test al, al //此为关键比较
0057DC9E . 75 14 jnz short 0057DCB4 //此为关键跳转
0057DCA0 . B8 04DF5700 mov eax, 0057DF04 ; 注册码不对,如果您是注册用户,请与作者联系!
0057DCA5 . E8 721FEDFF call 0044FC1C
OK……我们可以去改跳转……因为我们经过查找其他的关键字发现他们验证注册码
调用的不是同一个Call改那个就简单了……我就不教大家了……
然后我这里所使用的方法是进入关键Call找关键句,然后改变EAX寄存器的返回值,
也能起到同样的效果……
经过我查找,一共有以下几点关键Mov命令会改变EAX的寄存器值:
0052EB1A . 8A45 FB mov al, byte ptr [ebp-5]
把它改为
mov al, byte ptr [ebp]
然后还有:
0052ED02 . 8A45 FB mov al, byte ptr [ebp-5]
0052EDF6 . 8A45 FB mov al, byte ptr [ebp-5]
这两个Mov指令跟上面的改的形式一样……然后我们可以看看……基本上完美了……嗯,到此
为止
看下……破解后程序大小1.96MB,而源程序只有634KB……
而我们只改变了4条指令……我们可以用SMC补丁了,至于怎么写是你们的事了……我给大家
提供更改着几段代码的一个思路:
源程序OD载入,然后用ESP定律到
005F13B0 这个带有Jnz的地方,然后找一块空地
经我更改后的代码
005F13B0 /E9 891E0000 jmp 005F323E
005F13B5 |90 nop
005F13B6 |90 nop
005F13B7 |C2 0C00 retn 0C
005F13BA |68 44445800 push 00584444 //记录此处
005F13BF |C3 retn //记录此处
空地处要写的SMC补丁代码:
005F323E C605 1CEB5200 0>mov byte ptr [52EB1C], 0
005F3245 C605 04ED5200 0>mov byte ptr [52ED04], 0
005F324C C605 F8ED5200 0>mov byte ptr [52EDF8], 0
005F3253 C605 D2F65200 D>mov byte ptr [52F6D2], 0D9
005F325A 68 44445800 push 00584444
005F325F C3 retn
OK……此程序完毕……希望大家多指教
--------------------------------------------------------------------------------
【经验总结】
破解了一个很实用的程序,麻烦各位大侠帮着指导下
说实在的……这个程序里的乱七八糟的注册码把我搞晕了……只能做补丁了……
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年12月09日 17:26:21
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)