“监测人批量绘制过程线软件”破解笔记

前两天同学发给我一个软件,叫我看看。叫做“监测人批量绘制过程线软件”,软件功能倒是看了半天没看懂。程序为试用版的,有诸多限制,而且还有一些流氓软件的特性,于是索性自己DIY一把,去掉限制,破解之。

首先,运行一下软件,弹出如下框:

REG文件也就是注册表文件喽,我们打开看看是什么东东,监测人软件注册.reg的文件内容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
“jianceren”=”C:\\windows\\jianceren.exe”

呵呵,一看就是向注册表项中加开机自启动项,而且路径还是C:\\windows\\jianceren.exe,看了下目录里面,有一个jianceren.exe,估计运行的时候被拷到windows目录下面去了。OK,分析到这,我们已经知道运行程序必须设置它的一个程序为开机启动,光这一条,就可以定它为流氓软件了。

OK,我们先按它要求,将注册表文件导进去,等搞完了再删之。运行注册表文件后再次运行,就OK了。这时去windows目录下面去看,已经出现了jianceren.exe这个文件。我们用监测软件也能够检测出来,如图:

jianceren.exe文件运行时如图,是个弹窗流氓东东。

拷贝文件的动作暴露无疑。好的,我们先删除jianceren.exe这个文件,运行程序,这时会有提示如图:

说明程序每次运行的时候都会进行检查,那么我们现在来DIY,使程序能在没有运行注册表文件和不存在jianceren.exe这个文件的时候也能正常运行。

首先PEID查壳,VB的,无壳。那么直接就OD载入,既然有提示框,我们就下bp rtcMsgBox这个断点,运行程序,断下来后会来到如图代码:

按照图中的注释的方法进行更改,搞定注册表这一项。同样的方法来到文件拷贝的地方,如图进行更改:

好的,现在已经没什么限制就可以正常运行了,但是程序的标题还是有试用版的字眼,我们用VBExploer这个工具来改掉标题,运行后如图:

这个版本本来就是有功能限制的,但是有的还是可以去除,比如这个设置曲线数据的这个地方,不能超过2:

我们同样用下消息断点,分析后得到如图结果:

在离消息框最近的那个JE跳转修改JE为JMP跳转就可以了。其它曲线数目设置的地方类似。

到此功能限制已经基本去掉了,但是后来我又分析了一下,用VBDeDe这个工具分析如图:

这说明软件本身是有注册这个窗体的,只是不能调用出来。分析窗体的文字和事件后找到了注册按钮的事件地址:

那么我们需要有一个地方来调用这个过程,我这里是改的“文件->退出”这个菜单,我们首先把“退出”文字改成“注册”,在OD中Ctrl+B进行二进制查找,在ASCII码中输入“退出”进行查找,找到后到数据窗体口跟随,选中文字后按空格进行修改,在ASCII处输入“注册”。

然后我们需要找这个菜单的单击事件地址。我们观察到单击菜单后会新建一个窗体,于是我们就用 bp CreateWindowExA 这个断点,中断会按F9运行,记下最后一次F9(程序跑起来的F9)的次数,然后重新开始,去最后一个F9,再F8单步走,一直走到程序的领空为止。然后我们向上拉,来到段首,发现有一个JMP跳到段首处,我们跟到JMP去,就发现了菜单项的事件跳转代码处:

我们把“00451A45   .  E9 66150500   JMP 功能限制.004A2FB0                        ;  文件-退出”这一行的JMP 地址改为我们刚用VBDe得到的注册按钮事件的地址。
改好保存为我们再来进行注册事件的跟踪,单步跟下去,很简单,我就直接帖需要更改的地方了:
004BDFAE   .  66:85C0       TEST AX,AX
004BDFB1   .  0F84 8C030000 JE 功能限制.004BE343                         ;  注册码为空的跳,NOP掉
004BDFB7   .  8B13          MOV EDX,DWORD PTR DS:[EBX]

004BE024   .  53            PUSH EBX
004BE025   .  FF91 00070000 CALL DWORD PTR DS:[ECX+700]              ;  跳向一个网页,NOP掉
004BE02B   .  85C0          TEST EAX,EAX
全部完工后程序运行如图:

该软件的下载地址为:http://www.jianceren.cn/down/soft/201012/19-5950.html

记录:

From6 为注册窗体
Formload:BE560
注册按钮 地址:004BDD50

菜单事件代码:

004519C8   .  816C24 04 430>SUB DWORD PTR SS:[ESP+4],43
004519D0   .  E9 4BF80400   JMP 功能限制.004A1220                        ;  7
004519D5   .  816C24 04 5B0>SUB DWORD PTR SS:[ESP+4],5B
004519DD   .  E9 DEF90400   JMP 功能限制.004A13C0                        ;  4个
004519E2   .  816C24 04 4F0>SUB DWORD PTR SS:[ESP+4],4F
004519EA   .  E9 11FC0400   JMP 功能限制.004A1600                        ;  5个
004519EF   .  816C24 04 6B0>SUB DWORD PTR SS:[ESP+4],6B
004519F7   .  E9 44FE0400   JMP 功能限制.004A1840                        ;  6
004519FC   .  816C24 04 570>SUB DWORD PTR SS:[ESP+4],57
00451A04   .  E9 D7FF0400   JMP 功能限制.004A19E0                        ;  8
00451A09   .  816C24 04 330>SUB DWORD PTR SS:[ESP+4],33
00451A11   .  E9 6A010500   JMP 功能限制.004A1B80                        ;  启动时
00451A16   .  816C24 04 670>SUB DWORD PTR SS:[ESP+4],67
00451A1E   .  E9 FD0E0500   JMP 功能限制.004A2920                        ;  第二个菜单
00451A23   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+4],0FFFF
00451A2B   .  E9 30110500   JMP 功能限制.004A2B60
00451A30   .  816C24 04 470>SUB DWORD PTR SS:[ESP+4],47
00451A38   .  E9 33130500   JMP 功能限制.004A2D70                        ;  3个
00451A3D   .  816C24 04 370>SUB DWORD PTR SS:[ESP+4],37
00451A45   .  E9 66150500   JMP 功能限制.004A2FB0                        ;  文件-退出
00451A4A   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+4],0FFFF
00451A52   .  E9 C9150500   JMP 功能限制.004A3020                        ;  启动时
00451A57   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+4],0FFFF
00451A5F   .  E9 FC160500   JMP 功能限制.004A3160                        ;  启动时

注册处代码:

004BDFAE   .  66:85C0       TEST AX,AX
004BDFB1   .  0F84 8C030000 JE 功能限制.004BE343                         ;  注册码为空的跳
004BDFB7   .  8B13          MOV EDX,DWORD PTR DS:[EBX]

004BE024   .  53            PUSH EBX
004BE025   .  FF91 00070000 CALL DWORD PTR DS:[ECX+700]              ;  跳向一个网页
004BE02B   .  85C0          TEST EAX,EAX