大家都在使用压缩解压软件,最经典的莫过于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 图片呢,全没了,白写了