展馆互动程序控制协议解析
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-rekorcwh--unity-proto-parse.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-rekorcwh/unity-proto-parse。– 从 Unity 生成产物程序集静态还原 UDP/串口控制指令字典,让集中调度系统统一接管无源码的互动程序。覆盖 .NET 元数据解析、.NET 中间语言分析、哈希算法分发还原。零运行、零抓包,100% 静态还原命令字典。已接入云端 X402 按次付费服务。 输入:Unity 产物程序集文件(DLL/exe) 输出:控制指令字典(命令码 → 动作/参数说明) 适用场景:只有 exe 没有源码、却要接入集中调度的展馆项目
阅读全文 (展开查看完整说明)
概述
展馆互动程序 · 控制协议解析
接手了别人做的 Unity 互动程序,只有 exe 没有源码,却要接入展馆集中调度系统统一接管?
不用抓包、不用跑程序——只要拿到程序集文件,静态还原出"发什么指令触发什么动作"的命令字典。
价格
¥4.9 / 次(SkillHub Pay Skill,按次付费)
它解决什么问题
- 国内展览圈极度细分但刚需的能力:很多公司接手了别人做的互动程序,却没法用集中调度系统(中央控制器)统一接管。客户单都很贵,本技能是补齐这一环。
- 零运行解析:纯静态解析程序集的 .NET 元数据 + .NET 中间语言,无需运行程序、无需抓包。
- 自动定位分发方法:按方法名启发式 + 哈希分发模式扫描,自动找到命令分发入口(不硬编码)。
- 命令字典重建:还原
命令关键字 → 哈希算法 → 处理函数映射,并自校验(哈希对得上才认)。 - 集中调度就绪产出:
--json直接产出机器可读命令字典,可喂给调度系统配置。
适用场景
- 接手了别人交付的 Unity 互动程序,需要接入自己的中控系统
- 展馆集成商反向还原控制协议
- 没有源码对接集中调度的应急场景
- 多厂商设备统一调度(每个厂商都来一次本技能)
- 控制协议审计(看程序到底接收哪些指令)
云端服务调用(SkillHub X402,推荐)
本技能已接入统一 X402 云端网关,无需本地 Python:上传 Assembly-CSharp.dll,云端完成协议解析:
# 1) 发起调用
POST https://czqlooi-d8ghvqslf8ca855ee-1470936211.ap-shanghai.app.tcloudbase.com/pay-gateway/unity-proto-parse
body: {"dll_b64": "<Assembly-CSharp.dll 的 base64,≤50MB>"}
# 2) 收到 HTTP 402 → 调用 weixinpay_pay 完成微信支付(¥4.9/次)
# 3) 携带 X-Out-Trade-No 重试 → HTTP 200
# 响应含解析结果 JSON:receive_method / commands(指令字典)/ port_candidates / send_sites- dll 内容仅用于内存解析,云端不落盘不转售。
- 下方「3 步出命令字典」为本地执行方式(自备环境时可用),云端调用优先。
3 步出命令字典
# 1) 提取命令字典(程序集路径必填)
python scripts/extract_protocol.py "X:/程序名_Data/Managed/Assembly-CSharp.dll"
# 2) 想要机器可读格式(调度系统集成用)
python scripts/extract_protocol.py "X:/.../Assembly-CSharp.dll" --json > commands.json
# 3) 把提取结果填入 verify_protocol.py 的 COMMANDS,做哈希自校验 + 报文查询
python scripts/verify_protocol.py # 校验全部命令
python scripts/verify_protocol.py hash page1 # 算任意字符串的哈希
python scripts/verify_protocol.py lookup page1 # 查某报文对应的处理函数你会得到什么
commands.json:机器可读的命令字典(喂调度系统配置)- 接收命令字典:
命令关键字 → 哈希算法 → 处理函数三层映射 - 发送侧侦察 + 端口扫描:找出程序对外下发的命令串、监听/连接端口候选
- 哈希自校验:所有命令哈希一致校验通过才认
verify_protocol.py调度查询模板:填入提取的命令后做hash/lookupCLI
脚本清单
| 脚本 | 作用 |
|---|---|
scripts/extract_protocol.py | 核心提取器:元数据解析 + 中间语言分析 + 自动定位分发方法 + 重建命令字典。仅依赖标准库。 |
scripts/verify_protocol.py | 校验器/调度查询模板:填入提取的命令后做哈希自校验,并提供 hash/lookup CLI。 |
references/methodology.md | 方法论:C# 字符串 switch 如何生成成哈希算法 + switch、GBK 编码陷阱、真实案例、局限应对。 |
前置依赖
- Python 3.7+(仅标准库
struct/json,无需 pip 安装) - 目标程序的程序集文件(生成后位于
<程序名>_Data/Managed/,编辑器内生成位于Build/<程序名>_Data/Managed/)
产出示例(实测案例:某规划展览馆 A 区展项)
接收命令字典:
page1 GotoPage
page3_1 PrevPage page3_2 NextPage
page3_up ScrollUp page3_down ScrollDown
pause PauseVideo rewind RewindVideo
端口候选: 6969 (UDPManager.ThreadRecvive)→ 调度系统向 程序IP:6969 发一条 GBK 编码的 page1,程序即翻到第一页。18 条命令哈希全部校验通过。
套装搭配
- unity-dependency-config:先处理依赖组件再解析(避免被依赖校验拦截)
- unity-batch-build:批量解析 17 个子程序的命令字典,统一调度
- unity-headless-pack:生成产物后再解析控制指令,形成"交付 + 可操控"闭环
风险逆转
- "假设用了不同分发模式":本技能假设目标用哈希算法(32位) 字符串哈希 + switch 做命令分发(Unity 网络最常见)。若用 JSON/TCP/直接
if/else,接收侧可能重建不全——但发送侧侦察与端口扫描仍有效,可结合methodology.md手动补全或抓包。 - "找不到程序集":确认路径指向
Assembly-CSharp.dll而非Assembly-CSharp-firstpass.dll等。 - "调度系统下发指令无响应":编码问题——收包常按
Encoding.Default(中文 Windows = GBK)解码,调度系统下发务必用 GBK 编码,勿用 UTF-8。 - "解析后命令不全":用
--json输出所有候选命令,人工核查;本技能只输出"哈希自校验通过"的命令,未通过的不列。
付费使用说明(X402 协议)
本技能为 SkillHub Pay Skill,按调用量计费。服务在收到调用请求且未匹配到有效支付凭证时,返回 HTTP 402(Payment Required)并携带 X402 支付触发标识;Agent 完成支付后携带原订单号再次请求,即可获得技能执行结果。
前置检查
- 调用方已检查 weixinpay 插件是否安装并启用(微信支付 AI 专属卡能力依赖此插件;未安装时无法弹出支付授权)。
- 调用方已完成 SkillHub 账号认证与支付绑定。
- Python 3.7+ 已安装(脚本仅依赖标准库
struct/json)。 - 目标程序集文件存在:
{程序名}_Data/Managed/Assembly-CSharp.dll(生成后)或Build/{程序名}_Data/Managed/Assembly-CSharp.dll(编辑器内)。 - 调用方拥有对该程序集进行静态解析的合法权利(含源代码转让/委托交付合同)。
支付触发
- 首次调用时,服务返回 HTTP 402,并附带:
- 响应头
WeixinPay-Required: true - 响应头
X-Out-Trade-No: <订单号> - 响应体字段
payment_code(与payUrl同值)
- 响应头
- Agent 识别
WeixinPay-Required: true后,调用weixinpay_pay插件并传入payment_code。 - 支付完成后,在原请求上增加请求头
X-Out-Trade-No: <订单号>再次调用,服务校验支付凭证后执行技能并返回结果。
重试机制
- 网络类瞬时失败(连接超时、DNS 失败、支付网关 5xx)自动重试最多 3 次,退避 1s/2s/4s。
- 同一
X-Out-Trade-No可多次重试查询支付状态,不重复创建订单、不重复扣费。 - 逻辑类失败(参数非法、程序集不存在、哈希校验失败)直接返回错误,不重试。
异常处理
- 未支付或支付未完成:服务继续返回 402。
- 网络类失败:按退避策略自动重试(最多 3 次,1s/2s/4s)。
- 参数非法 / 前置检查不通过 / 配置不完整 / 技能执行失败:返回对应 4xx/5xx,不扣费。
版权与许可
- 版权所有 © 2026 展厅多媒体交付。本技能(含 SKILL.md 提示词、脚本与生成模板)受著作权保护。
- 许可:仅限 SkillHub 付费用户依据平台协议使用;禁止反编译、去除水印、转售、再分发或用于训练竞品。
- 生成产物默认植入 SkillHub 订单号水印,用于溯源与侵权追责。
- 违规使用将依法追究法律责任。