从
D:\ProgramFiles\996box\安装目录提取出来的关键信息汇总。 工具 / 方法 / 限制详见 README.md。
| 字段 | 值 |
|---|---|
| 文件大小 | 127,787,504 字节 (~122 MB) |
| FileVersion | 5.1.1 |
| ProductVersion | 5.1.1.0 |
| ProductName | 996传奇盒子 |
| CompanyName | 浙江闲趣互娱网络科技有限公司 |
| LegalCopyright | Copyright © 2026 浙江闲趣互娱网络科技有限公司 |
| InternalName | 996传奇盒子 |
| 语言 | 英语(美国) |
| 内部 Electron | Electron 22.3.4 (Chromium 108, V8 10.8.168.25-electron.0) |
| 数字签名状态 | Valid |
| 签名 CA | DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1 |
| 签名有效期 | 2024-05-31 ~ 2027-06-04 |
| 签名指纹 | E880D7CD1D3F4D4539C0C0DDE856948179A58C1A |
| 证书签发主体 | CN=浙江闲趣互娱网络科技有限公司, O=浙江闲趣互娱网络科技有限公司, L=丽水市, S=浙江省, C=CN |
结论: 合法运营公司、国际代码签名证书(非自签,非黑产工具)。
app.asar 解包后)| 项 | 值 |
|---|---|
package.json name |
996chuanqihezi |
package.json version |
5.1.1 |
package.json coreVersion |
1.9.2 |
package.json main |
src/index.js |
package.json author |
浙江闲趣互娱网络科技有限公司 |
| 打包器 | @electron-forge |
| 字符串加密 (硬编码) | bytenode ^1.3.6 (实际使用自定义预编译 wrapper,详见 README) |
| asar 内容大小 | 81,479,191 字节 (含 node_modules) |
| 解压后文件数 | 353 |
| 明文 JS 文件数 | 14 (含 preload 脚本) |
| HTML 文件数 | 12 |
| 编译字节码文件 (.jsc) | 12 |
| node_modules 包数 | ~50 (axios / ali-oss / sqlite3 / socks-proxy-agent / bytenode / xxtea / crypto-js / etc.) |
src/index.js 83,117 B 主进程入口 (Electron 主控制器,占整个 app 95% 业务逻辑)
src/proxyWindow.js 10,968 B 代理设置窗口
src/spawnLauncher.js 8,543 B 子进程启动器
src/render/mainPreload.js 22,205 B 主窗口 preload (暴露给渲染进程的 IPC 桥)
src/render/loginPreload.js 12,795 B 登录窗口 preload
src/render/activePreload.js 11,816 B 活动子窗口 preload
src/render/unsafePreload.js 11,834 B 高权限子窗口 preload (nodeIntegration=true)
src/render/updaterPreload.js 10,248 B 更新窗口 preload
src/render/messagePreload.js 7,088 B 消息弹窗 preload
src/render/openPreload.js 7,043 B 通用 window.open preload
src/render/xPreload.js 6,499 B X 模式 preload
src/browserRender/*.js ~5,000 B 6 个 BrowserView 子 preload (极简)
src/offline/bvFrame.html 9,165 B BrowserView 框架
src/offline/error.html 8,036 B 错误页
src/offline/frame.html 8,752 B 主框架占位
src/offline/loginOffline.html 8,464 B 离线登录页
src/offline/loginTrojan.html 8,892 B 检测到劫持/防作弊触发页
src/offline/mainProcess.html 1,849 B 主进程占位
src/offline/process.html 2,821 B 加载中页
src/offline/relaunchToDns.html 7,277 B DNS 修复引导
src/offline/setDns.html 443 B DNS 设置
src/offline/titlebar.html 6,374 B 自定义标题栏
src/offline/trojan.html 10,005 B 反劫持页
| 用途 | URL |
|---|---|
| 主 API | https://pc-api.996box.com |
| 主 API (预发) | https://pc-api-pre.996box.com/ |
| 主 API (开发) | https://pc-api-dev.996box.com/ |
| 主 API (开发, http) | http://pc-api-dev.996box.com/ |
| 数据收集 | https://box-collect.xqhuyu.com |
| 数据收集 (开发) | https://box-collect.dev.xqhuyu.com |
| 数据收集 (开发, http) | http://box-collect.dev.xqhuyu.com |
| 测试 JSON | https://pc.996box.com/static/json/test.json |
| 域名兜底获取 | http://120.26.231.18/pc_domain.php (阿里云服务器直连) |
| 用途 | URL |
|---|---|
| 客户端版本文件 | http://cdnwd.dhsf.xqhuyu.com/client/version.dat |
| 客户端 CDN 根 | http://cdnwd.dhsf.xqhuyu.com/client/ |
| 国内版 CDN | http://cdnwd.dhsf.xqhuyu.com/client/996CN/ |
| 包版本(老) | http://static.dhsf.996box.com/box/Package/version_20230111.dat |
| 360 兼容包 | http://static.dhsf.996box.com/box/Package/360compkill64.zip |
| LGm 版本 | https://static.dhsf.996box.com/pcGameConfig/version_LGm.dat |
| 游戏登录器 | https://static.dhsf.996box.com/pcGameConfig/loginGame.exe |
| 用途 | URL |
|---|---|
| 百度 OCPC 转化回传 | https://ocpc.baidu.com/ocpcapi/api/uploadConvertData |
| 360 点睛转化回传 | https://convert.dop.360.cn/uploadWebConvert |
| 996 SDK 事件日志 | https://log.tj.996sdk.com/v1/event |
| 996 官网(带百度 vid) | https://www.996box.com/?bd_vid= |
| 玩家公网 IP 查询 | https://ipinfo.io/ip |
/versionLF.json 客户端版本号
/home/homePage 主页面
/login/account 登录接口
/updater 更新页
| 文件来源 | 值 | 推测用途 |
|---|---|---|
| config.jsc | a3e031d8b98743c69fc98d34f12fef08 |
32 字符 MD5-like,作 SIGN_KEY |
| config.jsc | BE05C86B947A4E20BB51113760768DF2 |
32 字符 UUID,可能作加密 IV |
| config.jsc | BB0AAAC906FC4B7CADB116A213D46689 |
32 字符 UUID |
| config.jsc | 2bacba2daddbaada0bcef1fb4a132edd |
32 字符 MD5-like |
| config.jsc | 25ebf1b2094da4d1b74abf7e575faed4 |
32 字符 MD5-like |
| config.jsc | 735f61ca52b75dc11a264405b331081c |
32 字符 MD5-like |
| bridge/core.jsc | f3c56e7a89af3717b2770e8a4d151a66 |
32 字符 MD5-like,可能 SHA_KEY |
| tools.jsc | ba8449f635c74366a6f038bfe1265de2 |
32 字符 MD5-like |
| config.jsc | yAeOlBTx4JQg |
短字符串密钥 |
| config.jsc | nkj62TR8KjX4 |
短字符串密钥 |
| config.jsc | QdVG |
短字符串密钥 |
| config.jsc | GAjWNTqNpOVx |
短字符串密钥 |
| config.jsc | LQqZE |
短字符串密钥 |
警告: 这些 key 在客户端硬编码,任何人都能拿到。所以本质上没有"安全"可言 — 任何客户端安全机制只能防小白,不能防有心人。 这与"私服盒子"行业生态完全吻合(私服本身就是灰色产业)。
Huorong 火绒
QQPCMgr QQ 电脑管家
说明应用启动时会主动检测这两个进程,推测要么绕过(逃避杀软拦截),要么是互相兼容的检测。
urlCreator.jsc 中的 URL 字符串被作者深度混淆(例如 ֤샞ᘢ尮ӝ 这种是 XOR 加密后的字节序列)。只有运行 urlCreator.createTextUrl(...) 才能解密出真实 URL。
可以从 config.jsc 拿到 5 种环境的明文主域名 (PRO_MAIN_DOMAIN/PRE_MAIN_DOMAIN/DEV_MAIN_DOMAIN/LOCAL_MAIN_DOMAIN/CUSTOM_MAIN_DOMAIN 等),但每个域名的具体值已被混淆,无法在不运行代码的情况下还原。
| 测试环境 | V8 版本 | 结果 |
|---|---|---|
| Node 24.11.1 | V8 12.x | ❌ cachedDataRejected |
| Node 18.20.4 (V8 10.2) | V8 10.2 | ❌ cachedDataRejected |
| Electron 22.3.4 (V8 10.8.168.25-electron.0) | 完全匹配 996box V8 | ❌ 仍 rejected |
| bytenode 1.3.6 + Electron 22 | 完全匹配 | ❌ 仍 rejected |
根因:
0xa4 0x05 不是 bytenode 标准格式(标准 bytenode 1.5+ 写 0xa9, 1.3.x 直接写无 wrapper)。说明作者用 bytenode 编译后,自己用脚本加了一层 wrapper,或者用了 bytenode 的 fork。cachedDataRejected)而不是"软错"的方式,使得热补丁/重新编译是唯一出路。可能的解决方案 (未尝试, 工作量极大):
ScriptData::Get 函数绕过验证urlCreator.createTextUrl 函数,动态调出来 — 最实用D:\传奇\996box-decompiled\
├── README.md 本目录说明
├── SUMMARY.md 本文件 (汇总提取的高价值信息)
├── src-app/ 解包后的 app.asar 完整内容 (含 node_modules)
│ ├── package.json
│ ├── src/
│ │ ├── index.js 明文主入口
│ │ ├── proxyWindow.js
│ │ ├── spawnLauncher.js
│ │ ├── render/ 8 个 preload 脚本
│ │ ├── browserRender/ 6 个 BrowserView preload
│ │ ├── offline/ 12 个离线兜底 HTML
│ │ ├── localpages/ 内置 React 静态资源 (aliplayer/yidun 等)
│ │ ├── assets/ 图标 + axios.min.js + crypto-js.min.js
│ │ ├── libs/ [字节码] 核心库
│ │ │ ├── urlCreator.jsc [字节码] 远程 URL 生成器 (字符串混淆)
│ │ │ ├── request.jsc [字节码] HTTP 封装
│ │ │ ├── encrypt.jsc [字节码] 加密/编码
│ │ │ ├── tools.jsc [字节码] 工具函数集
│ │ │ ├── Buryingpoint.jsc [字节码] 埋点 SDK
│ │ │ └── titlebarConfig.jsc [字节码] 标题栏配置
│ │ ├── bridge/ [字节码] 主/登录/更新/通用 IPC 桥
│ │ │ ├── core.jsc
│ │ │ ├── main.jsc
│ │ │ ├── common.jsc
│ │ │ └── server.jsc
│ │ ├── static/ [字节码] 静态配置 / 备注
│ │ │ ├── config.jsc [字节码] ★ 主配置文件,字符串明文
│ │ │ └── remark.jsc
│ │ ├── workers/ [字节码] Web Worker
│ │ │ └── dbWorker.jsc
│ │ ├── message.html 自定义消息弹窗
│ │ ├── xmode.html X 模式页
│ │ └── versionLF.json
│ └── node_modules/ ~50 个 npm 依赖
├── jsc-extract/ 反编译 .jsc 的所有产出
│ ├── extract-strings.js 字符串提取脚本
│ ├── probe-*.js 各种 V8 加载实验脚本
│ └── strings/ 13 个 .jsc 的字符串提取结果
│ ├── src__libs__urlCreator.md
│ ├── src__libs__Buryingpoint.md
│ ├── src__libs__encrypt.md
│ ├── src__libs__request.md
│ ├── src__libs__titlebarConfig.md
│ ├── src__libs__tools.md
│ ├── src__bridge__core.md
│ ├── src__bridge__main.md
│ ├── src__bridge__common.md
│ ├── src__bridge__server.md
│ ├── src__static__config.md ★ 包含 16 个真实 URL + 8 个 key
│ ├── src__static__remark.md
│ └── src__workers__dbWorker.md
├── tools/ 反编译用的辅助工具
│ ├── node18/ Node 18.20.4 (V8 10.2)
│ └── electron22/ Electron 22.3.4 (V8 10.8)
└── package.json / node_modules/ 装着 bytenode / v8-compile-cache (实验用)
urlCreator 真实 URL: 在 996box 主进程 attach V8 Inspector,
hook urlCreator.createTextUrl 函数, 直接打印返回值。
frida-electron 或 V8 Inspector Protocollocalpages/aliplayer-min.js 实际使用: 那是阿里云播放器 SDK,可能用于游戏内视频/直播集成。a3e031d8... 当 SHA_KEY 试一下 pc-api.996box.com 的请求签名,看是否对得上 — 可判定 API 服务端校验是否安全。