初步分析
前两个校验我们已经初步分析过,分别是文件校验
以及针对按钮的检测
紧接着我们以同样的方式分析第三个校验 0xF94
搜索常量 0xF94
发现核心的赋值存在于鼠标移动
的函数
同时通过分析我们发现,如果 0xF94
能成立,前面的判断必须能够成立
if ( *(*(a1 + 0x2E0) + 0x47) == 1 && a4 > 0xE2 && a5 > 0x12C )
*(a1 + 0x310) = 0x10; // 核心的赋值
进一步分析
我们可以明显看到 a1 + 0x2E0
,还有 a1+ 0x2DC
根据以往的经验,我们猜测,它们可能是控件
通过 DarkDe4
工具,我们印证了这一猜想
Image2
的 ID 就是 0x2DC
Image3
的 ID 就是 0x2E0
图片观察
通过观察,我们发现该程序有 4 张图片
人之初
性本善
性相近
习相远
调试分析 – 图片 ID
通过对关键地址下断,我们发现当性相近
图片出现时,Image3 对象+0x47
值为 1
此时满足*(*(a1 + 0x2E0) + 0x47) == 1
所以 ID 是0x2E0
的Image3
的图片 就是 性相近
分析剩余两次校验
该函数是鼠标移动的函数,那么我们是否可以推测 a4
以及 a5
与鼠标的坐标
有关
推测要求:
鼠标 x 坐标
> 226
鼠标 y 坐标
> 300
程序窗口的整个大小为 x:276
,y:355
满足二次校验的条件
鼠标 x 坐标
> 226
鼠标 y 坐标
> 300
如果想要满足后面两者,我们的鼠标
需要从右下角划入图片
因为我们可以看到大概在 126 的 6 这个地方,鼠标的相对坐标对应 226,300
总结过掉三次校验的绕过方法
- 观察
性相近
图片出现 - 出现时
鼠标从右下角划入
没有回复内容