您的位置:首页 > 其它

记一次过掉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 图片呢,全没了,白写了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