|
版本 2
.程序集 程序集1
.程序集变量 校验头地址, 整数型
.程序集变量 校验字节集, 字节集
.程序集变量 校验Dump07, 整数型
.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码
.局部变量 校验自校验_1, 文本型, , "0"
.局部变量 校验自校验_2, 文本型, , "0"
.局部变量 校验返回地址, 整数型
.局部变量 校验全局检测, 文本型, , "0"
.如果真 (Game_取校验数据 (校验头地址, 校验字节集) = 真)
校验Dump07 = 操作_取字节集指针 (校验字节集)
内存_AOB搜索 (校验头地址, 校验字节集, “0F B6 17 33 CA”, 校验自校验_1)
.如果真 (取数组成员数 (校验自校验_1) = 2)
校验返回地址 = 转换十六到十 (校验自校验_1 [1]) + 5
内存_写整数型 (-1, 转换十六到十 (“10C00”), 校验返回地址)
校验返回地址 = 转换十六到十 (校验自校验_1 [2]) + 5
内存_写整数型 (-1, 转换十六到十 (“10C10”), 校验返回地址)
Hook_强制跳转 (-1, 转换十六到十 (校验自校验_1 [1]), 取子程序_ (&Game_07自检验01) + 3)
Hook_强制跳转 (-1, 转换十六到十 (校验自校验_1 [2]), 取子程序_ (&Game_07自检验02) + 3)
.如果真结束
内存_AOB搜索 (校验头地址, 校验字节集, “0F B6 3E 33 C7”, 校验自校验_2)
.如果真 (取数组成员数 (校验自校验_2) = 2)
校验返回地址 = 转换十六到十 (校验自校验_2 [1]) + 5
内存_写整数型 (-1, 转换十六到十 (“10C20”), 校验返回地址)
校验返回地址 = 转换十六到十 (校验自校验_2 [2]) + 5
内存_写整数型 (-1, 转换十六到十 (“10C30”), 校验返回地址)
Hook_强制跳转 (-1, 转换十六到十 (校验自校验_2 [1]), 取子程序_ (&Game_07自检验03) + 3)
Hook_强制跳转 (-1, 转换十六到十 (校验自校验_2 [2]), 取子程序_ (&Game_07自检验04) + 3)
.如果真结束
内存_AOB搜索 (校验头地址, 校验字节集, “8B 39 33 F8 33 F9”, 校验全局检测)
.如果真 (取数组成员数 (校验全局检测) = 1)
校验返回地址 = 转换十六到十 (校验全局检测 [1]) + 6
内存_写整数型 (-1, 转换十六到十 (“10C40”), 校验返回地址)
Hook_强制跳转 (-1, 转换十六到十 (校验全局检测 [1]), 取子程序_ (&Game_07全局校验) + 3)
.如果真结束
Hook_强制跳转 (-1, 转换十六到十 (“025B1254”), 取子程序_ (&Game_07自检验05) + 3)
Hook_强制跳转 (-1, 转换十六到十 (“02ECE7DE”), 取子程序_ (&Game_07自检验06) + 3)
Hook_强制跳转 (-1, 转换十六到十 (“02ECBABB”), 取子程序_ (&Game_07自检验07) + 3)
Hook_强制跳转 (-1, 转换十六到十 (“02ED41A2”), 取子程序_ (&Game_07自检验08) + 3)
.如果真结束
返回 (0) ' 返回值被忽略。
.子程序 Game_取校验数据, 逻辑型
.参数 获取_校验头地址, 整数型, 参考
.参数 获取_校验字节集, 字节集, 参考
获取_校验头地址 = 内存_读整数型 (-1, 转换十六到十 (“37708DC”), , { 20 })
.如果真 (获取_校验头地址 ≠ 0)
获取_校验字节集 = 内存_读字节集 (-1, 获取_校验头地址, 262144)
返回 (真)
.如果真结束
返回 (假) |
|