od拦截对话框的另类方法
2017-11-16 10:13
363 查看
破解软件的过程中,拦截对话框或许很简单,你会说,直接下messagebox的API断点呀……或者是vb的rtcmsgbox呀……但是,今天我就遇到了一个神奇的情况,这两个断点都断不下来(到最后发现对话框竟然是自绘的……)。怎么办呢?
于是就有了这篇文章。让我们先来找个软件研究下:
![](http://img.blog.csdn.net/20171116100856672?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这个软件是一个vb写的软件,实际上已经被破解了一半,前面的网络验证被我干掉了。然而后面又做了一次验证,算是程序的暗桩。我们来解决一下看看。
首先,老办法,既然是vb写的那就应该rtcmsgbox。结果发现断不下来。怎么办呢?
我们知道对话框是作为一个窗口来显示的,那么必然会调用一个显示窗口的windowsAPI。于是我们就直接从windows上下手,拦截ShowWindow。
![](http://img.blog.csdn.net/20171116100959309?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
接下来继续运行这个软件,让这个软件弹出窗口。刚刚听到提示音之后,od就把这个软件断下来了。
![](http://img.blog.csdn.net/20171116101223069?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们来看,这时候被断在user32模块下,属于windows系统的dll。如果我们对这里的代码有任何修改,非但不会达到破解的效果,反而会大祸临头崩掉操作系统。
我们先回到程序的领空再说。
![](http://img.blog.csdn.net/20171116101236021?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
回到程序领空之后,我们把反汇编的代码往上稍微一拉……看,弹窗call就被抓到了~
![](http://img.blog.csdn.net/20171116101323738?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这时候我们就可以开始分析程序的关键跳咯……往上看~使劲往上看:
![](http://img.blog.csdn.net/20171116101335691?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYXo0NHlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里有一个大的je,跳到了一个很远的位置,直接跳过了弹窗的那个call,是不是非常可疑呢?不用怀疑,就是它了。
直接修改为jmp让它强制跳转即可。OK,爆破完毕,这个另类的方法就是这么简单……
于是就有了这篇文章。让我们先来找个软件研究下:
这个软件是一个vb写的软件,实际上已经被破解了一半,前面的网络验证被我干掉了。然而后面又做了一次验证,算是程序的暗桩。我们来解决一下看看。
首先,老办法,既然是vb写的那就应该rtcmsgbox。结果发现断不下来。怎么办呢?
我们知道对话框是作为一个窗口来显示的,那么必然会调用一个显示窗口的windowsAPI。于是我们就直接从windows上下手,拦截ShowWindow。
接下来继续运行这个软件,让这个软件弹出窗口。刚刚听到提示音之后,od就把这个软件断下来了。
我们来看,这时候被断在user32模块下,属于windows系统的dll。如果我们对这里的代码有任何修改,非但不会达到破解的效果,反而会大祸临头崩掉操作系统。
我们先回到程序的领空再说。
回到程序领空之后,我们把反汇编的代码往上稍微一拉……看,弹窗call就被抓到了~
这时候我们就可以开始分析程序的关键跳咯……往上看~使劲往上看:
这里有一个大的je,跳到了一个很远的位置,直接跳过了弹窗的那个call,是不是非常可疑呢?不用怀疑,就是它了。
直接修改为jmp让它强制跳转即可。OK,爆破完毕,这个另类的方法就是这么简单……
相关文章推荐
- js拦截alert对话框另类应用
- js拦截alert对话框另类应用
- 一种另类“关于(About)”对话框的动态显示方法
- 另类的CDialogBar——可停靠对话框的实现方法
- CE+OD无法附加游戏进程的破解方法-不再为不能附加而烦恼了
- js提示框替代系统alert,自动关闭alert对话框的实现方法
- ASP.NET弹出对话框几种基本方法
- Spring AOP无法拦截Controller中的方法
- 两种自定义对话框的方法
- 另类备份MYSQL数据的方法
- VS2010为新添加的对话框添加OnInitDialog()方法,即重写OnInitDialog()
- 弹出run a dll as an app对话框&关机蓝屏的解决方法
- 用MFC写对话框形式的DLL并用程序进行调用方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC对话框里获取DC画图的几种方法
- Runtime基础使用场景-拦截替换方法(class_addMethod ,class_replaceMethod和method_exchangeImplementations)
- [原创]另类调用 printf 完成任务的方法
- Android Studio中拦截电话的方法
- 只改变MFC对话框背景色的另一种方法
- 解决回车弹出新页面及弹新页面时被浏览器拦截window.open方法