NAG 本意是烦人的意思,NAG 窗口是软件设计者用来时不时提醒用户购买正版的警告窗口。软件设计者可能认为当用户忍受不了试用版中的这些烦人的窗口时,就会考虑购买正式版本。
一般 NAG 在程序启动或退出的时候弹出来,或者在程序运行的某个时刻突然蹦出来吓你一跳。
我们这次只破解 NAG 窗口, 不搞注册
我们 OD 载入 F9 运行, 我们关闭软件, 程序弹出注册的提示, 这个就是我们的目标 NAG 窗口了.

我们不要真的把它关了, 返回 OD 并按下 F12, 也就是 OD 的暂停快捷键
然后我们 Alt+K 来到调用堆栈窗口

我们找到系统领空的 MessageBoxExA, 右键 显示调用
, 然后我们 F2 下断

我们重新载入程序 (因为我们刚才快把程序关了), 然后 F9 运行, 我们点关闭叉叉让软件弹窗, 它断了下来

我们 F8 单步一下, 它会弹窗, 我们关掉 NAG 弹窗, 继续单步回到程序领空

上面就是程序调用 API 从而弹出 NAG 窗口, 我们向上翻一下有没有能够跳过这个 NAG 的跳转
没找到, 那我们就继续单步走出这个函数

走出去后发现上面有个跳转可以跳过这个弹窗, 我们下断

F9 运行, 之前的断点删不删无所谓, 因为我们这个断点比前面的断点要早一些, 在程序执行流程上要早

我们发现这个跳转未实现, 修改一下标志位, 让它实现, 看是不是这个跳转的问题
F9 运行, 程序未弹窗就退出了, 所以这就是关键跳转
我们把 jnz
改成 jz
, 保存, 我们的破解弹窗就搞定了