CuteDraw是一款非常不错的流程图制作软件,该软件详细介绍如下: CuteDraw是一款新的流程图、网络图绘制软件,新颖小巧,功能强大,可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图,数据流程图,网络拓扑图等。 它帮助您更方便,更
CuteDraw是一款非常不错的流程图制作软件,该软件详细介绍如下:
CuteDraw是一款新的流程图、网络图绘制软件,新颖小巧,功能强大,可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、程序流程图,数据流程图,网络拓扑图等。
它帮助您更方便,更快捷的阐述设计思想,创作灵感。在设计时采用全拖曳式操作,结合600多个常用图形模板库和用户自定义实例库,最大程度简化用户的工作量;让你在工作时既可以充分利用固有的素材,又可以借鉴他人的作品。
适用范围:
基本流程图,网络拓扑图,组织结构图,人力资源图,工作流程图,商业图表,软件设计,2D, 3D 图形,计划 / 报表,EPC, SDL, TQM 等。
网上似乎还没有破解版,保护做的还不错,很久没玩逆向了因此想练练手
注:调试纯粹属于兴趣和技术研究,请不要用于非法用途.本人不承担因非法使用带来的法律责任
限制:没怎么用,不知道功能有什么限制,不过有时间限制
先用PEID查壳,ASPack 2.12 -> Alexey Solodovnikov,只是一个压缩壳,顺手脱了很顺利,运行,出错了:
到看雪看了下发现也有人再研究不过没深入,只需要把脱壳后的文件改成CuteDraw.Exe就可以了(晕,还有不能改文件名的),改后可以运行了,不过一运行就自动关闭了,有自效验.
反正慢慢的跟了,也没下什么断点,就是耐心的走,发现一处代码再41f5ea处
004175EA |. FF15 58A05200 call dword ptr [&mfc80u.#575>] ; mfc80u.7834DD87
004175F0 |. 68 40425400 push 00544240 ; ASCII "224H*y*@-qqwq"
004175F5 |. 68 50425400 push 00544250 ; ASCII "!_wIO)[]e3d|r@-"
004175FA |. 51 push ecx
004175FB |. 8D5424 38 lea edx, dword ptr [esp+38]
004175FF |. 8BCC mov ecx, esp
00417601 |. 896424 1C mov dword ptr [esp+1C], esp
00417605 |. 52 push edx
00417606 |. FF15 CCA05200 call dword ptr [&mfc80u.#280>] ; mfc80u.7830581E
0041760C |. 51 push ecx
0041760D |. C68424 000500>mov byte ptr [esp+500], 20
00417615 |. 8D4424 34 lea eax, dword ptr [esp+34]
00417619 |. 8BCC mov ecx, esp
0041761B |. 896424 50 mov dword ptr [esp+50], esp
0041761F |. 50 push eax
00417620 |. FF15 CCA05200 call dword ptr [&mfc80u.#280>] ; mfc80u.7830581E
00417626 |. C68424 000500>mov byte ptr [esp+500], 1D
0041762E |. E8 3DA90500 call 00471F70
00417633 |. 83C4 10 add esp, 10
00417636 |. 85C0 test eax, eax
看着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处
0041794A |. E8 11100600 call 00478960
0041794F |. 85C0 test eax, eax
00417951 |. 0F85 85000000 jnz 004179DC
改成Jmp 4179DC就OK了,用KEYMAKE做个内存补丁改这一处跳转就行.
最后运行还是显示试用版,不过已经没有激活提示了,如图:
破解完成,再强调如果你要使用该软件,请支持正版