逆向入门之计次软件的破解

一·破解的软件简介:

软件名:VisualSite Designer

软件在启动时会跳出一个nag窗口提醒用户还有多少次的免费使用机会,当免费使用次数变为0时,就要求用户花钱购买此软件了。

然后在关闭程序的时候也会跳出一个广告窗口

二·目标:

去除软件的计次,得到免费无限次运行的效果,顺便将程序关闭时的广告窗口去除了。

三·实战:

  1. 先用PEID查一下有没有壳之类的:

没有壳,并且是VC++ 6.0编译的

扫描二维码关注公众号,回复: 4337372 查看本文章

2.然后将程序载入OD中进行分析:

然后先一路按F8,然后我们发现程序在004BD497的位置出现计次窗口:

然后在这个位置下断点,重新运行程序,然后进入F7这个call函数,再一路F8直到再次出现这个nag;

第二次出现nag的位置:004BD520

然后继续用上面的方法下断点,重新运行程序,F7进入Call,再一路F8直到再次出现这个nag;

第三次出现nag的位置:59CF6243

这个地址是再MFC的动态链接库里面,不是程序本身,所以这个位置上面我们要下硬件断点,然后再重新运行程序,F7进入Call,再一路F8直到再次出现这个nag;

第四次出现nag的位置:00489912

利用同样的方法继续进入这个call;

第五次出现nag的位置:59D23508

然后下硬件断点,继续进入这个call;

但是进入这个call后,我们发现一路F8(Ctrl+F8)后,出现了这个nag窗口,但是我们的OD却还在一直跑,没有停下来,这就说明59D23508的这个call是我们要修改的地方,但是因为这个地址是动态链接库的地址,不是我们的程序本身,所以无法修改,所以我们只能回到上一个call的位置,也就是00489912的位置进修修改。

3.call分析:

当我们在00489912的位置,出现nag窗口后,我们点击进入程序,我们发现OD中的指令来到了00489917,也就是call下一行:cmp eax,1;说明这个call函数就执行了两大件事:弹出nag并返回eax=1;

所以我们将原来的call函数直接改为令eax=1,汇编指令为:MOV EAX,1

然后保存文件,运行验证一下,程序直接进入主程序了,ok!

 

4.去除尾部广告窗口

将我们刚才修改的程序重新载入OD中,运行,然后关闭程序,在广告窗口出来的时候,按下OD的暂停键:

然后查看OD的调用堆栈:

 

然后看到:

只有紫色箭头的位置是程序本身,其他都是系统,所以我们双击黄色箭头处,来到调用函数的地方,也就是这个广告窗口出现的位置:00480C24;

然后再这个位置下断点,重新运行程序,关闭程序,发现广告窗口确实再这里断下来了:

然后,我们只需要把这个call函数去掉就可以了,这样就不会调用这个函数了;

汇编语言:nop

然后保存文件,运行验证一下,程序直接进入主程序,然后退出时也直接关闭了!

 

猜你喜欢

转载自blog.csdn.net/qq_40827990/article/details/84716806
今日推荐