标 题: 【邀请码已发】【原创】佳宜会员管理软件2.15破解全过程【申请邀请码】
作 者: appleibm
时 间: 2010-01-22,14:48
【文章标题】: 佳宜会员管理软件2.15破解全过程【申请邀请码】
【文章作者】: appleibm
【软件名称】: 佳宜会员管理软件V2.15: http://www.onlinedown.net/soft/41788.htm
【加壳方式】: 无壳
【编写语言】: Borland Delphi 6.0-7.0
【使用工具】: Ollydbg
【操作平台】: windows xp sp3
【Crack目的】:练练手,申请邀请码以便更多学习
【作者声明】: 本文章只做学术交流,任何个人及组织不得用于商业目的,不得违背中国相关法律使用。为了与各位新人共同学习,我尽可能的细化步骤,如果觉得啰嗦请见谅。
--------------------------------------------------------------------------------------------------------
【详细过程】
1、一个偶然的机会访问了看雪网站,不禁被各位大侠的绝世武功所迷,遂决定深入学习。看了看雪老大的神作《加密与解密》及failwest的佳作《0day:软件漏洞分析技术》顿觉神清气爽,茅塞顿开,手中不禁痒痒,今日到华军软件园下了佳宜会员管理软件【共享版】开始试炼。
2、首先到华军软件园下载软件,版本v2.15,更新日期2010.1.20.----新鲜出炉啊!嘿嘿!
3、安装完毕后先来运行一下看看状况,嗯,出现提示界面,提示试用期为45天

4、在提示界面上,点击“注册”按钮,进入注册界面,用户名默认为:user,产品编号为:090505FB8D00LJCLXG5A(软件自己根据某信息计算,不可更改),授权编号:待填
5、在授权编号处,输入万能试炼码:1234567,按注册按钮,提示注册失败!---哈哈,很好,有线索!

6、退出软件,PEiD软件查壳(软件可从看雪网站下载,以下同),无壳!---哈哈,仿佛看见了可怜的羊羔!

7、退出PEiD,为了防止被羊羔迷惑,再次使用Lord PE软件检查文件jymem.exe的结构,再次放声大笑:可怜的小羊,我来啦!

8、打开Ollydbg软件(看雪论坛有汉化的,推荐使用,文件名为OllyICE),加载jymem.exe,按照字串查找的思路查找“注册”两个字
9、在入口地址处点击鼠标右键,选择“查找”--->"所有参考文本字串",进去一看,傻了!

貌似以乱码和鸟文字符为主!不死心,在窗口右击鼠标,选择“查找文本”,输入“注册”两个字查找,结果五雷轰顶,没有找到!

10、不死心啊,不死心!关闭文本字串参考窗口,回到主窗口,继续在入口地址处右键(其实只要在代码窗口即可,不一定非要在入口地址处),在“查找”选项下面,找到插件“Ultra String Reference”--->"2、Find Unicode",如果没有这个插件选项,那么到看雪的网站下载插件,放到OllyDbg目录下的plugin目录,重新启动即可,插件文件名为ustrref.dll,金山毒霸的罗聪写的,感谢这位大侠。

11、打开插件后,我就。。。。。。哇哈哈哈哈哈哈哈哈。。。狂笑不止,熟悉的中文字串一个个都老实罗列出来,立即右键,选择“Find”,输入“注册”,按“确定”后,立即找到“系统注册成功。。。。”这一行,嗯,不错,感谢你的预祝。再往下一行就是“系统注册失败。。。。”,呃,这个才是我要找的。
12、在“系统注册失败。。。。”这一行上右键,选择“Follow”,主窗口调到了005F281B,我们看看这一步是怎么来的,往上找一行005F2819,在注释行看到了一行注释“跳转来自005F2715”,口水啊,美味的小羊,我来罗!

13、按Ctrl+G,输入005F2715,然后OK,来到这个关键行。发现此行代码是个跳转语句:jnz 005F2819,呃,如果爆破的话,那么将jnz改成je,那不就。。。。。。嘿嘿嘿嘿。。。。等等,这个方法好象不行,为什么呢?因为软件启动的时候是检测注册码的。还记得吗?启动软件的时候提示你试用期为45天,看来,软件在系统中写入数据了。嗯,注册码一般都是写入注册表,不过没有正确的注册码,每次读入的都是错误的,软件必然还有限期,即使爆破也不行,另想他法。
13、从005F2715往上一行,即005F2710,这行是个函数调用:CALL 00404F38,看来这个很可能是算法函数,立即按F2下断点。

14、按F9运行程序,出现试用期界面,点击注册按钮进入注册窗口,在授权编号处输入万能试炼码:1234567,按“注册”按钮注册,中断立即起作用,在005F2710处暂停。正在犹豫是否按F7跟进函数的时候,我的眼睛不经意间看了一下寄存器窗口,就是这一眼,我飞上了九天云霄!天哪,阿门,阿弥陀佛,无量寿佛,居然是明文比较!我的试炼码1234567在EAX寄存器中晃悠着,而EDX寄存器存放的就是那销魂的正品注册码“CH8D-1453-F66A-7485”----一块肥羊肉进了口,霍霍!

15、到此,完全可以写内存注册机了,由于天生的懒惰,算法函数也就没有跟入,当然本人汇编功力有限,省了麻烦。
16、按F9,回到程序,显示错误,输入正牌授权编码,“系统注册成功。。。。。”的窗口便忍不住跳了出来,哈哈!

