热血江湖助手 · 分析资料站← 报告总目录助手主页
分区:13_内挂配置逆向源文件:内挂控件ID对照_20261019.md篇幅:8.7 KB收录:2026-10-19 17:10

内挂「墨魂的箱子」控件 ID 对照表

2026-10-19 00:20 实测。进程 YGOnline.exe PID 10152(窗口标题 orzo),CE 32 位附加。
控件池基址 0x03C35758,内挂窗口对象 0x58CA1008(每次启动都变)。

一、结论

能识别,而且是精确识别,不是靠猜图。 靠的是控件对象里的三个字段:

字段偏移含义怎么确认的
页号+0x048该控件属于第几个标签页(0 基,按标签顺序)分组后:值 4 恰好 6 个、值 3 恰好 12 个、值 5 恰好 7+ 个,与截图元素数一一对应
坐标+0x028 X / +0x02C Y / +0x030 宽 / +0x034 高面板内像素坐标顶部 4 按钮横排 X 等距、Y 相同;70~82 一列 X 全 28、Y 步长 20;101~109 是 3×3 网格
名称+0x368 起内联 BIG5控件的悬浮提示原文直接读出来,如「啟動商人之魂。」「勾選後使用神獸時,會自動…」

其余已知字段:+0x000 虚表、+0x004 父对象、+0x00C 池索引、+0x360(byte) check、+0x364(dword) ID。

页号对照:0=攻擊、1=設定、2=恢復、3=輔助、4=回城、5=其他。<br>(0 这一组没被赋页号,混着所有共用控件,见第九、十节。)


二、坐标换算

控件坐标是面板内逻辑坐标,转屏幕像素:

屏幕 x = 0.85 × 控件X(顶部按钮,原点 = 面板左上角)
屏幕 y = 0.85 × 控件Y

实测校验(顶部 4 按钮):控件 X=136/161/186/211 → 屏幕中心 126/152/172/190,误差 ≤2px,按钮宽 24→20.4px 也吻合。

页面内容区(标签栏下方)另有固定偏移,约 +15, +21,因为它的原点是页面容器而不是面板。<br>做像素级标注时这个偏移必须逐页重标一次,别直接套。


三、顶部标题栏(所有页共用,page=0)

屏幕位置ID名称XY宽×高
▶ 播放49啟動內掛丸136124×25
□ 停止50停止內掛丸161124×25
⚙ 齿轮51設定內掛丸186124×25
✕ 关闭52關閉內掛丸211124×25

这四个 ID 是固定的、跨页不变的,名称由控件自己给出,零推测。


四、其他页(page=5,第 6 个标签)

截图第 6 张。7 行纵向单选,行距 20,X 全为 15。

行界面文字勾选 ID坐标 (X,Y)「設定」按钮 ID按钮坐标
1確認賣盒47(15, 33)——
2管理神獸45(15, 53)——
3管理聊天55(15, 73)59(86, 70)
4商人之魂90(15, 93)91(86, 90)
5刺客之魂89(15, 113)113(86, 110)
6束縛之魂155(15, 133)156(86, 130)
7戀人之魂88(15, 153)——
右上拾撿道具57(120, 33)——

证据强度:45→「勾選後使用神獸時…」、55→「勾選後,會自動發出已設定…」、90→「啟動商人之魂。」、89→「啟動刺客之魂。」、88→「啟動戀人之魂。」、57→「勾選後,將自動撿取地上掉…」——6 个是提示原文直接命中;47/155 靠页号+行距定位。

同页其余控件:

ID坐标尺寸推断
152(137, 49)0×0隐藏占位
153(139, 158)13×13右下圆形图像热区
154(139, 133)13×13同上
53(54, 179)18×60底部「儲存設定」
54(125, 179)18×60底部「取消」
53/54 是 18×60 的竖条(比按钮大),实际是热区,不是按钮本体。

五、回城页(page=4,第 5 个标签)

截图第 5 张。6 行,X 全为 16,Y 从 33 到 158、步长 25。

行界面文字ID坐标
1體力恢復道具 [11] 個以下40(16, 33)
2內功恢復道具 [11] 個以下41(16, 58)
3保管箱中沒有空格時42(16, 83)
4有箭時(弓專用)43(16, 108)
5組隊被解散時87(16, 133)
6回歸時結束遊戲44(16, 158)

证据强度:page=4 这一组只有这 6 个,X 全部 = 16,Y 严格 33/58/83/108/133/158,与截图 6 行完全同构,顺序不会错。


六、輔助页(page=3,第 4 个标签)

