Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .版本 2
- .支持库 spec
- .程序集 窗口程序集_启动窗口
- .子程序 __启动窗口_创建完毕
- ' 在获取模块地址下面加
- GetUworld ()
- GetGname ()
- GetActor ()
- ' 全局变量里有东西 自己打开看
- .子程序 取对象名称, 文本型
- .参数 ID5, 整数型
- .局部变量 名字偏移, 长整数型
- .局部变量 NamePtr, 长整数型
- .局部变量 名字, 长整数型
- .局部变量 IdDiv, 整数型
- .局部变量 Idtemp, 整数型
- .如果真 (ID5 ≤ 0 或 ID5 ≥ 200000)
- 返回 (“”)
- .如果真结束
- ' 名字偏移 = GetUworldAndGNamesAddress (#GNames)
- ' 名字偏移 = 解密数据 (模块地址 + #GNames)
- ' 名字偏移 = 解密数据 (名字偏移)
- 名字偏移 = 读长整数 (pGname读取)
- .如果真 (名字偏移 > 0)
- IdDiv = 到整数 (ID5 ÷ 16384) ' 4000
- Idtemp = 到整数 (ID5 % 16384)
- NamePtr = 读长整数 (名字偏移 + IdDiv × 8)
- 名字 = 读长整数 (NamePtr + 8 × Idtemp)
- 返回 (到文本 (读字节集 (名字 + 24, 1024)))
- .如果真结束
- 返回 (“”)
- .子程序 数据读取, 逻辑型
- .局部变量 世界基址, 长整数型
- .局部变量 Persistent, 长整数型
- .局部变量 Count, 整数型
- .局部变量 初始, 长整数型
- .局部变量 指针, 长整数型
- .局部变量 i, 整数型
- .局部变量 对象表指针, 长整数型
- 世界基址 = 读长整数 (pUworld读取)
- ' 调试输出 (世界基址)
- .如果真 (世界基址 > 0)
- ' 调试输出 (世界基址)
- 取相机控制 (世界基址)
- ' Persistent = 读长整数 (世界基址 + #PersistentLevel)
- 对象表指针 = 读长整数 (pActor读取)
- Count = 读整数型 (对象表指针 + 8)
- 调试输出 (Count)
- .如果真 (Count > 0)
- 初始 = 读长整数 (对象表指针)
- .计次循环首 (Count, i)
- 指针 = 读长整数 (初始 + (i - 1) × 8)
- .如果真 (指针 > 0)
- ID = 读整数型 (指针 + #ObjID)
- .如果真 (取人物角色 (ID)) ' 人物模型
- .如果真 (查询数组 (指针) = 假)
- 加入成员 (玩家数组, 指针)
- .如果真结束
- .如果真结束
- .如果真 (取载具名称 (ID).物品名称 ≠ “”) ' 车辆模型
- .如果真 (查询数组 (指针) = 假)
- 加入成员 (玩家数组, 指针)
- .如果真结束
- .如果真结束
- .如果真 (取对象名称 (ID) = “DroppedItemGroup”) ' 物品数组
- .如果真 (查询数组 (指针) = 假)
- 加入成员 (玩家数组, 指针)
- .如果真结束
- .如果真结束
- .如果真结束
- .计次循环尾 ()
- .如果真结束
- 返回 (真)
- .如果真结束
- .如果真 (世界基址 ≤ 0)
- 重定义数组 (玩家数组, 假, 0)
- .如果真结束
- 返回 (假)
- .子程序 GetUworld
- .局部变量 pUworld, 长整数型
- .局部变量 空白地址, 长整数型
- .局部变量 HOOKcode, 字节集
- .局部变量 调回hook, 字节集
- .局部变量 中转, 长整数型
- .局部变量 目标地址, 长整数型
- .局部变量 要跳转的基址, 长整数型
- pUworld读取 = 模块地址 + 65110173
- pUworld = 模块地址 + 2502544
- ' TslGame.exe+2DA6DB2 - 00 00 - add [rax],al
- ' 7FF7BC276DB2 - 00 00 - add [rax],al
- 空白地址 = 模块地址 + 47870914
- 要跳转的基址 = 模块地址 + 47870929
- 目标地址 = 模块地址 + 2502549
- HOOKcode = { 72, 163, 0, 0, 0, 0, 0, 0, 0, 0, 72, 139, 76, 36, 48 }
- 中转 = 目标地址 - 要跳转的基址 - 5
- ' TslGame.exe+262F95 - 48 33 CC - xor rcx,rsp
- ' TslGame.exe+2DA73D1 - E9 3744B402 - jmp TslGame.exe+58EB80D
- _HookJmp (要跳转的基址, 目标地址)
- ' 调回hook = { 233 } + 到字节集 (中转)
- ' 驱动_写内存字节集 (GetCurrentProcessId (), 取变量数据地址 (调回hook) + 5, )
- HOOKcode = HOOKcode + 调回hook
- 驱动_写内存长整数 (GetCurrentProcessId (), 取变量数据地址 (HOOKcode) + 2, pUworld读取)
- 驱动_强制写入内存 (游戏进程, 空白地址, 取变量数据地址 (HOOKcode), 取字节集长度 (HOOKcode))
- _HookJmp (pUworld, 空白地址)
- ' 调试输出 (读_长整数型 (pUworld读取))
- .子程序 GetGname
- .局部变量 pUGname, 长整数型
- .局部变量 空白地址, 长整数型
- .局部变量 HOOKcode, 字节集
- .局部变量 调回hook, 字节集
- .局部变量 中转, 长整数型
- .局部变量 目标地址, 长整数型
- .局部变量 要跳转的基址, 长整数型
- pGname读取 = 模块地址 + 65110183
- pUGname = 模块地址 + 10510306
- ' TslGame.exe+2DA6DB2 - 00 00 - add [rax],al
- ' 7FF7BC276DB2 - 00 00 - add [rax],al
- 空白地址 = 模块地址 + 47870944
- 要跳转的基址 = 空白地址 + 16
- 目标地址 = pUGname + 6
- HOOKcode = { 72, 163, 0, 0, 0, 0, 0, 0, 0, 0, 72, 139, 208, 72, 99, 197 }
- ' 中转 = 目标地址 - 要跳转的基址 - 5
- ' TslGame.exe+262F95 - 48 33 CC - xor rcx,rsp
- ' TslGame.exe+2DA73D1 - E9 3744B402 - jmp TslGame.exe+58EB80D
- _HookJmp (要跳转的基址, 目标地址)
- ' 调回hook = { 233 } + 到字节集 (中转)
- ' 驱动_写内存字节集 (GetCurrentProcessId (), 取变量数据地址 (调回hook) + 5, )
- HOOKcode = HOOKcode + 调回hook
- 驱动_写内存长整数 (GetCurrentProcessId (), 取变量数据地址 (HOOKcode) + 2, pGname读取)
- 驱动_强制写入内存 (游戏进程, 空白地址, 取变量数据地址 (HOOKcode), 取字节集长度 (HOOKcode))
- _HookJmp (pUGname, 空白地址)
- ' 调试输出 (读_长整数型 (pUworld读取))
- .子程序 GetActor
- .局部变量 pActor, 长整数型
- .局部变量 空白地址, 长整数型
- .局部变量 HOOKcode, 字节集
- .局部变量 调回hook, 字节集
- .局部变量 中转, 长整数型
- .局部变量 目标地址, 长整数型
- .局部变量 要跳转的基址, 长整数型
- pActor读取 = 模块地址 + 65110197
- pActor = 模块地址 + 30909880
- ' TslGame.exe+2DA6DB2 - 00 00 - add [rax],al
- ' 7FF7BC276DB2 - 00 00 - add [rax],al
- 空白地址 = 模块地址 + 47870984
- 要跳转的基址 = 模块地址 + 47871002
- 目标地址 = pActor + 5
- HOOKcode = { 72, 163, 0, 0, 0, 0, 0, 0, 0, 0, 72, 139, 208, 72, 139, 124, 36, 64 }
- ' 中转 = 目标地址 - 要跳转的基址 - 5
- ' TslGame.exe+262F95 - 48 33 CC - xor rcx,rsp
- ' TslGame.exe+2DA73D1 - E9 3744B402 - jmp TslGame.exe+58EB80D
- ' 调回hook = { 233 } + 到字节集 (中转)
- ' 驱动_写内存字节集 (GetCurrentProcessId (), 取变量数据地址 (调回hook) + 5, )
- HOOKcode = HOOKcode + 调回hook
- 驱动_写内存长整数 (GetCurrentProcessId (), 取变量数据地址 (HOOKcode) + 2, pActor读取)
- 驱动_强制写入内存 (游戏进程, 空白地址, 取变量数据地址 (HOOKcode), 取字节集长度 (HOOKcode))
- _HookJmp (要跳转的基址, 目标地址)
- _HookJmp (pActor, 空白地址)
- .子程序 _HookJmp
- .参数 要跳转的基址, 长整数型
- .参数 目标地址, 长整数型
- .局部变量 中转, 长整数型
- .局部变量 old, 整数型
- .局部变量 字节, 字节集
- 中转 = 目标地址 - 要跳转的基址 - 5
- 字节 = { 233, 0, 0, 0, 0 }
- 驱动_写内存整数 (GetCurrentProcessId (), 取变量数据地址 (字节) + 1, 中转)
- 驱动_强制写入内存 (游戏进程, 要跳转的基址, 取变量数据地址 (字节), 取字节集长度 (字节))
Advertisement
Add Comment
Please, Sign In to add comment