17、进入注册表查询,发现注册信息全部加密,汗!这时候加密有什么用,亡羊补牢补错地方咯!

18、重新进入软件,试用界面消失,功能正常。
19、由于本软件是共享软件,作者花了不少心思,所以如果本破文有损作者辛劳,请版主删除!申请邀请码!
以下贴出相关代码:
005F2710 . E8 2328E1FF call 00404F38
关键CALL,算法函数,下断点
005F2715 . 0F85 FE000000 jnz 005F2819
不等则完蛋,跳转到失败处
005F271B . 33C0 xor eax, eax
005F271D . 55 push ebp
005F271E . 68 05285F00 push 005F2805
005F2723 . 64:FF30 push dword ptr fs:[eax]
005F2726 . 64:8920 mov dword ptr fs:[eax], esp
005F2729 . B2 01 mov dl, 1
005F272B . A1 4C2E4700 mov eax, dword ptr [472E4C]
005F2730 . E8 8308E8FF call 00472FB8
005F2735 . 8BD8 mov ebx, eax
005F2737 . BA 02000080 mov edx, 80000002
005F273C . 8BC3 mov eax, ebx
005F273E . E8 5109E8FF call 00473094
005F2743 . B1 01 mov cl, 1
005F2745 . 8B15 A0AA6500 mov edx, dword ptr [65AAA0] ; JyMem.005F252C
005F274B . 8BC3 mov eax, ebx
005F274D . E8 860AE8FF call 004731D8
005F2752 . 8D55 D8 lea edx, dword ptr [ebp-28]
005F2755 . 8B45 FC mov eax, dword ptr [ebp-4]
005F2758 . 8B80 04030000 mov eax, dword ptr [eax+304]
005F275E . E8 C5C6E5FF call 0044EE28
005F2763 . 8B4D D8 mov ecx, dword ptr [ebp-28]
005F2766 . BA D4285F00 mov edx, 005F28D4 ; username
005F276B . 8BC3 mov eax, ebx
005F276D . E8 020CE8FF call 00473374
005F2772 . 8D55 D0 lea edx, dword ptr [ebp-30]
005F2775 . 8B45 FC mov eax, dword ptr [ebp-4]
005F2778 . 8B80 F4020000 mov eax, dword ptr [eax+2F4]
005F277E . E8 A5C6E5FF call 0044EE28
005F2783 . 8B45 D0 mov eax, dword ptr [ebp-30]
005F2786 . E8 6128E1FF call 00404FEC
005F278B . 50 push eax
005F278C . E8 FBFFFEFF call <jmp.&PunUnitLib.SavePass>
005F2791 . 8BD0 mov edx, eax
005F2793 . 8D45 D4 lea eax, dword ptr [ebp-2C]
005F2796 . E8 9125E1FF call 00404D2C
005F279B . 8B4D D4 mov ecx, dword ptr [ebp-2C]
005F279E . BA E8285F00 mov edx, 005F28E8 ; signcode
005F27A3 . 8BC3 mov eax, ebx
005F27A5 . E8 CA0BE8FF call 00473374
005F27AA . 8B45 F8 mov eax, dword ptr [ebp-8]
005F27AD . E8 3A28E1FF call 00404FEC
005F27B2 . 50 push eax
005F27B3 . E8 D4FFFEFF call <jmp.&PunUnitLib.SavePass>
005F27B8 . 8BD0 mov edx, eax
005F27BA . 8D45 CC lea eax, dword ptr [ebp-34]
005F27BD . E8 6A25E1FF call 00404D2C
005F27C2 . 8B4D CC mov ecx, dword ptr [ebp-34]
005F27C5 . BA FC285F00 mov edx, 005F28FC ; ASCII "RegCode"
005F27CA . 8BC3 mov eax, ebx
005F27CC . E8 A30BE8FF call 00473374
005F27D1 . 8BC3 mov eax, ebx
005F27D3 . E8 F414E1FF call 00403CCC
005F27D8 . 6A 00 push 0
005F27DA . 68 04295F00 push 005F2904 ; 系统注册成功,欢迎你使用本软件!
005F27DF . E8 80FFFEFF call <jmp.&PunUnitLib.ShowMess>
005F27E4 . A1 38B76500 mov eax, dword ptr [65B738]
005F27E9 . C700 02000000 mov dword ptr [eax], 2
005F27EF . A1 DCB46500 mov eax, dword ptr [65B4DC]
005F27F4 . 8B00 mov eax, dword ptr [eax]
005F27F6 . E8 29E2E7FF call 00470A24
005F27FB . 33C0 xor eax, eax
005F27FD . 5A pop edx
005F27FE . 59 pop ecx
005F27FF . 59 pop ecx
005F2800 . 64:8910 mov dword ptr fs:[eax], edx
005F2803 . EB 20 jmp short 005F2825
005F2805 .^ E9 A219E1FF jmp 004041AC
005F280A . 8B45 FC mov eax, dword ptr [ebp-4]
005F280D . E8 62A9E7FF call 0046D174
005F2812 . E8 C11DE1FF call 004045D8
005F2817 . EB 0C jmp short 005F2825
005F2819 > 6A 03 push 3
005F281B . 68 28295F00 push 005F2928 ; 系统注册失败,请检查注册是否有误!
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!