软件保护技术----烦人的Nag窗口
大家一定会遇到过一些情况,你下了个软件,因为你没花钱买正版,有时候商家会不断弹出窗口来骚扰你,你觉得So Nag(很烦)
那我们可不可以把这个弹窗给消掉,让它别再干扰我呢?坏笑.jpg
我们来举个简单的让弹窗消失的例子
例子的链接在这里(例子来自己加密解密第三版,看雪大大天下第一):
链接:https://pan.baidu.com/s/1pTHw9tlZBWobDCZlF3nXkg 密码:cvia
我们可以看到每次打开都会看到一个窗口
因为一个程序可能有多个弹窗,你总不能消错了吧,那么找出窗口自身的标识号就是必要的了
我自己采用的是Resource Hacker来找窗口的标识号,感觉还不错,比较清爽
用Resource Hacker打开例子:
还是可以比较清晰地看到你要消除的窗口的ID号(之前说的标识)是121
在OD中打开例子,Ctrl+N打开函数导入表
可以看到DialogBoxParamA与EndDialog这一对函数可以用来打开对话框以及关闭对话框
我们跟进到DialogBoxParamA函数,可以看到有很多次对DialogBoxParamA的调用,那是当然啦,有好多对话框呢,如何区分呢,看每个DialogBoxParamA的参数
为什么判断是上图的这个DialogBoxParamA调用了那个Nag对话框呢,因为DialogBoxParamA需要压入自身标识号作为参数,79正是121的16进制表达
同时DialogBoxParamA还会压入要执行的程序首地址作为参数,那么我们跳转到004010C4,发现又是一个对话框函数,正是越过Nag之后的住对话框
那么消除Nag的方法就显而易见了,将Nag的DialogBoxParamA函数中的参数替换成主对话框的即可,嘤嘤嘤
当然啦,这种消除方式有个前提,软件中的对话框是以资源形式存在的,否则就要用其他的办法了,还在探索,大家加油