TermiNexus
|
a83f2a5407
|
feat(ws-hook): 控制台实时打印每个 WebSocket 的地址、关闭码与存活时长
|
2026-10-19 22:36:34 +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
|
f1c9d903fa
|
Test Version
|
2026-07-28 01:16:15 +08:00 |
|