VB 程序的克星SmartCheck 及重启验证型破解实例 文章录入:7747.Net 责任编辑:7747.Net 更新时间:2010-10-21 9:51:02 644 【字体:小 大 】 文 /图 落叶树 想必大家都知道,VB 属于解释执行型的语言,它生成的程序是一边翻译一边执行的。以前老的版本由于语言解释器的存在,我们平时习惯使用的OllyDbg 等调试工具在跟踪VB 程序的时候经常不停地跳来跳去,让你晕头转向,这是因为我们跟进了解释器的地盘,里面的东西是相当难搞明白的。不过现在的VB6程序已经不再是单纯的解释执行,大部分的内容取而代之变成了编译后的代码。虽然如此,还是不能像VC、 Delphi 程序反编译后的那么直观:压入一堆你看不明白的参数,call 一些不知道什么意思的过程,动辄错误、中止。用 OD 来跟还是不够方便啊!怎么办呢,对于Native Code 程序(P-code 是封装代码或者说中间件伪代码,相对的Native Code 就是原始的未使用P-code 的代码,本文不涉及P-code),我们可以使用SmartCheck 来轻易对付它。 这次我们破解的对象是一个网站信息收集工具,用PEiD 查看得到的内容是:Microsoft Visual Basic 5.0 / 6.0,这说明软件用 VB5以上版本编写,未加壳!呵呵,省去脱壳的麻烦了。下面我们进入实战部分。 工具配置 在开始分析前我们需要先把SmartCheck(下文简称SC)配置好,这个步骤很重要,否则有些关键事件可能会没保留下来。运行SC,载入要破解的软件,然后点快捷按钮栏的“程序->设置”,接下来按照图1和图2所示设置即可,其余的可以使用默认配置。 javascript:dcs.images.doResizes(this,0,null); border=0> 图 1 javascript:dcs.images.doResizes(this,0,null); border=0> 图 2 初步分析 设 置 完 后 按F5 运 行 软 件 , 首 先 显 示 的 是 一 个 输 入 注 册 码 的 窗 口 , 这 里 我 们 就 随 便 输 入“1212121212”吧,点“注册”后程序一声不吭就退出了,看来还是一个重启验证型软件嘛。这时我们看SC的界面,分析已经随着程序退出而中止了,不然我们还得自己按“停止”来结束分析。乍眼看上去一大堆东西,不过只要写过VB 程序的人应该不会觉得陌生,就算不懂VB 的也不打紧,我们慢慢看自然会明白其中的意思。现在显示的是从软件启动到输入完注册码退出后的特定事件,我们在图3左栏的窗口里逐一点击查看(如果看不到这个界面,把“程序结果”窗口最大化即可,因为分...