-
-
[原创]VB逆向速战速决《九阵医院信息管理系统》
-
发表于:
2007-7-7 20:03
12163
-
软件:九阵医院信息管理系统
语言:VB
保护:无壳
授权:按医院名称、硬件编码、站点数量、模块个数授权
工具:IDA、smartchk、OD
既然是VB程序,首先用smartchk加载,启动,提示注册,随便输入注册码,注册。弹出注册错误的提示框。此时,查看smartchk捕获到的事件的最后,可以看到rtcMsgBox的调用,并且地址为0x0045CD6A。
IDA上场,定位到0x0045CD6A。记得在图形视图中查看,可以看到,rtcMsgBox所在的代码片段,有两个跳转来源。
往前看,其中一个来源处有__vbaStrCmp,记下地址0x0045C989;这是字符串比较函数,在如此重要的地方出现字符串比较函数,多数都是注册码明文比较了。
往前看另一个来源,发现__vbaVarTstEq,记下地址0x0045C818;
这里要说一下,smartchk捕获到出错的MsgBox所在,那么,它的前面就肯定有注册码比较或者验证的地方,所以,在MsgBox处往前看就是了,记住,是在视图中按流程往前看,而不是在w32dasm那样的代码视图中往前看。
下面,将在OD中,在这两个地址下断,并强制更改跳转的意图(跳改为不跳,不跳改为跳),为了不让它再跑到那个MsgBox处。当然,如果这两个地址都无效,那么,再往前找,直到找到有效的地址为止。不过,我实在想不到他们无效的可能,呵呵!~
OD成功断在0x0045C818,用F8单步,在0x0045C849处,不要跳转,F9继续。非常以外,断在0x0045C989处,而代码窗口的下面,显示着一个P开头的字符串。如果这个时候,在__vbaStrCmp附近碰到字符串,你还不懂该干嘛,那么,我建议你不要玩破解了!~
关闭OD,直接启动程序,输出刚才那个字符串作为注册码,注册成功。
这次运气可真是好到极点。
一些要注意的问题:
1,基本的功夫,还是要有的,比如:在OD中怎么样在调试时修改跳转。
2,基本的常识,要知道,VB程序,__vbaVarTstEq、__vbaStrCmp和rtcMsgBox是非常敏感的。
3,会看VB的汇编。呵呵,如果你像看VC的汇编那样看这个程序的汇编,那你就惨了。IDA默认会把VB函数显示成粉红色……
4,建议先学会VB再来破解VB,第3步中,那些可爱的粉红色的VB函数,就需要有一定的VB功底。
VB逆向群:1600800
[培训]科锐逆向工程师培训第53期2025年7月8日开班!