暴力法其实就是通过分析本地卡密程序代码的逻辑,直接修改登录校验,让其登陆成功。当然,这种方法只适合代码没有被混淆的情况下。现在我们来看实战:

想要学习视频手把手教学的,请记得联系我,加入我们的社区学习,我会提供指导并为你们送去温暖。

随便输入会提示注册码错误,这个错误弹窗要注意了。看到这种传统的信息框,我们一般都是在MessageBoxA处设置断点。别问为什么是一般,因为有特殊情况。

下个断点试试看吧,亚比~囧囧囧~

我们点击注册就会断下来,所谓断点就是如果程序代码走到这,就会中断下来的点。因为这个函数是MessageBoxA,即信息框,所以就断下来了,不用我再多说了吧。

2. 接下来怎么办呢?很简单,按CTFL+F9,然后按F8返回上一层。这里大家可能会有疑问:我们现在返回。行了,差不多了,够了,为什么够了?因为人知足常乐。

3. 这个时候我们逐层去看,看看哪一层开始校验的。很简单,从每一层的函数头部下断点。谁在点击注册按钮的时机断下来,且还没有信息框提示出来的时候,那么说明这里是逻辑相对靠前的位置。经过我们的测试,第三层是差不多的。我们单步F8向下走。

发现了获取密码的位置。然后走着走着就错了,说错了,是走着走着就错了。上面有个关键的跳转可以跳过错误,直接修改为jmp。重来,要是能重来,我要选李白。跳过jmp后,来到了这里,是一个链接,但是并不完整。你看到没有?说明什么?说明要把字符串进行拼接,也就是链接 + 账号 + 密码,然后拼起来组成一个完整的地址,提交到服务器,获取账号信息。

走了没两步,你猜怎么着?崩溃了!典型的易语言程序溢出错误。我猜测八成是这里拼接出了问题,我们的密码长度不对造成了溢出。全部NOP填充试一下。这里有个巨大的跳转,一定得注意。我们先不跳过试一下。发现往注册表里面写东西。写完注册表就出现注册成功了。到此就结束了,这样就是一个粗略的分析过程了。

有的人问:“你为什么不分析细致一点?”其实我的经验告诉大家,这玩意儿跟我们做阅读理解读文章是差不多的:

第一遍,粗略看,看程序关键位置的逻辑框架;第二遍,大致看,看其中有疑点的关键函数范围;第三部,细致看,看关键函数内部实现。