← 返回总索引D:\rxjh2025 游戏分析报告(助手挂机逆向定位)2026-09-16-00-24-33\rxjh2025_分析报告.html
D:\rxjh2025 游戏分析报告
《热血江湖》台服改造客户端 · 「助手挂机」模块逆向定位
一、游戏本体概况
| 项目 | 结论 |
| 游戏 | 《热血江湖》(Yulgang / 냉혈강호) MMORPG 客户端,台服(TAIWAN)代码线 |
| 总体积 | 约 15 GB(client 765MB + datas 14GB 资源:Animation/Mesh/Texture/FX/music 等) |
| 主程序 | YGOnline.exe 14.7MB,编译时间戳 2026-04-28(重大改版),旁有 YGOnline.bak 备份(2025-08-29) |
| 图形/引擎 | D3D9 + DirectInput8 + OpenAL/audiere(Kilos.dll 为音频封装),32 位进程 |
| 反外挂 | 内嵌 XIGNCODE3(Wellbia,韩系反作弊:x3.xem / xcorona / xm.exe) |
| 内嵌浏览器 | WebView2(登录/公告页),产生 YGOnline.exe.WebView2 用户数据目录 |
| 启动器 | launcher.exe + launcher.ini([YB_ONLINE] Exec=YGOnline.exe VERSION=642),自动更新逻辑见 Msg.txt |
| 运行环境 | 崩溃报告显示运行于 X99 平台 / Xeon E5-2680 v4 / 32GB RAM / Win10 19041 |
重要发现:这是官方代码线的二次打包版本 —— PE 内残留 Jenkins 构建路径
D:\Jenkins\.jenkins\workspace\TAIWAN\Client\Byulho.cpp、packages\Microsoft.Windows...,
说明是服务方在台服源码/工程上重新编译的定制客户端,官方 UI 资源 + 自研助手系统混合体。
二、「助手挂机」模块定位结果
通过字符串交叉引用扫描,助手挂机(客户端内叫 auto / 自动打猎 系统)代码位于
.text 段 0x00A2C000 – 0x00A4A000 一带(约 120KB),界面层用第三方 Dear ImGui
(0xCBB000 起可见 imgui.ini / imgui_log.txt / SettingsWindows 等特征字符串)叠加渲染,另有传统贴图 UI 两套并存。
1. 核心函数表(已验证的反汇编入口)
| 地址 | 功能 | 依据 |
0x00A3EB90 | .aut 助手配置加载函数 | sprintf("%s\client\%s.aut", 根路径, 0x3BA1910账号名) → fopen → 读入结构体 |
0x00A448D0 | .aut 助手配置保存函数 | 同路径拼接后以写模式打开(模式串 0x1076F44),先 call 0xA3AF80 序列化状态 |
0x00616560 | ini 读封装(缺键自动写回默认值) | 调 GetPrivateProfileIntA/StringA,失败则 WritePrivateProfileStringA 补写 |
0x00616630 | ini 字符串读封装 | GetPrivateProfileStringA + 默认值写入 |
0x00616710 / 0x006167A0 | ini 写封装 ×2 | WritePrivateProfileStringA |
0x00A3AF80 | 助手状态序列化子程序 | 保存函数保存前调用 |
2. 关键反汇编片段(.aut 加载函数 0xA3EB90 开头)
0x00A3EB90: push ebp
0x00A3EB91: mov ebp, esp
0x00A3EB93: sub esp, 0x118
0x00A3EB99: mov eax, dword ptr [0x11f4380] ; /GS 安全cookie
0x00A3EB9E: xor eax, ebp
0x00A3EBA0: mov dword ptr [ebp-4], eax
0x00A3EBD3: push 0x2e20 ; 清零 0x2E20(11808) 字节状态区
0x00A3EBD8: push 0
0x00A3EBDA: mov ecx, dword ptr [ebp-0x108] ; this 指针
0x00A3EBE0: add ecx, 0x564 ; 状态数组偏移 +0x564
0x00A3EBE7: call 0xfaa6a0 ; memset
0x00A3EBEF: movzx edx, byte ptr [0x3ba7c28] ; 当前角色槽位索引(全局)
0x00A3EBF6: imul eax, edx, 0x5c4 ; 每角色结构步长 0x5C4
0x00A3EC38: mov byte ptr [ecx+eax+0x564], 1 ; 初始化启用标志数组
...
0x00A3EC5B: push 0x3ba1910 ; 账号名字符串(全局缓冲)
0x00A3EC60: push 0x1821a70 ; 游戏根目录
0x00A3EC65: push 0x10a29c0 ; "%s\client\%s.aut"
0x00A3EC76: call 0x82c310 ; sprintf
0x00A3EC7E: push 0x106fce0 ; 文件打开模式串
0x00A3EC8A: call 0xfb62a6 ; fopen 封装 → 读配置
3. 模块内字符串引用地图(功能侧写)
| 字符串 | 含义 |
..\datas\interface\DATA\etc\auto_play.bmp / auto_play_on.bmp / auto_stop.bmp / auto_setup.bmp / auto_close.bmp | 挂机「开始/停止/设置/关闭」按钮贴图(0xA2E3C0 起) |
window_auto01~06.bmp、window_auto_dan / window_auto_item / window_auto_migo、window_auto_chat | 挂机设置面板分页:常规/丹药/物品/秘传(migo)/自动喊话 |
auto_subtitle_01~06.bmp、auto_btn_Premuim(.disable) | 分页副标题与会员(Premium)专属按钮——挂机是付费功能 |
auto_user_mark.D2S / auto_pre_mark.D2S | 其他玩家头顶的「挂机中/会员」标记 |
MG,%d,%s,%d,...,%I64d,%d,%d 及 BD/NT/DM 变体 | 上报/日志协议行格式(MAUC_YULGANG 标记) |
mgmac=%c%s%c%s%c%s%c1%c%s%c | 机器码(MAC)拼接格式 —— 与账号绑定的授权校验 |
%d.%d.%d.%d + 192.168.8.(0xA40EB5/0xA40ECA 两处) | IP 解析并匹配内网网段 —— 内网/同IP多开检测逻辑 |
%s.mhslot(0xA3EE86、0xA448A3) | .mhslot 仓库/槽位文件读写(对应 client\*.mhslot 文件) |
pk_log.txt、@@1-1 inex : %d、AddBuffList slot error | 挂机战斗/Buff 调试日志 |
4. 配置文件体系(运行时产物)
| 文件 | 作用 |
client\Default.ini | 助手全局配置:宝石(金刚石/寒玉石)参数、挂机坐标、自动签到/副本点/修炼符领取记录、仇人名单 |
client\<账号>.aut | 每账号助手配置(固定 11812 字节,如 baoma001.aut、benchi003.aut、changcheng005.aut…) |
client\*.mhslot | 槽位/仓库数据(如 26881020.mhslot) |
client\TM加速器\UserConfig.ini | 加速器子模块配置(含挂机坐标、购买/回补规则) |
client\log3.txt / logStatusChange.txt(115MB) / YulgangError_*.dmp | 登录令牌日志(韩文 TOKEN010)、状态开关流水、崩溃转储(9 月已崩 10+ 次) |
三、字符串加密观察
整份 YGOnline.exe 含 18831 条 ASCII 字符串,但 0 条 GBK/Big5/UTF-16 明文中文——
Default.ini 的键名(如「開啟助手掛機」)、ImGui 窗口标题等全部运行时解密(非常量单字节 XOR,静态搜索确认不可见)。
因此本报告定位以「ASCII 引用串 + IAT 调用点 + 结构体访问模式」三角定位。
四、结论
「助手挂机」不是外挂注入,而是编译进客户端的官方定制功能:随台服工程(Jenkins TAIWAN 工作区)一起构建,
与 XIGNCODE3 反作弊共存;带会员(Premium)授权、机器码绑定(mgmac)、内网段检测(192.168.8.*)等运营控制;
配置持久化在 client\<账号>.aut(读 0xA3EB90 / 写 0xA448D0)与 Default.ini。
整个模块代码区间 0xA2C000–0xA4A000,UI 分页覆盖打猎、丹药、物品、自动喊话等。
随附原始数据文件(同目录):
· disasm_aut.txt — .aut 加载/保存函数完整反汇编
· module_map.txt — 助手模块区全部字符串引用地图
· ini_callsites.json / wrapper_callers.json — ini 封装调用点数据
· pe_scan.py / find_ini_calls.py / disasm_ini.py / disasm_aut.py / scan_module.py — 可复跑的分析脚本