记一次过掉rar未注册版,总是弹出一个烦人的网页对话框的实践
2016-09-23 23:42
246 查看
大家都在使用压缩解压软件,最经典的莫过于rar这个软件了(当然现在有许多的类似软件了),
可惜他不是免费的,从网上下载一个rar安装后如下:
rar 软件的版本号和未注册标识
刚安装的rar打开后完全正常使用,是不会每次打开都弹窗的,但是超过40天后,就呵呵了,
如下,我把系统时间改掉,后的结果:
超过40天后就会弹出这么大一个url的广告框
太艹蛋了,免费的东东就是坑~~
下面就是如何去过掉这个烦人的框的具体实践:
工具准备:
1. OD -- 不解释
2. CE -- 内存搜索工具
3. PETool -- pe文件查看工具
4. HexEditor / HxD -- 二进制编辑工具
--------------------------------------------------
在进行过掉之前,首先分析如何下手去过掉这个框
首先想思路:
1.在调用这个广告框的时候,绕过这个call,直接向下去执行;(非常直接的想法)
2.绕过时间限制。(实践证明这个最容易实现,我水平有限,第一个方法没找到)
3 . 。。。。。。(暂时就想到这两个方法,大神们肯定还有其他方法)
然后在想怎样操作:
如何去下断点?
可以确定的是,这个弹框是一个windows框,要打开一个这样的窗口,考虑到程序员去写这个方法,应该大概是调用了CreateWindowExW这样的函数
所以直接就可以用od附加进程,然后bp CreateWindowExW即可,(当然我不是做.net开发的,对于win的函数我不太了解,我直接使用的od插件)
我是用的OD附带插件下的断点,并且下的是ShowWindow这个断点,下什么样的断点无所谓,主要就是为了试程序在特定的位置断下,便于我们进一步的分析。
下 bp ShowWindow断点
函数功能:该函数设置指定窗口的显示状态。
函数原型:BOOL ShowWindow(HWND hWnd, int nCmdShow);
断点下好后,F9执行就可,直到第一个窗口展示后,就需要记录每一步的stack调用,因为主窗口展示完毕,就马上要弹出广告窗口了,现记录如下:
如上图,直接转到地址:0117d740处
在这里下断,内容如下:
到这里,就可以用call测试工具测试一下,这个call其实是一个刷广告页面的call,据此分析打开广告框,肯定在这个call上面调用的。
然后向上找是否有打开窗口的call,发现没有,那么就在EP处下断,然后记录static调用列表
就会发现这个函数:CreateWindowExW调用了这个就是打开广告窗口的的call,汇编如下:
到这来,这样一想就比较简单了,把这个call干掉不就完了?
想到做到,把这个call nop掉,然后替换成 mov ecx,0 ,然后执行,结果发现了这个:
看来,还得的破掉时间的限制才行啊!!!
还有一个问题就是,nop后,保存程序时候,提示如下:
基址重定位了!!!!!
呵呵,好坑,csdn 图片呢,全没了,白写了
可惜他不是免费的,从网上下载一个rar安装后如下:
rar 软件的版本号和未注册标识
刚安装的rar打开后完全正常使用,是不会每次打开都弹窗的,但是超过40天后,就呵呵了,
如下,我把系统时间改掉,后的结果:
超过40天后就会弹出这么大一个url的广告框
太艹蛋了,免费的东东就是坑~~
下面就是如何去过掉这个烦人的框的具体实践:
工具准备:
1. OD -- 不解释
2. CE -- 内存搜索工具
3. PETool -- pe文件查看工具
4. HexEditor / HxD -- 二进制编辑工具
--------------------------------------------------
在进行过掉之前,首先分析如何下手去过掉这个框
首先想思路:
1.在调用这个广告框的时候,绕过这个call,直接向下去执行;(非常直接的想法)
2.绕过时间限制。(实践证明这个最容易实现,我水平有限,第一个方法没找到)
3 . 。。。。。。(暂时就想到这两个方法,大神们肯定还有其他方法)
然后在想怎样操作:
如何去下断点?
可以确定的是,这个弹框是一个windows框,要打开一个这样的窗口,考虑到程序员去写这个方法,应该大概是调用了CreateWindowExW这样的函数
所以直接就可以用od附加进程,然后bp CreateWindowExW即可,(当然我不是做.net开发的,对于win的函数我不太了解,我直接使用的od插件)
我是用的OD附带插件下的断点,并且下的是ShowWindow这个断点,下什么样的断点无所谓,主要就是为了试程序在特定的位置断下,便于我们进一步的分析。
下 bp ShowWindow断点
函数功能:该函数设置指定窗口的显示状态。
函数原型:BOOL ShowWindow(HWND hWnd, int nCmdShow);
断点下好后,F9执行就可,直到第一个窗口展示后,就需要记录每一步的stack调用,因为主窗口展示完毕,就马上要弹出广告窗口了,现记录如下:
如上图,直接转到地址:0117d740处
在这里下断,内容如下:
到这里,就可以用call测试工具测试一下,这个call其实是一个刷广告页面的call,据此分析打开广告框,肯定在这个call上面调用的。
然后向上找是否有打开窗口的call,发现没有,那么就在EP处下断,然后记录static调用列表
就会发现这个函数:CreateWindowExW调用了这个就是打开广告窗口的的call,汇编如下:
到这来,这样一想就比较简单了,把这个call干掉不就完了?
想到做到,把这个call nop掉,然后替换成 mov ecx,0 ,然后执行,结果发现了这个:
看来,还得的破掉时间的限制才行啊!!!
还有一个问题就是,nop后,保存程序时候,提示如下:
基址重定位了!!!!!
呵呵,好坑,csdn 图片呢,全没了,白写了
相关文章推荐
- 【Bootstrap】一个在当前网页弹出的对话框,可以关闭,不用跳转,非弹窗
- 自己整理得一个JavaScript写的一个DIV 弹出网页对话框
- JavaScript写的一个DIV 弹出网页对话框
- JS实现网页每隔3秒弹出一次对话框的方法
- 弹出一个对话框,灰掉原来的页面(网页)
- JavaScript写的一个DIV 弹出网页对话框
- 一段简单的 HTML 弹出一个对话框,灰掉原来的页面(网页)
- JS弹出一个网页对话框,后面全变灰,并不可用
- JavaScript写的一个DIV 弹出网页对话框
- C# 打开Excel文件,总是弹出一个打印机设置的对话框 解决方案
- Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
- 最近在使用MyEclipse的SVN插件时总是弹出一个大大的对话框,报一个Failed to load JavaHL Library.错误
- 如何在网页上弹出一个对话框显示一些内容javascript
- 在js里边想把一个alter弹出框改为弹出一个表格样式的网页或对话框,请前辈指点!小弟先感谢了!
- JS弹出一个网页对话框,后面全变灰,并不可用
- JS实现网页每隔3秒弹出一次对话框的方法
- JS弹出一个网页对话框,后面全变灰,并不可用
- 最近在使用MyEclipse的SVN插件时总是弹出一个大大的对话框,报一个Failed to load JavaHL Library.错误
- 在网页中弹出一个自定义对话框
- 最近在使用MyEclipse的SVN插件时总是弹出一个大大的对话框,报一个Failed to load JavaHL Library.错误 [java] view plaincopy Failed