TermiNexus
|
b63435d401
|
fix(sockets): probe_railgun.js WS 上行改异步读 Blob(此前 hex 恒为空)
游戏 send 的是 Blob,slice 后 new Uint8Array(Blob) 长度为 0,导致 SEND 行 hex 全空;改为 blob.arrayBuffer() 异步读前 24 字节。
|
2026-10-12 10:21:02 +08:00 |
|
TermiNexus
|
2b95e5de28
|
chore(3DTank): 新增页面内探针的网络转储通道(/__probe__ + probe_railgun.js)
- tools/serve.js: POST /__probe__ 追加写 3DTank/names/probe_railgun.log
- sockets/probe_railgun.js: 电磁炮/武器链路现场探针(组件清单 + 采样 + WS 上行帧),fetch 批量转储,POST 不通自动回落控制台
|
2026-10-12 10:13:32 +08:00 |
|
TermiNexus
|
ae4d4ee055
|
fix(mirror): ws 抓包开关改为 serve.js --ws-hook(不碰 URL),避免 hash 破坏游戏路由
- 实测:URL 里任何 hash(包括 #hook/#nohook)都会让游戏进不去战场(游戏用 location.hash 做路由/状态),所以弃用 hash 开关
- serve.js --ws-hook:服务 HTML 时注入 /ws_hook.js;Start-LocalAndRelay.ps1 加 -Hook 开关;ws_hook.js 支持 localStorage.hornetWsHook=0 临时关闭
- index.html(本地)移除静态 ws_hook 引入
|
2026-10-11 21:43:12 +08:00 |
|
TermiNexus
|
d6758b14e1
|
fix(mirror): ws 抓包降到最小入侵(只包 send + on* 访问器,热路径只拷贝不编码)
- 不再包装 addEventListener(会破坏 removeEventListener 的按引用移除);游戏只用 onopen/onclose/onmessage
- 逐帧 base64 推迟到 __ws_save__(),去掉战斗入口的收发延迟
|
2026-10-11 21:31:16 +08:00 |
|
TermiNexus
|
240892c9b5
|
fix(mirror): ws 抓包改为原型级 hook(不动 window.WebSocket 构造函数),避免被游戏察觉
- 实测替换构造函数会让 WebSocket.toString() 不再是 native code → 进不去战场;改为只包 WebSocket.prototype 的 send / addEventListener / onmessage|onopen|onclose 访问器
- window.WebSocket 的名字/长度/toString/instanceof/静态常量全部保持原生
|
2026-10-11 20:54:38 +08:00 |
|
TermiNexus
|
c021d5c164
|
fix(mirror): ws 抓包 ToBase64 分块降到 8192,远离 apply 实参上限
- String.fromCharCode.apply 会把参数数组整包展开成实参,块过大必爆栈(V8 上限约 6.5 万);原 32768 虽安全但偏高,降到 8192
|
2026-10-11 20:49:41 +08:00 |
|
TermiNexus
|
245e27e192
|
chore(mirror): ws 抓包未启用时也定义 __ws_save__,调用时提示加 #hook
|
2026-10-11 20:43:14 +08:00 |
|
TermiNexus
|
ba56ab9d7c
|
change(mirror): 页面内 ws 抓包改为默认关闭(URL 加 #hook 才启用)
- 之前默认一直挂 window.WebSocket;为避免干扰排查(先排除 SW/hook 因素),改为显式 #hook 才抓;#nohook 仍可强制关
|
2026-10-11 20:14:40 +08:00 |
|
TermiNexus
|
418298e2ec
|
feat(mirror): 页面内 window.WebSocket 抓包(/ws_hook.js),用于与中继转存逐帧对比
- sockets/ws_hook.js:hook window.WebSocket,按收发顺序记录 {d,t,n,b(base64)};__ws_save__() 存到 3DTank/names/,离开页面自动 sendBeacon;#nohook 关闭
- serve.js:根路径提供 /ws_hook.js(no-cache)
- web/index.html:在主脚本之前引入,确保先于游戏创建 WebSocket
|
2026-10-11 20:04:23 +08:00 |
|
TermiNexus
|
90c377ad79
|
feat(3dtank): 本地镜像与 hornet 工具链迁到新版 bundle main.6469b966.js
旧 main.b7114b43.js 已被新构建替换(10,011,039 字节 / 1335 模块),本地镜像整体重切到新版并清掉旧产物;hornet 工具链按 tools/map_symbols.js 生成的新旧符号映射改名后重新打包(3dtank_bundle.js 与 unpacked/hornet_bundle.js 同步)。tools/symbol_map.json(8.9MB 映射产物)与切割解包目录不进库,可用 map_symbols.js / split.js 重新生成。
|
2026-09-17 19:59:40 +08:00 |
|
TermiNexus
|
f1c9d903fa
|
Test Version
|
2026-07-28 01:16:15 +08:00 |
|