加密与解密(OD使用笔记&简单实践_③)
来源:互联网 发布:vip视频盒子app源码 编辑:程序博客网 时间:2024/06/14 11:03
当下载某些软件时,软件可能是试用版或者其他版本,它会一直提示用户购买正版,这种烦人的警告窗口叫做NAG窗口。那么如何来去掉这个窗口捏?
一般情况下,一个注册后的软件,它是不会弹出NAG窗口的,也就是说一个程序启动的时候,它可能会有一段代码用来检查该程序是否已经被注册,可以把这个程序的注册破解掉。
推荐视频教程:鱼C工作室_加密与解密系列_OD使用教程
下面做实践,用四种方法去掉NAG窗口;
实践程序来自:鱼C工作室,该程序打开前会有一个NAG窗口弹出,关闭后也会出现一个NAG窗口。
第一种:
![](http://img.blog.csdn.net/20151205115037855?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
条件跳转,第一个方法就是修改为jmp,无条件跳转绕过第一个NAG窗口。
第二种:
![](http://img.blog.csdn.net/20151205115047696?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这种方法比较邪恶,直接用NOP填充,使该NAG窗口的代码消失。
第三种方法:
这种方法有点难度,直接对其API的参数下手,由于该函数使用的是MessageBoxA,我们可以从它的参数上动功夫。
该API的第四个参数指向一个父窗口,原本该参数是0因为这个NAG窗口不属于哪个窗口,但是我们手动的改成1,就表示它有一个父窗口,可事实是它没有父窗口,那么就会出错,该API就不会实现。![](http://img.blog.csdn.net/20151205115056051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第四种方法:
从PE结构上入手,没PE知识的绕过。
原本程序的入口地址是NAG窗口,之后才是主程序。用UE打开源程序,定位PE头,偏移到AddressOfEntryPoint字段,原本是00001000,这是个偏移地址(小端反着看),改成00001024。
![](http://img.blog.csdn.net/20151205115105140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
打开后就再也看不到NAG窗口了。
![](http://img.blog.csdn.net/20151205115112293?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第五种方法实际上跟第一种方法差不多,也是直接改汇编指令,直接jmp过窗口,程序执行退出后也直接jmp过该窗口的指令。
这些方法都比较经典,可以自由组合,萝卜白菜各有所爱。
一般情况下,一个注册后的软件,它是不会弹出NAG窗口的,也就是说一个程序启动的时候,它可能会有一段代码用来检查该程序是否已经被注册,可以把这个程序的注册破解掉。
推荐视频教程:鱼C工作室_加密与解密系列_OD使用教程
下面做实践,用四种方法去掉NAG窗口;
实践程序来自:鱼C工作室,该程序打开前会有一个NAG窗口弹出,关闭后也会出现一个NAG窗口。
第一种:
条件跳转,第一个方法就是修改为jmp,无条件跳转绕过第一个NAG窗口。
第二种:
这种方法比较邪恶,直接用NOP填充,使该NAG窗口的代码消失。
第三种方法:
这种方法有点难度,直接对其API的参数下手,由于该函数使用的是MessageBoxA,我们可以从它的参数上动功夫。
该API的第四个参数指向一个父窗口,原本该参数是0因为这个NAG窗口不属于哪个窗口,但是我们手动的改成1,就表示它有一个父窗口,可事实是它没有父窗口,那么就会出错,该API就不会实现。
第四种方法:
从PE结构上入手,没PE知识的绕过。
原本程序的入口地址是NAG窗口,之后才是主程序。用UE打开源程序,定位PE头,偏移到AddressOfEntryPoint字段,原本是00001000,这是个偏移地址(小端反着看),改成00001024。
打开后就再也看不到NAG窗口了。
第五种方法实际上跟第一种方法差不多,也是直接改汇编指令,直接jmp过窗口,程序执行退出后也直接jmp过该窗口的指令。
这些方法都比较经典,可以自由组合,萝卜白菜各有所爱。
0 0
- 加密与解密(OD使用笔记&简单实践_③)
- 加密与解密(OD使用笔记&简单实践_①)
- 加密与解密(OD使用笔记&简单实践_②)
- 加密与解密(PE结构笔记_概述)
- 加密与解密笔记
- 加密与解密(PE结构笔记③)
- 《加密与解密》笔记(一)
- 《加密与解密》笔记(二)
- 《加密与解密》笔记(三)
- 《加密与解密》笔记三(一)
- 《加密与解密》笔记三(二)
- 《加密与解密》笔记四(一)
- 《加密与解密》笔记四(二)
- 《加密与解密》笔记四(三)
- 《加密与解密》笔记四(四)
- 《加密与解密》笔记五(一)
- 《加密与解密》笔记五(二)
- 《加密与解密》笔记六(一)
- 【STL】STL之顺序容器:vector、deque、list、forward_list、array、string
- Android数字游戏之数独(自动随机生成不同难度的数独)
- 加密与解密(OD使用笔记&简单实践_②)
- leetcode Add Digits
- VIBE背景建模算法之C语言实现
- 加密与解密(OD使用笔记&简单实践_③)
- openjudge 马走日
- 加密与解密(破解总思想与基本手段)
- IAR出现Copy protection check, No valid license found for this product的解决办法
- iOS 第三方库冲突的处理
- VB/VC/易语言/Delphi 破解常见思路
- 剑指offer10 矩形覆盖
- mongodb3.0.6的下载和安装
- 加密与解密(修改关键数据实现中端破解)