欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

CuteDraw 2.0 破解手记

程序员文章站 2022-03-11 12:44:04
...

CuteDraw是一款非常不错的流程图制作软件,该软件详细介绍如下: CuteDraw是一款新的流程图、网络图绘制软件,新颖小巧,功能强大,可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图,数据流程图,网络拓扑图等。 它帮助您更方便,更

CuteDraw是一款非常不错的流程图制作软件,该软件详细介绍如下:

CuteDraw 2.0 破解手记CuteDraw是一款新的流程图、网络图绘制软件,新颖小巧,功能强大,可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图,数据流程图,网络拓扑图等。
CuteDraw 2.0 破解手记
CuteDraw 2.0 破解手记它帮助您更方便,更快捷的阐述设计思想,创作灵感。在设计时采用全拖曳式操作,结合600多个常用图形模板库和用户自定义实例库,最大程度简化用户的工作量;让你在工作时既可以充分利用固有的素材,又可以借鉴他人的作品。
CuteDraw 2.0 破解手记
CuteDraw 2.0 破解手记适用范围:
CuteDraw 2.0 破解手记基本流程图,网络拓扑图,组织结构图,人力资源图,工作流程图,商业图表,软件设计,2D, 3D 图形,计划 / 报表,EPC, SDL, TQM 等。
CuteDraw 2.0 破解手记

网上似乎还没有破解版,保护做的还不错,很久没玩逆向了因此想练练手

注:调试纯粹属于兴趣和技术研究,请不要用于非法用途.本人不承担因非法使用带来的法律责任

限制:没怎么用,不知道功能有什么限制,不过有时间限制

先用PEID查壳,ASPack 2.12 -> Alexey Solodovnikov,只是一个压缩壳,顺手脱了很顺利,运行,出错了:

CuteDraw 2.0 破解手记

到看雪看了下发现也有人再研究不过没深入,只需要把脱壳后的文件改成CuteDraw.Exe就可以了(晕,还有不能改文件名的),改后可以运行了,不过一运行就自动关闭了,有自效验.

反正慢慢的跟了,也没下什么断点,就是耐心的走,发现一处代码再41f5ea处

CuteDraw 2.0 破解手记004175EA |. FF15 58A05200 call dword ptr [&mfc80u.#575>] ; mfc80u.7834DD87
CuteDraw 2.0 破解手记004175F0 |
. 68 40425400 push 00544240 ; ASCII "224H*y*@-qqwq"
CuteDraw 2.0 破解手记004175F5 |
. 68 50425400 push 00544250 ; ASCII "!_wIO)[]e3d|r@-"
CuteDraw 2.0 破解手记004175FA |
. 51 push ecx
CuteDraw 2.0 破解手记004175FB |
. 8D5424 38 lea edx, dword ptr [esp+38]
CuteDraw 2.0 破解手记004175FF |
. 8BCC mov ecx, esp
CuteDraw 2.0 破解手记
00417601 |. 896424 1C mov dword ptr [esp+1C], esp
CuteDraw 2.0 破解手记
00417605 |. 52 push edx
CuteDraw 2.0 破解手记
00417606 |. FF15 CCA05200 call dword ptr [&mfc80u.#280>] ; mfc80u.7830581E
CuteDraw 2.0 破解手记0041760C |
. 51 push ecx
CuteDraw 2.0 破解手记0041760D |
. C68424 000500>mov byte ptr [esp+500], 20
CuteDraw 2.0 破解手记
00417615 |. 8D4424 34 lea eax, dword ptr [esp+34]
CuteDraw 2.0 破解手记
00417619 |. 8BCC mov ecx, esp
CuteDraw 2.0 破解手记0041761B |
. 896424 50 mov dword ptr [esp+50], esp
CuteDraw 2.0 破解手记0041761F |
. 50 push eax
CuteDraw 2.0 破解手记
00417620 |. FF15 CCA05200 call dword ptr [&mfc80u.#280>] ; mfc80u.7830581E
CuteDraw 2.0 破解手记
00417626 |. C68424 000500>mov byte ptr [esp+500], 1D
CuteDraw 2.0 破解手记0041762E |
. E8 3DA90500 call 00471F70
CuteDraw 2.0 破解手记
00417633 |. 83C4 10 add esp, 10
CuteDraw 2.0 破解手记
00417636 |. 85C0 test eax, eax
CuteDraw 2.0 破解手记
CuteDraw 2.0 破解手记

看着4175F0和4175F5处的两处字符串,很像是CRC的比较,417636比较EAX之后就是一个跳转,把它NOP掉,保存再运行,自效验搞定了

不过程序再别的地方还有检验,一进入主界面就会挂掉,不过没关系了,这里要做的就是分析脱壳后的程序的注册流程,挂不挂不管它:)

点击注册,一段时间后弹出注册失败字样,看上去象个MessageBox,下断点,再注册,没有收获......

还是先看看字符串参考里面有没有什么提示信息,找到一个

UNICODE "http://www.cutedraw.com/reg/activate.php"的字串,看来还有网络验证?下断点,再点击注册,果然停下来了,程序访问该网址,并且通过GET请求参数order_id和machine_id,order_id就是输入的序列号,machine_id因该是每台机器都不同,直接再浏览器里面访问返回"ER104",继续跟程序,程序里面有返回值判断,首先判断返回串里面有没有"ER",有就完了,再根据后面跟的东西不同弹出不同的错误信息,把跳转搞掉让它跳到后面的"OK"字串,OK,提示注册成功了,但是,好像没什么反应啊,界面还是留在注册界面,还是要点击继续试用才能进入主界面,看来此路不通....

想想注册提醒是一启动就弹出来,肯定本地还是有注册信息进行效验,看来这个软件的流程是先通过注册码从网络激活,然后再每次启动的时候都本地比较,感觉怪怪的,其实网络验证也不是那么的可信....废话不多说,找了下相关文件,发现Config目录下有个User.Ini,里面存放的就是注册信息了,于是下断点GetPrivateProfileStringW,运行,找到了读取User配置的位置,还发现使用时间也是存在一个sf.tmp的INI文件里面,改一下时间软件就过期了,或者删掉这个文件软件又可以使用一个月了-_-#.读完User.Ini里面的Pass字段就是好大一长串的注册码效验代码,由于这个东西不太好调试,于是只找关键跳就行了,判断完注册码后软件会比较eax的结果是否为1,不为1就是未激活,所以只要再判断注册码最后一个地方有个

xor eax,eax 改成 mov al,1就OK了

或者还有一种改法,再417951处

CuteDraw 2.0 破解手记0041794A |. E8 11100600 call 00478960
CuteDraw 2.0 破解手记0041794F |
. 85C0 test eax, eax
CuteDraw 2.0 破解手记
00417951 |. 0F85 85000000 jnz 004179DC

改成Jmp 4179DC就OK了,用KEYMAKE做个内存补丁改这一处跳转就行.

最后运行还是显示试用版,不过已经没有激活提示了,如图:

CuteDraw 2.0 破解手记

破解完成,再强调如果你要使用该软件,请支持正版