去除nag弹窗

【一】实验内容及要求

实验名称:去除nag

实验目的

掌握基本的软件破解方法

实验环境

Windows操作系统,OllyDbg,Tut.ReverseMe1.exe,CodeZero.1.exe,
blaster99.exe

实验内容

1.破解Tut.ReverseMe1.exe

2.破解CodeZero.1.exe

3.破解blaster99.exe

【二】实验过程及结果

实验内容1

1.破解Tut.ReverseMe1.exe,根据PPT给出实验过程
1.现在先从入口点00401168处往下开始观察一下代码,发现不远处,即地址00401189处有一个RETN指令,RETN是跳出子程序的指令,被称为返回指令。后面开始是一些看不懂的东西,所以先按F8一句一句调试看看。
在这里插入图片描述

2.按F8当执行地址0040116D处函数调用的时候弹出了烦人的Nag窗口,点OK,弹出输入注册码,然后输入自己的学号,点Register me!弹出错误对话框,再点OK,程序结束。因此现在第一步要先去除Nag窗口,第二步找到正确的注册码。
在这里插入图片描述

3.要去除消息框,只要操作调用消息框的函数部分即可。VB中调用消息框的函数为MSBVBVM50.rctMsgBox。重新开始调试程序,在OllyDbg中点右键选择Search for – All intermodular calls,将会列出程序中调用的API目录。在地址00402977处可以看到一个MSBVBVM50.rctMsgBox函数调用,右键选择Set breakpoint on every call to retMsgBox。在这里插入图片描述

  1. 右键选择Set breakpoint on every call to retMsgBox,即在所有调用retMsgBox的代码处设置断点,这时鼠标点Destination根据函数名称排序,可以看到已经在所有调用retMsgBox的代码处设置了断点。在这里插入图片描述

  2. 现在开始按F9调试程序,程序运行到断点00402CFE处,这里是一个recMsgBox函数的调用,函数调用前应该会传递参数,往上拉在地址00402C85和00402CBE处找到了Nag窗口显示的字符串。在这里插入图片描述

6.继续按F9调试程序,弹出对话框,选择OK。在这里插入图片描述

7.选择OK后,弹出程序的主画面,让输入注册码,因为我们要去除Nag窗口,所以要找到所有Nag窗口,这时候点Nag?,看会发生什么。
8.点Nag?,程序又运行到地址00402CFE处停下来,这说明刚开始运行程序时的Nag窗口和点Nag?后弹出的Nag窗口有相同的运行代码,所以只要对这一个地方打补丁即可。在这里插入图片描述

9.按Ctrl + F2重新开始调试程序,找到地址00402CFE处,该地址的代码调用rtcMsgBox()弹出Nag窗口,一直往上拉,找到调用rtcMsgBox()函数的上层函数的栈针,注意所有函数调用开始的前两行代码都是PUSH EBP和MOV EBP,ESP。往上拉找出它们。 在地址00402C17和00402C18处找到了调用rtcMsgBox()函数的上层函数的栈针,现在的目标就是修改这两行代码让上层函数无法执行,或让上层函数直接返回,使其无法调用rtcMsgBox()函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值