去VB程序NAG窗口方法-4C法

去除VB程序的程序启动时的NAG窗口,基本原理就是寻找到每珍具窗口的启动顺序,再改变窗口的启顺序就可以了。

具体实列如下:
当程序启动时,会出现一个NAG窗口,如下所示:
在这里插入图片描述
OD载入程序:EP处在这里插入图片描述
VB程序有个特点-入口点处都是一个PUSH指令,然后一个CALL指令,看JMP 后面跟的MSVBVM50,应该是VB5.0编写的。(如果不是这种情况的话,那么该程序可能被加过壳), PUSH将要压入堆栈的是004067D4,现在我们在数据窗口中定位到这个地址。显示如下:
在这里插入图片描述
现在就要用至4C了,也就是从当前定位的地址往后偏移4C,数据窗口CRTL+G,输入4067d4+4c = 406820,显示如下:
在这里插入图片描述
数据窗口继续跟踪:00406820处的DWORD值,00406868,内容如下:
在这里插入图片描述
这里我们可以看到两块类似的数据,每块50(十六进制)个字节的长度,每块数据的第24(十六进制)个字节处都有一个标志(第一个是01,第二个是00)。该标志指定了每块代码(也就是程序启动后要加载的窗体)出现的顺序,先加载00,也就是我们要去的NAG窗口,再加载01,是主窗口。所以这里我们将各两个标志的值颠倒一下,01改00,00改01,二进制修改,保存文件。在这里插入图片描述
运行测试,NAG窗口去除了。
在这里插入图片描述
相关测试程序:

posted @ 2019-10-07 09:34  老耗子  阅读(356)  评论(0编辑  收藏  举报