SmartCheck是一款常用的破解VB程序的利器,它可以将VB程序执行的操作完全记录下来,使我们轻而易举的破解掉绝大部分的VB程序,但是这个工具并不能免费使用,而是有14天的使用期限,本文我就给破解新手们讲述一下我破解SmartCheck时间限制的过程。
运行SmartCheck,任意载入一个VB程序,然后点击“Program”一>“Start”,就可以清楚的看到试用期还剩14天的提示。使用OD载人SmartCheck,我们要破解的是时间限制,所以就对取时间的API下断点,先使用bp GetSystemTime看看,按F9让程序跑起来,仍然是点击“Program”一>“Start”,成功的断了下来,我们看堆栈窗口。
GetSystemTime的原型如下:
在堆栈窗口中可以看到,SystemTime结构的地址是0012EE88,我们在数据窗口中跟随到0012EE88,按ctrl+F9执行到返回,再来查看数据窗口,其中07D9就是指年份,来看反汇编窗口,程序在调用GetSystemTime之前还调用了OetLocalTime。
GelLocalTime返回的是东八区的区时,也就是GetSystemTime加8个小时,我们可以在这里修改程序,让它每次执行这一段代码所得到的时间都是2017-12-12,替换100052BD处的指令为“jmp 1OOOF6DA”,让它跳转到空白区域,然后再写入以下汇编指令:
实践证实,只修改GetSysternTime所获取的时间是不行的,我们同时还要修改GetLocalTime所获取的时间才行。替换10005282和10005286的两条指令为“jmp 1000F6FB”,然后在1000F6FB处写入如下指令:
修改完成后,复制到可执行文件进行保存,我们把系统日期向后调整到31号,再来查看一下软件的试用期限,发现仍然显示的是14天。至此,SmartCheck就算是爆破成功了。最后注意一下,不能把日期更改到来安装软件之前,因为那样就直接过期了。
本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,作者不鼓励或支持任何形式的非法破解行为。