NAG窗口:
nag窗口在软件试用期过后,很可能屏蔽软件的正式窗口或某些具有重要功能的重要功能的窗口,从而使软件不能正常使用。
小程序:
使用OD调试工具
还是老方法,先运行一遍程序。
运行程序全弹出一个窗口
然后是主程序运行
关掉主程序之后,还是弹出nag窗口。
载入OD,进行调试
我们可以发现,当程序到第一个call函数的时候,就弹出的nag窗口
我们点击“确定”
到了中间这一块,我们发现,主程序在这个call函数中。
最后在退出程序前,调用了一次call函数,使得nag窗口弹出。
思路
1、我们可以在messagebox函数之前,跳过该函数,不调用nag窗口。
2、我们可以参考messagebox函数,让其中的参数不合法,使得messagebox函数失效。
第一种方法,简单粗暴。
将汇编指令
je short 00401024
改为
jmp short 00401024
跳过call函数
将call函数
call 004011EA
改为
nop
就可以爆破nag窗口。
第二个方法,参数不合法
我们先了解这个函数的用法
再者,我们了解到一个函数在call之前,都会push参数进去
我们发现第一个参数的值为窗口句柄。
于是我们修改为1
push 0 改为 push 1
由于参数不合法,messagesbox函数不会弹出。
下节我们分析文件的PE结构,并且修改PE结构,从而爆破程序。