# 3DTank 反编译模块职责表 > 本表由 `3DTank\src` 目录列表(PowerShell `Get-ChildItem` 输出)经人工补全职责后整理而来,覆盖 **126 个 webpack 代码模块** + **2 个资源/索引文件**(`index.json`、`resources.json`),共 **128** 行。 > > **`分类` 三档含义**(取自 `3DTank\names\module-graph.json` 的 `Kind`,为权威分类): > - **游戏本体**:本项目 Kotlin/JS 编译产物或自研运行时代码,是逆向分析的主体。 > - **Kotlin生态库**:kotlin-stdlib / kotlinx.serialization / kotlinx.coroutines / atomicfu 等 Kotlin 官方生态的编译产物。 > - **第三方库**:React、Redux、Sentry、qrcode、fflate、Underscore 等已知开源 npm 依赖。 > > **分类计数**:游戏本体 **40** / Kotlin生态库 **21** / 第三方库 **65**(另有 `index.json`、`resources.json` 两个资源/索引文件,不计入三档)。 > > **`需反混淆` 判定规则**:`游戏本体` → **是**(无对应上游源码,需人工反混淆);`Kotlin生态库` / `第三方库` → **否**(已知开源库,可对照上游源码,无需反混淆)。 > > **最后更新原因**:修正 `module_94965.js` 与 `module_96480.js` 两处被标反的职责,并把 `module_94965.js` 的分类由「Kotlin生态库」纠正为「第三方库」(详见文末「修正记录」)。 | 模块 | 文件 | 字节 | 分类 | 需反混淆 | 职责 | |---|---|---|---|---|---| | 806 | module_00806.js | 1651 | 第三方库 | 否 | 库hoist-non-react-statics 库 | | 905 | module_00905.js | 292 | 第三方库 | 否 | 库prop-types 库密钥模块 | | 1510 | module_01510.js | 31684 | 游戏本体 | 是 | 库Kotlin/JS 编译的支付/交易协议处理器模块 | | 1901 | module_01901.js | 12325 | 第三方库 | 否 | 库react-google-recaptcha 的打包产物 | | 3535 | module_03535.js | 2864 | 第三方库 | 否 | 库@preact/signals-react 运行时库的打包产物 | | 3569 | module_03569.js | 141181 | 游戏本体 | 是 | 游戏客户端的输入与坦克预览模块 | | 7426 | module_07426.js | 1709 | Kotlin生态库 | 否 | 工具函数模块,提供了一些通用的异步和 DOM 操作工具 | | 7552 | module_07552.js | 262 | 第三方库 | 否 | 转发实现 | | 7793 | module_07793.js | 532 | 第三方库 | 否 | 实现了一个 CSS 属性名转换工具,具体来说是把 camelCase 的 CSS 属性名转换为 kebab-case(短横线分隔),并处理浏览器厂商前缀的特殊情况。 | | 9345 | module_09345.js | 71188 | 游戏本体 | 是 | A3D 二进制 3D 模型格式 的完整解析器 | | 9539 | module_09539.js | 131066 | Kotlin生态库 | 否 | Kotlin 多平台序列化框架在 JavaScript 平台上的完整运行时实现,提供了类型安全的序列化/反序列化能力 | | 9963 | module_09963.js | 1248 | Kotlin生态库 | 否 | Kotlin <-> React 组件工厂工具模块 | | 10032 | module_10032.js | 1537510 | 游戏本体 | 是 | 游戏客户端核心 Redux 状态管理模块。Redux 架构 | | 10283 | module_10283.js | 93584 | 游戏本体 | 是 | Kotlin/JS 编译后的协议模型注册模块 | | 10849 | module_10849.js | 22279 | Kotlin生态库 | 否 | Kotlin/JS 编译后的 Redux 状态管理框架核心模块 | | 12218 | module_12218.js | 1284 | 第三方库 | 否 | prop-types 库的"空实现"版本 | | 13431 | module_13431.js | 47668 | 游戏本体 | 是 | Kotlin/JS 编译后的游戏客户端启动入口模块,负责整个游戏的初始化、渲染和启动流程。 | | 13532 | module_13532.js | 1936 | 第三方库 | 否 | 实现了一个最短路径算法库(基于 Dijkstra 算法) | | 13754 | module_13754.js | 264 | 第三方库 | 否 | 转发实现 | | 14766 | module_14766.js | 27142 | 第三方库 | 否 | 库Emotion CSS-in-JS | | 15152 | module_15152.js | 250 | 第三方库 | 否 | 转发 | | 15330 | module_15330.js | 2401 | 第三方库 | 否 | QR 码渲染到图像数据的工具模块(来自 qr-code-styling 或类似的 QR 码生成库 | | 15831 | module_15831.js | 1417 | 第三方库 | 否 | QR 码 Canvas 渲染器,依赖模块 15330 提供的底层图像数据转换工具。 | | 16100 | module_16100.js | 58385 | 游戏本体 | 是 | Kotlin/JS 编译后的战斗地图(BattleMap)协议模型注册模块 | | 17259 | module_17259.js | 3719 | 第三方库 | 否 | react-is 库的核心实现 | | 17323 | module_17323.js | 367 | 第三方库 | 否 | 检测字符串中是否包含浏览器厂商前缀。 | | 18334 | module_18334.js | 303651 | 游戏本体 | 是 | 游戏客户端的总装配/依赖注入模块 | | 19074 | module_19074.js | 417 | 第三方库 | 否 | 检测字符串是否为浏览器厂商前缀(vendor prefix) | | 19487 | module_19487.js | 264 | 第三方库 | 否 | 转发 | | 21300 | module_21300.js | 356178 | 游戏本体 | 是 | Kotlin/JS 游戏战斗内 HUD(战斗界面)与用户交互系统 | | 21973 | module_21973.js | 1100 | 第三方库 | 否 | 二维码纠错等级(Error Correction Level)的常量定义与解析模块 | | 24635 | module_24635.js | 27838 | Kotlin生态库 | 否 | Kotlin/JS 二进制序列化/反序列化(Protocol Buffer 风格)编解码框架 | | 24923 | module_24923.js | 38988 | Kotlin生态库 | 否 | CSS-in-JS 样式引擎(类似 styled-components / Emotion / Stitches 的实现),用 Kotlin 编写并编译成 JS。它负责在运行时动态生成、管理和注入 CSS,支持 React 组件样式、主题、媒体查询、动画等。 | | 25377 | module_25377.js | 53968 | 游戏本体 | 是 | 游戏客户端与服务器之间的"通知/事件"协议编解码层,用 Kotlin 编写。它基于模块 24635 的二进制编解码框架,定义了所有服务器→客户端的通知消息类型及其序列化格式。 | | 26482 | module_26482.js | 701 | 游戏本体 | 是 | Service Worker 注册模块 | | 27736 | module_27736.js | 1121 | 第三方库 | 否 | 二维码编码模式识别模块 | | 28485 | module_28485.js | 559 | 第三方库 | 否 | React 开发模式(development build)的入口包装模块 | | 29518 | module_29518.js | 58530 | 第三方库 | 否 | fflate 库的完整实现 | | 29545 | module_29545.js | 339 | 第三方库 | 否 | Promise 支持性检测模块 | | 29554 | module_29554.js | 9920 | 游戏本体 | 是 | 游戏客户端的模型/对象数据加载协议编解码模块 | | 30285 | module_30285.js | 123696 | 第三方库 | 否 | Sentry Browser SDK 5.30.0 的完整打包产物 | | 31509 | module_31509.js | 681 | 第三方库 | 否 | CSS 厂商前缀生成工具 | | 31584 | module_31584.js | 397 | Kotlin生态库 | 否 | 极小的 Kotlin 工具函数模块,导出一个把数字转成 "Mk{number}" 格式字符串的函数 | | 31620 | module_31620.js | 1865 | 第三方库 | 否 | 库二维码编码模式(Mode)的定义与解析模块,是 qrcode npm 包的核心子模块。 | | 31908 | module_31908.js | 79052 | 游戏本体 | 是 | 游戏战斗(Battle)域的协议编解码模块 | | 32088 | module_32088.js | 81589 | 游戏本体 | 是 | Alternativa3D,3D 数学库,用 Kotlin 编写 | | 36659 | module_36659.js | 182712 | 游戏本体 | 是 | 游戏客户端的纹理/资源注册与加载系统 | | 36734 | module_36734.js | 41516 | 游戏本体 | 是 | 游戏客户端的音频系统,用 Kotlin 编写。它基于 Web Audio API 实现了完整的音效播放引擎,包括:音频解码、声道管理、优先级调度、3D 空间音效、音量/静音控制、分组增益 | | 37036 | module_37036.js | 347491 | Kotlin生态库 | 否 | Kotlin/JS 标准库(kotlin-stdlib-js)的运行时核心模块 | | 37504 | module_37504.js | 107055 | 游戏本体 | 是 | 游戏客户端"氏族(Clan)系统"的协议编解码模块,用 Kotlin 编写 | | 38335 | module_38335.js | 857 | 第三方库 | 否 | 库位缓冲区(BitBuffer)实现,用于二维码编码。它按位读写数据,是 qrcode npm 包的核心子模块之一。 | | 40293 | module_40293.js | 26710 | 第三方库 | 否 | 库 react-list ReactList 的完整实现——一个 React 虚拟列表(Virtual List)组件 | | 41164 | module_41164.js | 13469 | 游戏本体 | 是 | 游戏客户端的分析(Analytics)与埋点系统,用 Kotlin 编写。它负责向多个分析平台(Google Analytics、Yandex Metrica、自有分析服务)上报用户行为事件,包括登录、注册、战斗开始、购买、教程进度等。 | | 42920 | module_42920.js | 389 | 第三方库 | 否 | 二维码定位图案(Finder Pattern)位置计算模块 | | 43319 | module_43319.js | 389 | 第三方库 | 否 | 字符串首字母大写的工具函数模块,把输入字符串的第一个字符转为大写,其余保持不变 | | 44740 | module_44740.js | 3169 | 第三方库 | 否 | Sentry Browser SDK 的工具函数模块,提供全局对象获取、UUID 生成、URL 解析、事件消息提取、异常构造、控制台包装、限流时间计算等辅助功能。 | | 44794 | module_44794.js | 1190 | 第三方库 | 否 | 库二维码工具函数模块,提供版本→尺寸转换、码字总数查询、BCH 位数计算、Shift-JIS 编码支持等基础工具。它是 qrcode npm 包的核心子模块。 | | 45555 | module_45555.js | 224856 | 第三方库 | 否 | React DOM 18.3.1 的完整实现——React 的浏览器渲染器 | | 45686 | module_45686.js | 15331 | 游戏本体 | 是 | 游戏客户端的模型注册与空间(Space)加载系统,用 Kotlin 编写。它负责把服务器下发的模型数据注册到客户端的模型注册表中,并管理"空间"(游戏场景/实例)的加载与切换。 | | 47243 | module_47243.js | 534291 | 游戏本体 | 是 | 游戏客户端"面板(Panel)系统"的协议编解码模块,用 Kotlin 编写。它是整个项目中最大的协议模块之一,定义了面板 UI 相关的所有枚举、数据类、编解码器。 | | 48576 | module_48576.js | 1819 | 第三方库 | 否 | 这是 qrcode npm 包的 SVG 渲染器,负责把二维码矩阵数据渲染成 SVG 格式的图片。 | | 50824 | module_50824.js | 11352 | Kotlin生态库 | 否 | 这是虚拟 DOM 构建器(DOM Builder),用 Kotlin 编写。它提供了一套类似 React 的 API,但底层直接操作 DOM 节点,用于动态创建和操作 DOM 元素。 | | 51233 | module_51233.js | 921 | 第三方库 | 否 | 二维码校正图案(Alignment Pattern)位置计算模块,用于计算二维码中所有校正图案的坐标。它是 qrcode npm 包的核心子模块。 | | 51400 | module_51400.js | 555 | 第三方库 | 否 | CSS image-set() 厂商前缀处理工具,为 image-set() 函数生成 WebKit 前缀变体。 | | 51887 | module_51887.js | 2076 | 第三方库 | 否 | 二维码版本(Version)模块,负责版本容量计算、最佳版本选择、版本信息 BCH 编码。它是 qrcode npm 包的核心子模块。 | | 52943 | module_52943.js | 145233 | Kotlin生态库 | 否 | 网页游戏/应用底层工具库,认设备,管键盘,翻译,报错,调用浏览器本地存储,服务管理 | | 54199 | module_54199.js | 40803 | 游戏本体 | 是 | 游戏聊天系统的网络协议编解码模块 | | 55088 | module_55088.js | 148469 | 游戏本体 | 是 | 物理引擎与碰撞检测系统,同样是 Kotlin/JS 编译产物。 | | 55520 | module_55520.js | 903 | 第三方库 | 否 | 里德-所罗门纠错编码器(Reed-Solomon Encoder),是 QR 码(二维码)标准库 qrcode 的一部分。 | | 55920 | module_55920.js | 480 | 第三方库 | 否 | CommonJS 环境检测与模块加载辅助模块 | | 56077 | module_56077.js | 1625 | Kotlin生态库 | 否 | 库Kotlin 协程与 JavaScript Promise 的互操作桥接模块。 | | 57128 | module_57128.js | 30653 | 游戏本体 | 是 | UI 交互与触控/鼠标手势处理模块 | | 57328 | module_57328.js | 911 | 第三方库 | 否 | Web Worker 动态创建与通信工具模块,非常小但很实用。 | | 58309 | module_58309.js | 440 | 第三方库 | 否 | 转发 | | 59131 | module_59131.js | 39876 | Kotlin生态库 | 否 | HTML DOM 构建与属性绑定的 DSL 模块 | | 59411 | module_59411.js | 1480 | 第三方库 | 否 | QR 码生成库的主入口模块(来自 npm 的 qrcode 包),是普通 JavaScript,不是 Kotlin/JS。 | | 60273 | module_60273.js | 529 | 第三方库 | 否 | CSS cross-fade() 前缀自动补全插件,属于 inline-style-prefixer 或类似 CSS 前缀处理库的一部分。 | | 60824 | module_60824.js | 5192 | 第三方库 | 否 | CSS 属性/值处理工具库(来自 inline-style-prefixer 的依赖 css-in-js-utils),普通 JavaScript。 | | 61378 | module_61378.js | 94955 | 游戏本体 | 是 | 游戏世界(World)与实体-组件系统(ECS)的核心模块 | | 61430 | module_61430.js | 115331 | Kotlin生态库 | 否 | Kotlin 序列化框架的 JSON 实现模块(kotlinx.serialization.json),Kotlin/JS 编译产物。 | | 61860 | module_61860.js | 76730 | 游戏本体 | 是 | 网络连接与游戏对象模型的核心模块,Kotlin/JS 编译产物。它把客户端和服务端连接起来,并管理游戏对象的生命周期。 | | 63383 | module_63383.js | 177741 | Kotlin生态库 | 否 | CSS-in-JS 样式系统的核心实现模块,Kotlin/JS 编译产物,是整个游戏 UI 样式的基础。 | | 64280 | module_64280.js | 892 | 第三方库 | 否 | QR 码的位矩阵(BitMatrix)数据结构,是 qrcode 库的底层组件。 | | 64477 | module_64477.js | 961 | 第三方库 | 否 | 里德-所罗门纠错编码的有限域运算模块,是 qrcode 库的底层依赖之一。 | | 65201 | module_65201.js | 1074 | 第三方库 | 否 | QR 码的日文汉字(Kanji)模式编码器,是 qrcode 库的编码模块之一。 | | 66610 | module_66610.js | 298 | 第三方库 | 否 | QR 码版本号校验工具,只有 3 行代码。 | | 67222 | module_67222.js | 8317 | 游戏本体 | 是 | 社交网络登录与账号绑定的网络协议模块 | | 69682 | module_69682.js | 784 | 第三方库 | 否 | QR 码的字节模式(Byte Mode)编码器 | | 70130 | module_70130.js | 293925 | 游戏本体 | 是 | 游戏战斗场景(Battle)的模型注册与初始化模块 | | 70298 | module_70298.js | 2397 | 第三方库 | 否 | QR 码容量查询表,是 qrcode 库的底层数据模块。 | | 71105 | module_71105.js | 372886 | 游戏本体 | 是 | 游戏资源加载系统(Resource Loader) | | 71426 | module_71426.js | 4506 | Kotlin生态库 | 否 | Kotlin 的 atomicfu 原子操作库在 Kotlin/JS 上的实现 | | 72834 | module_72834.js | 16387 | Kotlin生态库 | 否 | Kotlin 多平台二进制缓冲区(ByteBuffer)的 JS 实现 | | 73932 | module_73932.js | 578 | Kotlin生态库 | 否 | Kotlin/JS 的 HTML 工具模块 | | 74897 | module_74897.js | 967 | 第三方库 | 否 | QR 码的数字模式(Numeric Mode)编码器,是 qrcode 库的编码模块之一。 | | 75453 | module_75453.js | 4633 | 第三方库 | 否 | QR 码的编码模式自动选择与优化器,是 qrcode 库的核心调度模块。 | | 76074 | module_76074.js | 1388 | 第三方库 | 否 | Yandex Metrica(俄版 Google Analytics)的集成模块,用于加载分析脚本并暴露事件上报接口。 | | 77249 | module_77249.js | 11807 | 第三方库 | 否 | CSS 前缀自动补全引擎(inline-style-prefixer),是 React 内联样式自动加浏览器前缀的完整实现。 | | 77672 | module_77672.js | 3448 | 第三方库 | 否 | QR 码的掩码图案(Mask Pattern)与惩罚评分系统,是 qrcode 库的核心模块之一。 | | 78231 | module_78231.js | 5302 | 第三方库 | 否 | WebView JavaScript Bridge 的加载与实现模块,用于原生 App(iOS/Android)与网页之间的双向通信。 | | 78931 | module_78931.js | 10138 | 第三方库 | 否 | React 核心库(production 构建),版本 18.3.1。 | | 79763 | module_79763.js | 6714 | 第三方库 | 否 | React Scheduler(调度器),是 React 18 并发渲染的核心模块。 | | 80397 | module_80397.js | 1264 | 第三方库 | 否 | Sentry 性能监控的时钟工具模块,负责跨环境提供统一的高精度时间戳。 | | 80693 | module_80693.js | 1427 | 第三方库 | 否 | QR 码的字母数字模式(Alphanumeric Mode)编码器,是 qrcode 库的编码模块之一。 | | 81886 | module_81886.js | 328 | 第三方库 | 否 | React DOM 客户端入口模块,负责导出 | | 82347 | module_82347.js | 5500016 | 游戏本体 | 是 | 负责注册大厅、车库、商店、部落、战斗结算等几乎所有核心 UI 界面的组件样式与逻辑。 | | 84441 | module_84441.js | 6195 | 第三方库 | 否 | 负责把文本数据编码成 QR 码的模块矩阵。qrcode 库 | | 85183 | module_85183.js | 1176860 | 游戏本体 | 是 | 定义并注册游戏中各种网络协议消息的编解码器(Codec),用于在客户端与服务器之间序列化/反序列化数据。 | | 85196 | module_85196.js | 235678 | 游戏本体 | 是 | 游戏车库(Garage)系统的协议编解码模块,属于同一个坦克对战类游戏。它负责定义和注册与“车库/装备/商店”相关的网络协议消息的二进制编解码器。 | | 85667 | module_85667.js | 82492 | 游戏本体 | 是 | 客户端协议编解码模块 | | 85745 | module_85745.js | 4088 | 游戏本体 | 是 | 资源图片帧动画相关的网络序列化 / 反序列化 | | 87072 | module_87072.js | 3779748 | 游戏本体 | 是 | 战斗系统,底盘与物理系统,战斗模式,物品池和特效系统,空投与补给系统,地图与场景渲染 | | 88693 | module_88693.js | 35157 | 游戏本体 | 是 | 网络协议与数据模型层的实现,主要负责处理客户端与服务器之间关于社交、好友、举报、通知权限等非战斗数据的序列化与反序列化,并管理相关的网络路由和回调。 | | 89613 | module_89613.js | 87646 | Kotlin生态库 | 否 | Kotlin Coroutines (kotlinx.coroutines) 核心基础设施的 JS 移植版 | | 89679 | module_89679.js | 59784 | 游戏本体 | 是 | 集成 Google Play 计费 API | | 89803 | module_89803.js | 87117 | 游戏本体 | 是 | 游戏/应用中用于处理“匹配系统”和“对战大厅”网络通信和数据序列化的核心代码库。 | | 90225 | module_90225.js | 484 | 第三方库 | 否 | BCH 纠错编码计算,qrcode | | 90875 | module_90875.js | 3928 | Kotlin生态库 | 否 | DSL 构建器 / 封装的 React 组件构建工具(内部叫 RBuilder)。 | | 92980 | module_92980.js | 834670 | 游戏本体 | 是 | 使用 WebGL 技术开发的3D 游戏引擎或大型 3D 交互应用的渲染核心模块 | | 94090 | module_94090.js | 422 | Kotlin生态库 | 否 | 属于 React 封装的内部 UI 构建工具 RBuilder。 | | 94965 | module_94965.js | 35109 | 第三方库 | 否 | Underscore.js 1.13.6(原表误标为「ReactHTML 是 RBuilder 体系里的 HTML 标签构建器实例」) | | 96480 | module_96480.js | 1816 | 第三方库 | 否 | inline-style-prefixer 的 transition 前缀插件(原表误标为「Underscore.js 1.13.6」) | | 97556 | module_97556.js | 11368 | Kotlin生态库 | 否 | 颜色处理工具库,封装了颜色对象、RGB、HSV 色彩空间转换、颜色插值、颜色混合、颜色变换。 | | 97675 | module_97675.js | 92159 | 游戏本体 | 是 | WebView JS‑Native 双向通信桥(Bridge) | | 99295 | module_99295.js | 730 | 第三方库 | 否 | BCH 纠错,qrcode | | 99527 | module_99527.js | 11202 | 游戏本体 | 是 | Protobuf媒体编解码器 + 时间周期配置 + 参数校验 | | — | index.json | 130704 | 资源/索引 | 否 | webpack 模块索引/映射文件,非代码模块 | | — | resources.json | 59399 | 资源/索引 | 否 | 游戏资源清单/索引文件,非代码模块 | ## 修正记录 以下三处在原始目录表中被标错,本次已核实并更正(`module-graph.json` 的 `DependsOn` / `Exports` / `Anchors` 未改动;`Kind` 仅按第 3 条纠正了 `94965`): 1. **`module_94965.js`** - 原值:`` `ReactHTML` 是 RBuilder 体系里的HTML 标签构建器实例。专门用于命令式创建普通 HTML 标签(div/span/input 等原生 DOM 元素),和之前的 RBuilder 配套使用。 `` - 新值:`Underscore.js 1.13.6` - 依据:`3DTank/src/module_94965.js:6-30` 为两段 UMD 包裹,导出 `VERSION` / `after` / `all` / `allKeys` / `any` / `assign` / `before` / `bind` / `bindAll` / `chain` / `chunk` / `clone` / `collect` / `compact` / `compose` / `constant` / `contains` / `countBy` / `create` / `debounce` / `defaults` / `defer` 等 Underscore 全量 API(`module-graph.json` 该模块 Anchors 亦为 `byteLength`、`forEach`、`bindAll must be passed function names`、`Bind must be called on a function`、`return this`);全文件无任何 `div` / `span` 标签字面量,可排除 RBuilder HTML 构建器。 2. **`module_96480.js`** - 原值:`库 Underscore.js 1.13.6` - 新值:`inline-style-prefixer 的 transition 前缀插件` - 依据:`3DTank/src/module_96480.js:4-30` 导出 `n.A = function (t, n, i, s)`,对包含 `transitionProperty` 的 CSS 声明做 `-webkit-` / `-moz-` / `-ms-` 浏览器前缀补全(判断 `t.indexOf("Webkit") > -1`、用 `/-moz-|-ms-/` 过滤);`module-graph.json` 该模块 Anchors 为 `transitionProperty` / `WebkitTransitionProperty` / `MozTransitionProperty`,`DependsOn` 为 `19074`(vendor prefix 检测)与 `43319`(首字母大写工具),均为 CSS 前缀处理链路的依赖,可排除 Underscore.js。 3. **`module_94965.js` 的分类**(承接第 1 条) - 原值:`Kotlin生态库` - 新值:`第三方库` - 依据:该模块内容已核实为 Underscore.js 1.13.6(见第 1 条),属已知开源 npm 依赖,与「Kotlin 官方生态的编译产物」这一定义不符。分类计数随之由「游戏本体 40 / Kotlin生态库 22 / 第三方库 64」变为「**40 / 21 / 65**」;`需反混淆` 仍为 `否`(判定规则不变,故该列无变化)。`module-graph.json` 的 `Modules.94965.Kind` 与 `Stats.ByKind` 已同步。