52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

52.逆向破解分析实战19:160crackme之005(03):分析三次校验

初步分析

前两个校验我们已经初步分析过,分别是文件校验以及针对按钮的检测

紧接着我们以同样的方式分析第三个校验 0xF94

图片[1]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

搜索常量 0xF94

图片[2]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

发现核心的赋值存在于鼠标移动的函数

图片[3]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

图片[4]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

同时通过分析我们发现,如果 0xF94 能成立,前面的判断必须能够成立

if ( *(*(a1 + 0x2E0) + 0x47) == 1 && a4 > 0xE2 && a5 > 0x12C )
    *(a1 + 0x310) = 0x10;                       // 核心的赋值

图片[5]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

进一步分析

我们可以明显看到 a1 + 0x2E0,还有 a1+ 0x2DC

根据以往的经验,我们猜测,它们可能是控件

通过 DarkDe4 工具,我们印证了这一猜想

Image2 的 ID 就是 0x2DC

Image3 的 ID 就是 0x2E0

图片[6]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

图片观察

通过观察,我们发现该程序有 4 张图片

人之初

图片[7]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

性本善

图片[8]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

性相近

图片[9]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

习相远

图片[10]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

调试分析 – 图片 ID

通过对关键地址下断,我们发现当性相近图片出现时,Image3 对象+0x47 值为 1

此时满足*(*(a1 + 0x2E0) + 0x47) == 1

所以 ID 是0x2E0Image3 的图片 就是 性相近

图片[11]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

分析剩余两次校验

该函数是鼠标移动的函数,那么我们是否可以推测 a4 以及 a5鼠标的坐标有关

推测要求:

鼠标 x 坐标 > 226

鼠标 y 坐标 > 300

图片[12]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

程序窗口的整个大小为 x:276,y:355

图片[13]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

满足二次校验的条件

图片[14]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

鼠标 x 坐标 > 226

鼠标 y 坐标 > 300

如果想要满足后面两者,我们的鼠标需要从右下角划入图片

因为我们可以看到大概在 126 的 6 这个地方,鼠标的相对坐标对应 226,300

图片[15]-52.逆向破解分析实战19:160crackme之005(03):分析三次校验-汇编语言社区论坛-技术社区-学技术网

总结过掉三次校验的绕过方法

  1. 观察性相近图片出现
  2. 出现时鼠标从右下角划入
请登录后发表评论

    没有回复内容