截图第 4 张。4 列 × 3 行,共 12 格,行优先编号。

列1列2列3列4
行128293031
行232333435
行336373839

坐标:X = 55 / 100 / 145 / 190,Y = 66 / 116 / 166,尺寸全 11×11。<br>名称统一是「輔助武功,或登錄所使用的…」,即 12 格子的悬浮提示。

每格下方的「組隊□」小勾在 page=0 组里(101~109 等),未逐个绑定。

七、恢復页(page=2,第 3 个标签)

截图第 3 张。两组「開 / 關」,2×2 布局。

界面ID坐标状态
體力恢復設定 開18(40, 51)实心 ⊙
體力恢復設定 關19(123, 51)空心 ○
內功恢復設定 開20(40, 144)实心 ⊙
內功恢復設定 關21(123, 144)空心 ○

证据强度:page=2 组只有 4 个真实控件 + 3 个 ID=1 的脏数据,X 两列、Y 两行,与截图两组单选完全同构。<br>开在左、关在右,与截图一致。

滑块(體力恢復速度、內功恢復設定百分比)没有独立控件对象,是自绘的。


八、設定页(頁号 1,但控件落在 page=0 组)

界面ID坐标说明
13 行对话勾选70 ~ 82X=28,Y=112 起每行 +20共 13 个,与 orzo 填的 13 条对话一一对应
每秒重複對話 输入框84(64, 391)对应 .aut 的 0x098(uint16,3~999)
「選擇全部」勾选83(187, 92)推断
底部「儲存設定」85(76, 430)18×60 热区
底部「取消」86(146, 430)18×60 热区

坐标顺序与界面顺序一致:70 是第 1 行(y=112),82 是第 13 行(y=352),不会错位。


九、攻擊页(頁号 0,只确定了结构)

截图第 1、2 张。内容分两块:

  1. 使用方式(攻擊/恢復)、攻擊設定(開/關)、兩条滑块
  2. 12 个格子(攻擊 4、恢復藥 4、回城符 4)

确定的部分:

界面ID坐标备注
格子热区(行1)11 / 12(98,33) / (153,33)提示「在墨魂之箱子中,為登錄的」
格子热区(行1下)159 / 160(105,44) / (163,44)无名称
格子热区(行2)13 / 14(98,56) / (153,56)提示「選擇是否要攻擊。」
3×3 小勾101~109X=43/123/204,Y=81/101/121网格规整
单格热区110(194,57)—

这页没闭合:12 个格子 × 12 个热区,实际只找到 10 个候选,且无法确认哪个格子对应哪个 ID。<br>要闭合得靠点击实测(见第十一节)。


十、工具

已更新的库(tools/rxjh_ctrl.lua)

新增:

M.F_X, M.F_Y, M.F_W, M.F_H   -- 0x028 / 0x02C / 0x030 / 0x034
ctrl.all()      -- 每条现在带 x, y, w, h
ctrl.at(x, y)   -- 按面板内坐标反查控件(容差 2px)
ctrl.nearest(x, y) -- 按最近中心点反查,返回控件 + 距离

用法(CE Lua 控制台):

local chunk = assert(loadfile([[C:\rxlib\rxjh_ctrl.lua]]))
chunk()
for _, c in ipairs(ctrl.all()) do
  print(string.format("%s  %d,%d  %dx%d  %s", tostring(c.id), c.x, c.y, c.w, c.h, tostring(c.name)))
end

清单文件

tools/内挂控件清单_20261019.tsv —— 94 行,字段:<br>页号 / 页面 / ID / X / Y / 宽 / 高 / check / 组 / 对象地址 / 名称


十一、还没闭合的两件事

1. +0x360 不是勾选状态

实测:截图上「確認賣盒 / 管理聊天 / 拾撿道具」是实心,但 +0x360=1 的是 88(戀人) / 89(刺客) / 90(商人) / 91 / 113 / 155 / 156 —— 完全对不上。<br>所以 +0x360 不能用来判断用户在界面上勾了什么,也不能靠写它来改配置。

真正的开关存在 .aut 的 0x074 位图(35 字节)里,orzo 当前开着 [24,25,30,31,32,33,34]。

2. 要 100% 绑定某个界面元素,最快的办法是点一次

流程(我可以自动跑):

  1. 我记录所有控件 +0x360 和 .aut 0x074 的当前值
  2. 你在面板上点一个勾选
  3. 我对比,变的那一项就是答案

这个办法能一次性把 35 位开关位 ↔ 6 个页面所有勾选框的映射全部拉出来。

本页由 Markdown 报告自动转排;如需原始 md,可在原会话工作区取用。