首先程序会有一个Nag窗口,而后进入name和serial输入框
首先选择了吾爱上一位师傅讲的方法去掉Nag窗口:4C法
首先确定这是VB 5.0/6.0程序,根据VB程序特点:
在程序开始都会有一个push紧跟call指令:
VB
根据此处push位置0x4067D4,在数据框中追踪此位置偏移0x4C位置,即:
0x4067D4+0x4C:
data
此处为0x406868,再跳到此位置:
data
可以看到每0x50字节一个结构体(实际上在初始位置有大小说明:0x50)
对应结构体0x24位置指明了资源的优先级,可以看到第一个为00,第二个为01,程序会先加载00,后加载01,因此我们将这两个字节改变,让输入窗口先出现,而后复制到可执行文件->所有修改即可在patch的程序中去除Nag窗口
另一种方法:
在SetTimer下断点(ctrl+g即可在x32dbg下找到SetTimer函数,OD下总是断失败,应该是我的OD有问题)
SetTime函数定义:
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
);
运行程序看到栈中的参数:
stack
看到对应时间为0x1B58
在二进制文件中搜索此字符"58 1b 00 00"
只有一处,改为"01 00 00 00"(直接改为"00 00 00 00"会卡在Neg窗口)
运行即可发现neg窗口一闪而过(基本看不到了)
网友评论