加密与解密(OD使用笔记&简单实践_③)

来源:互联网 发布:vip视频盒子app源码 编辑:程序博客网 时间:2024/06/14 11:03
    当下载某些软件时,软件可能是试用版或者其他版本,它会一直提示用户购买正版,这种烦人的警告窗口叫做NAG窗口。那么如何来去掉这个窗口捏?
    一般情况下,一个注册后的软件,它是不会弹出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
原创粉丝点击