od拦截对话框的另类方法

来源:互联网 发布:c语言读写ini配置文件 编辑:程序博客网 时间:2024/06/05 05:46
破解软件的过程中,拦截对话框或许很简单,你会说,直接下messagebox的API断点呀……或者是vb的rtcmsgbox呀……但是,今天我就遇到了一个神奇的情况,这两个断点都断不下来(到最后发现对话框竟然是自绘的……)。怎么办呢?


于是就有了这篇文章。让我们先来找个软件研究下:


这个软件是一个vb写的软件,实际上已经被破解了一半,前面的网络验证被我干掉了。然而后面又做了一次验证,算是程序的暗桩。我们来解决一下看看。

首先,老办法,既然是vb写的那就应该rtcmsgbox。结果发现断不下来。怎么办呢?

我们知道对话框是作为一个窗口来显示的,那么必然会调用一个显示窗口的windowsAPI。于是我们就直接从windows上下手,拦截ShowWindow。




接下来继续运行这个软件,让这个软件弹出窗口。刚刚听到提示音之后,od就把这个软件断下来了。

breaked

我们来看,这时候被断在user32模块下,属于windows系统的dll。如果我们对这里的代码有任何修改,非但不会达到破解的效果,反而会大祸临头崩掉操作系统。

我们先回到程序的领空再说。

usercode

回到程序领空之后,我们把反汇编的代码往上稍微一拉……看,弹窗call就被抓到了~

msgboxcall

这时候我们就可以开始分析程序的关键跳咯……往上看~使劲往上看:

jump

这里有一个大的je,跳到了一个很远的位置,直接跳过了弹窗的那个call,是不是非常可疑呢?不用怀疑,就是它了。

直接修改为jmp让它强制跳转即可。OK,爆破完毕,这个另类的方法就是这么简单……


原创粉丝点击