学习笔记第六课 VB程序

VB程序的特殊地方在于:

前几课学的破解方法,诸如设置API断点,修改关键CALL的返回值,MESSAGEBOX断点等,这些对于VB程序都是无效的。

这节课是设置VB的API断点,绕过报错弹窗来破解。

第一步 查一下程序的基本信息:

发现看不出来有壳无壳,也不知道程序用什么编写的.

载入OD再观察。

第一步 OD载入程序

图1是 OD载入程序后的反汇编窗口代码样式

图1

扫描二维码关注公众号,回复: 5616242 查看本文章

图2是 OEP工具里VB6反汇编代码的特征截图

图2

可以发现两者的相似度很高,程序很有可能就是VB6编写的。

如果还不确定,可以向上翻页,看到下图就可以完全确定了(红圈处的msvbvm60

有这些VB6的函数,那就百分百能确定是VB6程序无疑。

 另外,代码段很整齐,没有乱码之类,应该是无壳的。

第二步 下断点

上方工具栏点击 BreakPoint----VB APIs----rtcMsgBox,设置VB的信息框断点。

下好断点后,F9运行程序,注册界面输入假码,点击注册。程序会停在刚才设置的断点位置

可以看到,程序停在了系统领空,这里是没法修改的,所以要尽快跳转到程序领空。

一直按住F8,不用担心跳的太远,程序在运行到弹出错误窗口的时候OD会停住,在错误窗口点了确定OD才能继续F8下一步。

继续F8,会遇到一个retn,然后跳出了当前的CALL,来到了程序领空。

这时,可以在刚才跳出的CALL的上方寻找关键跳

往上翻找,发现一个左箭头 ">",说明有一个跳转进来了。

而这个跳转刚好跳过了一个JMP,点击这个JMP发现其可以跳过报错提示。(太长不截图了)

所以只要回到这个下图红圈标记出的JE的源头,NOP掉,令原先被跳过的JMP实现跳转,就可以实现破解

第三步  NOP掉JE,F9运行程序,点击注册,发现果然跳过了验证,注册成功。

猜你喜欢

转载自www.cnblogs.com/vawa1900/p/10579172.html