.版本 2
.支持库 EThread
.子程序 视角追踪
.参数 类型, 整数型
.参数 x, 小数型
.参数 y, 小数型
.局部变量 tmep, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 W美数组, 整数型, 静态, "0"
.局部变量 W美地址, 整数型, 静态
.局部变量 W美原值, 字节集, 静态
.局部变量 获取中, 逻辑型, 静态
.局部变量 瞬击原值, 小数型, 静态
.如果真 (类型 = 0)
.如果真 (获取中 = 真)
返回 ()
.如果真结束
获取中 = 真
驱动.内存搜索 (“66 0F 7E ?? 48 02 00 00 C7 45 68 00”, tmep, 402653184, 536870912)
清除数组 (W美数组)
.计次循环首 (取数组成员数 (tmep), i)
.如果真 (驱动.读整数 (tmep [i] - 4) = 168)
加入成员 (W美数组, tmep [i] - 8)
.如果真结束
.计次循环尾 ()
调试输出 (W美数组)
.计次循环首 (取数组成员数 (W美数组), i)
.如果真 (取数组成员数 (W美数组) < i)
跳出循环 ()
.如果真结束
.如果真 (W美地址 = 0)
W美地址 = 驱动.申请内存 (500)
驱动.写字节集 (Pid, W美地址, { 199, 69, 104, 0, 98, 84, 41, 96, 139, 117, 64, 139, 94, 24, 138, 3, 60, 88, 117, 27, 138, 67, 1, 60, 65, 117, 20, 199, 134, 64, 2, 0, 0, 242, 183, 105, 62, 199, 134, 68, 2, 0, 0, 233, 192, 215, 64, 131, 5, 100, 0, 238, 3, 1, 97, 195 })
驱动.写整数 (Pid, W美地址 + 49, W美地址 + 100)
W美原值 = 驱动.读字节集 (Pid, W美数组 [i] + 16, 7)
驱动.写字节集 (Pid, W美地址, W美原值)
调试输出 (进制_十到十六 (W美地址))
.如果真结束
.计次循环尾 ()
获取中 = 假
返回 ()
.如果真结束
.如果真 (类型 = 1)
.如果 (W美地址 ≠ 0)
.计次循环首 (取数组成员数 (W美数组), i)
.如果真 (取数组成员数 (W美数组) < i)
跳出循环 ()
.如果真结束
.如果 (驱动.读字节集 (W美数组 [i] + 16, 7) = W美原值)
.如果真 (获取中 = 假)
HOOK_call (W美数组 [i] + 16, W美地址, { 144, 144 })
.如果真结束
.否则
.如果真 (获取中 = 假 且 驱动.读字节集 (W美数组 [i] + 16, 1) ≠ { 232 })
启动线程 (&视角追踪, , )
.如果真结束
.如果结束
.计次循环尾 ()
驱动.写小数 (W美地址 + 33, y)
驱动.写小数 (W美地址 + 43, x)
.否则
.如果真 (获取中 = 假)
启动线程 (&视角追踪, , )
.如果真结束
.如果结束
.如果真结束
.如果真 (类型 = 2)
.如果 (W美地址 ≠ 0)
.计次循环首 (取数组成员数 (W美数组), i)
.如果真 (取数组成员数 (W美数组) < i)
跳出循环 ()
.如果真结束
.如果真 (驱动.读字节集 (Pid, W美数组 [i] + 16, 1) = { 232 })
驱动.写字节集 (Pid, W美数组 [i] + 16, W美原值)
.如果真结束
.计次循环尾 ()
.否则
.如果真 (获取中 = 假)
启动线程 (&视角追踪, , )
.如果真结束
.如果结束
.如果真结束
.如果真 (类型 = 3)
.如果真结束
W美地址 = 0
.子程序 HOOK_call
.参数 HOOK地址, 整数型
.参数 跳到地址, 整数型
.参数 附加字节, 字节集, 可空, 比如nop
.判断开始 (是否为空 (附加字节))
驱动.写字节集 (Pid, HOOK地址, { 232 } + 到字节集 (到整数 (跳到地址 - HOOK地址 - 5)))
.默认
驱动.写字节集 (Pid, HOOK地址, { 232 } + 到字节集 (到整数 (跳到地址 - HOOK地址 - 5)) + 附加字节)
.判断结束
联系我时,请说是在 挂海论坛 上看到的,谢谢! |