.版本 2
.程序集 硬断
.子程序 取拦截_地址, 整数型
.局部变量 模块基址, 整数型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 结果, 整数型, , "10"
.局部变量 d, 整数型
.局部变量 内存, 内存操作类
.局部变量 ODL, 整数型
内存.打开进程 ()
.判断循环首 (模块基址 < 9999)
模块基址 = GetModuleHandleA (“Tersafe.dll”)
.判断循环尾 ()
a = 读内存整数型 (-1, 模块基址 + 1867796)
c = 读内存整数型 (-1, a + 20)
.判断循环首 (读内存字节集 (-1, c, 1) = { 0 })
延时 (1000)
.判断循环尾 ()
内存.搜索 ({ 139, 236, 129, 236, 212, 7, 0, 0 }, 结果, , c, c + 65536, 0, 假)
内存.关闭进程 ()
拦截HOOK地址跳转 = 结果 [1] + 8
VirtualProtect (4197888, 128, 64, ODL)
写内存整数型 (-1, 4197888, 拦截HOOK地址跳转)
返回 (结果 [1])
.子程序 设置_硬断, 整数型
.参数 OrgProc, 整数型
.参数 NewProc, 整数型
.局部变量 n, 整数型
.计次循环首 (4, n)
.如果真 (T_OrgProc [n] = 0)
T_OrgProc [n] = OrgProc
T_NewProc [n] = NewProc
返回 (n)
.如果真结束
.计次循环尾 ()
返回 (0)
.子程序 拦截__中转处理, 整数型
.局部变量 地址, 整数型
.局部变量 地址2, 整数型
.局部变量 构造, 字节集
.局部变量 拦截HOOK地址, 整数型
.局部变量 ODL, 整数型
拦截HOOK地址 = VirtualAllocEx (-1, 0, 100, 4096, 64)
构造 = { 139, 236, 96, 255, 117, 12, 141, 69, 8, 80, 199, 192 } + 到字节集 (取子程序真实地址_f (&封包__处理)) + { 255, 208, 131, 248, 1, 116, 13, 97, 129, 236, 212, 7, 0, 0, 255, 37, 0, 14, 64, 0, 97, 139, 229, 93, 194, 12, 0 }
写内存字节集 (-1, 拦截HOOK地址, 构造)
返回 (拦截HOOK地址)
.子程序 HOOK__JMP
.参数 当前地址, 整数型
.参数 目标地址, 整数型
.参数 额外字节, 字节集, 可空
.局部变量 中专, 整数型
.局部变量 字节, 字节集
.局部变量 原始保护, 整数型
.局部变量 OLD, 整数型
中专 = 目标地址 - 当前地址
中专 = 中专 - 5
VirtualProtect (当前地址, 5, 64, 原始保护)
字节 = { 233 } + 到字节集 (中专) + 额外字节
写内存字节集 (-1, 当前地址, 字节)
.子程序 封包__处理, 整数型
.参数 ID, 整数型, 参考
.参数 指针, 整数型
.局部变量 检测地址, 整数型
.如果真 (ID = 23 或 ID = 103 或 ID = 115 或 ID = 213) ' ID = 23 或 ID = 103 或 ID = 115 或 ID = 213 (原始id)
返回 (1)
.如果真结束
返回 (0)
|