[已发布][插件] Cocos Creator 构建后 · 代码混淆 3.x+2.x 版 (优惠中)

拖了这么久的版本迭代,这周开始准备慢慢更新了,另外补充个小消息:

》最近抖音拒审,基本上都是

游戏内容同质化

请勿重复提交同质化小游戏

然后,具体就表现在,虽然你换图+改代码+混淆了,但是抖音是人工审核的,
直接就给你截图或者不截图,大概意思就是说游戏内容一样的,不行

目测是最近那个抖音版权新闻的导线,所以最近大家上架抖音可能需要注意是否好改了

各位大佬有啥妙招过审 抖音吗?

Cocos 3.x 版本混淆插件-新版升级

新版本审核中, Cocos 2.x 版本的还在调试修改中

  1. 彻底重构之前的复杂的插件逻辑,优化用户体验
  2. 增强日志记录的功能,增强菜单面板的界面交互
  3. 增强关于混淆参数的介绍和提示,同步增加过滤文件夹和文件的功能参数(支持插件和可执行文件)
  4. 文件选择面板增加双语切换,优化参数测试面板和双语言
  5. 增强可执行逻辑的整体功能逻辑,增加更多的描述和更方便的步骤说明内容和交互
  6. 可执行文件融合 Jenkins 和原混淆逻辑到一个可执行文件里面:
项目文件夹\extensions\插件文件夹\TOOLS-EXE

全平台JS代码混淆工具-发布版-压缩2_6-linux
全平台JS代码混淆工具-发布版-压缩2_6-macos
全平台JS代码混淆工具-发布版-压缩2_6-win.exe

0x1.1 新增-界面功能更新

0x1.2 更完善的参数试验面板更详细的介绍和交互

0x1.3 更强更完善的手动选择文件进行混淆得界面

0x1.4 构建后自动混淆功能增加自定义过滤路径文件夹名称

0x1.4 构建后自动混淆功能增加自定义过滤路径文件夹名称

0x1.5 查看更新后的可执行文件的工具功能

1赞

0x1.6 新版本功能修复-v3.4.12

  • 紧急处理新版本的 Cocos 3.8.x 版本的引擎在启动和非构建状态的编辑配置的模式都会触发 builder:task-changed 的BUG
  • 已彻底修复打开项目卡死编辑器的问题和莫名其妙自动构建的问题
  • 增加并完善 Hooks 功能, 挂载在构建面板上支持开关自动混淆
  • 增加 AI 体验链接,方便使用 AI 进行咨询和体验不明白的问题和逻辑

https://cocos.cpolar.top

顺带报个BUG,好像描述比较多会出现这个情况,Store 会乱码而且更新不了:

为了防止 Cocos Store 里面写的描述过多的情况乱码,在此将大部分之前版本做的内容介绍,移到下方(做个记录):

最新的新版本插件目前运行,已测试 Mac-mini-Intel 芯片实测版本

》对于 Mac 设备(尤其是M系列的新版本)兼容程度不够
可以考虑回退插件到 v2.4.11 或者 v3.4.11 版本

商店链接:

https://store.cocos.com/app/detail/3740

中文介绍

小游戏过审问题

  1. 劝各位做小游戏的朋友,多多注意图片版权问题,最好弄个自己的原创,否则授权的或者自己过审的马甲想要爆款会比较难
  2. 小游戏提审->代码包侵权
  3. 小游戏提审->恶意注册[UI图片没改到位+换图]
  4. 图片不换的话, 改图片文件数据也行,微信和抖音都可以过审,但是抖音人工查询比较多(请注意保护版权信息)
  5. 小游戏提审->内容同质化
  6. 关于 Google Play 和 IOS 应用上架,参考维度有很多因素,请注意自己 IP 干净+无关联+资源的 md5 值比较独立+应用化加密处理(有时候不一定和代码有关)

小游戏过审问题-总结原因:代码改动不到位,手动改动不到位,混淆不到位(单纯的混淆并不能过审)

小游戏过审, 目前已经积累了一些心得, 可以咨询我
QQ 386437237
E-mail 386437237@qq.com

目前[已测试]平台

请注意 Cocos 2.1.3 版本的插件暂不支持 AST 混淆, 仅支持普通 JS-OB 混淆

混淆效果-体验地址

点击查看 Gitee 效果, Gitee 加载不完全, 有些资源不让加载

点击查看 GitHub 效果

Android(安卓) 任何平台 微信小游戏 抖音小游戏 H5 Cocos Creator 2.1.3, 2.3.4, 2.4.5, 2.4.9, 2.4.10 Cocos Creator 3.4.0, 3.5.2, 3.6.0, 3.6.1, 3.7.1, 3.8.5
:white_check_mark::white_check_mark::white_check_mark: cc2.x&&3.x :white_check_mark::white_check_mark::white_check_mark: cc2.x&&3.x :white_check_mark::white_check_mark::white_check_mark: cc2.x&&3.x :white_check_mark::white_check_mark::white_check_mark: cc2.x&&3.x :white_check_mark::white_check_mark::white_check_mark: cc2.x&&3.x :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark::heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark::heavy_check_mark: :heavy_check_mark::heavy_check_mark:

0x1.1 新增-界面功能更新

0x1.2 更完善的参数试验面板更详细的介绍和交互

0x1.3 更强更完善的手动选择文件进行混淆得界面

0x1.4 构建后自动混淆功能增加自定义过滤路径文件夹名称

0x1.5 查看更新后的可执行文件的工具功能

最新 Cocos Creator 3.8.5 也支持使用

引: 感谢皮皮大佬的支持

技术介绍

  1. 采取 AST 不可逆混淆时会完全改变 js 里面所有能改的函数名、变量名、方法名, 所以请谨慎处理, 不然混淆后有些关联代码会报错

想要过审, 混淆前先手动处理好代码结构, 尽可能打乱所有的运行逻辑, 长函数拆成多个短函数执行, 手动注入的废代码结构需要关联上业务逻辑的代码<关键>

  1. 本插件所有代码不加密(有注释)
  2. 也可以自定义一个加密方法(参考我写的cmd文件)
  3. 可混淆类型为 android,wechatgame 、web-mobile 、web-desktop 、bytedance-mini-game 等 5 种混淆方式, 已增加微信小游戏混淆方式, 已增加抖音小游戏混淆方式,目前已支持全平台混淆
  4. 针对每个参数都进行了详细的讲解
  5. 可以在项目设置里面设置混淆的参数
  6. 可以快捷键打开混淆参数设置面板
  7. 在构建的时候, 可以打开混淆面板设置参数
  8. 针对所有设置的混淆参数都做了多语言处理(支持中英文切换)
  9. 可以在项目里面看到保存混淆参数的 Json 文件(run-time)
  10. 可以混淆构建目录下所有的 JSON 文件(仅有小部分场景适用)
  11. 添加 AST (抽象语法树) + MD5 不可逆结构混淆, 增加马甲包过审概率
  12. 使用 AST 保证每次 JS 代码混淆的结果的唯一, 保证混淆后的代码每次都不重复.
  13. 可以手动选择需要混淆的 JS 文件, 并选择需要进行混淆的类型, 然后开启混淆
  14. 添加 2.x 的版本, 2.x 的已测试了三个不同版本的构建 (改写手动选择混淆面板适配 2.x )
  15. 在 2.x 构建后混淆时, 自动启用默认的参数进行混淆, 参数的设置仍旧采取 3.x 的设置规则
  16. 支持 Cocos 2.x 和 Cocos 3.x 全局安装和使用插件
  17. Cocos 2.x 增加一个修改项目内的 UUID 的功能, 可以在插件菜单内修改项目的所有关联的 36 位和 22~23 位的 UUID
  18. 增加更改前备份到插件目录下的 assets_clone/ 的功能
  19. 采取正则匹配来替换对应 UUID , 提高加载速度
  20. Cocos 3.x 内置启动本地 HTML 页面, 可在 Cocos 内调试 JSOB 的参数, 并预览效果, 方便理解
  21. Cocos 3.x 预览窗口支持多开, 支持在浏览器里面打开, 可保存混淆结果到本地
  22. Cocos 3.x 支持一键更改 uuid , 支持开关时混淆时, 可以实时查看 JSON 的值
  23. Cocos 2.x 已支持启动混淆参数调试面板
  24. 新增可执行文件工具, 采取 jsob 的 4.0.2 版本设计, 可以跨编辑器使用, 也可以放桌面当工具使用
  25. 单文件工具采取 pkg 打包的 win 平台的 exe 版本
  26. 单文件默认封包 nodeJs 环境, 一般无需配置环境, 暂时不开源, 仅使用, 可以自定义对应的 jsobParam.json 里面的参数, 用法和插件一样
  27. 支持拖入文件夹或者文件后直接回车, 可以混淆单个 js 文件和混淆文件夹里面所有的 js 文件
  28. 默认混淆后会有备份文件出现, 可自行删除
  29. 备份文件的名称里面有耗时和包体增减大小的记录
  30. 已支持和适配,所有的平台都可以在构建后自动混淆构建目录下所有的代码文件
  31. 构建后自动混淆会跳过引擎代码(防止文件过大)
  32. 支持新增了方便 Jenkins 打包构建的支持的版本(可在命令行控制台带路径参数运行),添加了多种不同的混淆的策略的 JSON 文件
  33. Cocos 3.x 插件重大升级,彻底重构之前的复杂的插件逻辑,优化用户体验
  34. 增强日志记录的功能,增强菜单面板的界面交互
  35. 增强关于混淆参数的介绍和提示,同步增加过滤文件夹和文件的功能参数(支持插件和可执行文件)
  36. 文件选择面板增加双语切换,优化参数测试面板和双语言
  37. 增强可执行逻辑的整体功能逻辑,增加更多的描述和更方便的步骤说明内容和交互
  38. 可执行文件融合 Jenkins 和原混淆逻辑到一个可执行文件里面:
项目文件夹\extensions\插件文件夹\TOOLS-EXE

全平台JS代码混淆工具-发布版-压缩2_6-linux
全平台JS代码混淆工具-发布版-压缩2_6-macos
全平台JS代码混淆工具-发布版-压缩2_6-win.exe

插件安装失败的解决方案

如果提示:

  • 解压失败, 提示安装失败, 需要手动解压时
  • 提示默认 JSON 已丢失

0.1 请注意查看项目文件夹(如下)

请保证解压后的 Cocos 3.x 插件文件目录保持如下
extensions/cc-obfuscated-js

请保证解压后的 Cocos 2.x 插件文件目录保持如下
packages/cc-obfuscated-js

或者是如此 (Cocos Dashboard 命名的规则)

extensions/cc-obfuscated-js

extensions/cc-obfuscated-3_x

extensions/Cocos Creator Code Obfuscation

extensions/Cocos Creator 构建后 · 代码混淆 3.x 版

cc-obfuscated-3_x 是插件的文件夹名称, 请不要修改, 否则就会提示 JSON 已丢失

已支持 Cocos 2.x 和 3.x 全局安装使用插件, 可以从此处下载安装, 也可以用 Cocos Dashboard 去安装(Dashboard 目前只有安装 3.x 的功能)

Cocos 编辑器 > 顶部菜单栏 > 商城 > 下载后点击安装


image.png

0.2 手动解压安装插件的操作步骤(Gif 展示)

0.2.1 解压和安装插件的示意图 1

0.2.2 解压和安装插件的示意图 2

0.2.3 解压和安装插件的示意图(第二种)

就是修改一下压缩包的名称为 cc-obfuscated-3_x.zip , 然后导入插件包


参数配置说明

支持项目构建后自动混淆代码, 目前参数固定采用 cc_obfuscated_js.json 的参数混淆

配置的 JSON 文件位于此处 :>

插件配置: cc-obfuscated-3_x/runtime_Ts/cc_obfuscated_js.json

TOOLS的EXE目录配置: cc-obfuscated-3_x/TOOLS/jsobParam.json

如需修改混淆的配置, 修改此 main.js 里面的 json 数据即可, 参数的示意请参考面板, 或者查看文末的参数详情介绍

痛点解决

  • 可自由选择是否在构建后混淆代码
  • 支持 3.x 构建后自动或者不自动混淆代码
  • 支持微信小游戏和抖音小游戏的代码混淆

目前已测试平台

H5 微信小游戏 抖音小游戏 Android原生 iOS原生 OPPO小游戏 vivo小游戏
:heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

效果预览


使用方法

1. 扫描并启用代码混淆插件

2.1 支持多语言化显示和面板参数提示

2.2 支持在构建面板查看+项目设置面板设置混淆参数 (Alt+S)

2.3.1 实时调节参数, 保存参数到 Json 文件

2.3.2 实时调节参数, 保存参数到 Json 文件

2.3.3 修复 select 属性关联值的问题

2.3.3 修复 select 属性关联值的问题

2.4 具体参数请参考皮皮大佬的解析

3.1 开启或者关闭构建后自动混淆代码的功能

0x3.3 Add AST (抽象语法树) + MD5 执行不可逆混淆

采取以下技术点, 对构建后的 JS 文件的 AST 语法树里面的, 可重命名的部分, 执行 MD5 的不可逆混淆
保证每次混淆产生的结果都不重复, 增强马甲包过审的概率…
md5 + esprima + escodegen + confusion + confuser





3.4 手动选择需要混淆的 JS 文件, 开始混淆


3.5 添加适配 2.x 版本的构建功能(简化版)

3.5.1 升级到 2.x 选择JS文件混淆 (Cocos 2.3.4测试)

3.5.2 升级到 2.x 开始构建-web端 (Cocos 2.4.9测试)

3.5.3 升级到 2.x 开始构建-抖音小游戏 (Cocos 2.4.5测试)

3.5.4 升级到 2.x 开始构建-微信小游戏 (Cocos 2.3.4测试)

3.6.3 内置启动本地 HTML 页面, 可在 Cocos 内调试 JSOB 的参数, 并预览效果, 方便理解

预览窗口支持多开

3.6.4 支持在浏览器里面打开, 可保存混淆结果到本地


3.7.0 支持在命令行里面使用,方便 Jenkins 操作


3.7.1 支持拖入单个js文件回车混淆

在插件目录的 TOOLS 里面可以运行这个 exe 文件
查看混淆前的代码,查看混淆使用的参数文件,开始混淆单个js文件

备份文件里面的, 文件名称的意思解释
encodeStringChinaTest.js.[80.96ms][952.00 bytes]混淆备份.095251.jscc
[80.96ms] 是当前混淆这个文件总计耗时时长
[952.00 bytes] 是混淆后这个文件增加或者减小了多少, 增加是正数反之是负数

3.7.2 拖入文件夹后直接回车混淆

拖入文件夹回车自动递归备份并混淆文件夹内的所有的js文件

3.7.3 简单验证一下混淆后的运行情况

4. 开始构建代码

4.1 微信小游戏混淆演示

4.2 抖音小游戏混淆演示


5. 查看加密的代码文件

6. 查看控制台断点和加密后的效果

7. 关闭混淆功能继续构建

8. 查看未混淆的代码

本插件的目录结构(内置一些个人思路)

└─ZIP:71.4 MB (74,895,360 字节)
└─/extensions/cc-obfuscated-js
└─/packages/cc-obfuscated-js
        │  jsconfig.json
        │  main-panel-manager.js
        │  main.js 
        │  package.json
        │  sceneJs.js
        │  
        ├─i18n
        │      en.js
        │      zh.js
        │      
        ├─lib
        │  │  
        │  └─common
        │      
        ├─node_modules 
        │          
        ├─panel
        │      
        ├─panel_build
        │      custom_builder.js
        │      custom_hooks.js
        │      
        ├─runtime_Ts
        │      cc_obfuscated_js.json
        │      cc_obfuscated_js.json.meta
        └─TOOLS-EXE
        │      jsobParam.json
        │      全平台JS代码混淆工具-发布版-压缩2_6-win.exe
        │      全平台JS代码混淆工具-发布版-压缩2_6-macos
        │      全平台JS代码混淆工具-发布版-压缩2_6-linux
        │      └─obJsFolderTest
        ├─typings
        │      editor-main-util.js
        │      editor.d.ts 
        │      
        └─

鸣谢

  • 感谢皮皮大佬的支持

json-obfuscator

https://obfuscator.io/

联系作者

版权声明

  • 该插件资源中的源代码可商业使用
  • 商业授权范围仅限于在您自行开发的游戏作品中使用
  • 不得进行任何形式的转售、租赁、传播等

后续计划 (免费更新)

  • 优化使用体验
  • 或增或减内容

补充说明

  • 目前的是Beta版本,商用的话请大家酌情考虑
  • 暂未做过各种压测和Bug调测,仅跑通效果
  • 后续功能完善后,价格也会随之提高,感谢支持
  • 如果有发现bug,请联系我,我会尽快修复
  • 感谢各位的支持

购买须知

  • 请各位朋友看后仔细思考,是否符合您的项目或者研究需求,谨慎使用
  • 目前内容相对比较少, 后续才会迭代
  • 因为本产品为付费虚拟商品,一经购买成功概不退款,请在购买谨慎确认购买内容。

补充:分包设置必备知识

👆正确设置和构建操作:

重大消息

为庆祝目前小团队对于代码混淆《过审》这块的策略的重大进展,
为了回馈之前支持过我的兄弟和朋友,特此决定:
1. 之前曾经买过支持过作者的朋友,前 10 名可以获得免费帮过审一次(名额已满)
2. 所有买过插件的朋友,前 50 名可以获得 50 元帮过审 2 次(不过审即可退款)(名额已满)
3. 所有买过插件的朋友,前 100 名可以获得 29.9 元帮过审 1 次(不过审即可退款) 【名额有限,预定从速】

以上内容,仅限于2025年5月30号之前,仅用于微信、小游戏平台帮忙过审,一次周期大概在3小时左右(含调试),名额有限,需要预定名额的朋友,请尽快联系作者预付款直接预定名额

新版本测试

Mac Mini M4 测试混淆逻辑和校验设备码:

新版本MacminiM4芯片测试-29b4f7a60e1f65abdcc3e805641802b
新版本MacMiniM4设备识别码校验9b04598dde7c7b35aec323d70b12c07
image

[内容补充] 设备授权&许可证&设备指纹

注: 目前可以绑定 5 台设备(单机校验的,应该够用了)

目前 Cocos 2.x 和 3.x 插件版本使用的是临时的网络时间授权进行的校验,这个受限于网络和远程的回传时间信息,有时候会服务器 403([错误] 授权验证失败,无法执行混淆操作),所以最好联系作者: 386437237@qq.com 来进行<单机>设备绑定授权使用(永久使用,后续更新记得替换许可证为和设备绑定的版本即可)


[内容补充] 获取独特许可证步骤说明

注: 目前可以绑定 5 台设备(单机校验的,应该够用了)

目前所有的许可证校验方式都是基于硬件识别码进行的,所以生成许可证后,无需进行联网校验,仅会进行单机的校验,需提供给作者的信息有

1. Cocos Store 订单号

订单号可以在此链接获取: https://store-my.cocos.com/buyer/history

订单号格式:STORE 开头的,如下图

2. 设备指纹(设备识别码)

设备指纹,或者叫做设备识别码,是英文字母数字组成的一个很长的,如下图:


3.1 获取到1、2等作者生成许可证后的步骤

注: 目前可以绑定 5 台设备(单机校验的,应该够用了)

生成的许可证内容,替换如下:
主要替换3个地方,storeId、hardwareHash、value 这三个的意思分别是订单号、设备指纹、许可证,请注意,这个设备指纹只是方便自己查看方便,每次校验时是代码读取硬件编码进行的校验


  "许可证": {
    "deviceId": "",
    "storeId": "STORE159f6ec8b6dff",
    "hardwareHash": "a4b4b344e01ec8a28dbdda8e0522bec7a5b0072d1105fbebdfb604753fa10fee",
    "expiryDate": "2025-5-2",
    "_meta": {
      "description": "📝 设备许可证信息",
      "emoji": "🔐",
      "createdAt": "2025-03-31T08:49:32.707Z",
      "status": "valid",
      "lastChecked": "2025-04-07T10:43:29.087Z"
    },
    "value": "85dc9f0075034df10f855330fc0e3a18小有QQ386437237@qq.com2c3966469de9b0d0be4d651d330262140b39f4f0eebe43039915afdef286909f639b24251e5a490a4e9c3ead09bd386507591cc69319b7980a93b063842c536799de607d26a7741c03de8e7655edf7a23e694af396069dd1a4a79c94b0b14febbbf11d0e78124a2e7749f84d21a77280402df0a0a84bb6c200f947e40464e406e34e0664b086a1d4255587da88c37b37e0a3d21e8c69f90e68cc6f7dc6ad9d5ca0be1b4d3250bdc6a43f6921e49a9d79"
  },

3.2 主要替换如下文件内容:

cc_obfuscated_js.json 主要是给混淆插件使用的配置,jsobParam.json 主要是给可执行文件 exe 或者 Mac 版本使用的配置文件内容

Cocos3x项目内:

  1. Cocos3x工程项目\extensions\Cocos Creator Code Obfuscation\runtime_Ts\cc_obfuscated_js.json
  2. Cocos3x工程项目\extensions\Cocos Creator Code Obfuscation\TOOLS-EXE\jsobParam.json

Cocos2x项目内:

  1. Cocos2x工程项目\packages\Cocos Creator Code Obfuscation\runtime_Ts\cc_obfuscated_js.json
  2. Cocos2x工程项目\packages\Cocos Creator Code Obfuscation\TOOLS-EXE\jsobParam.json

3.3 可执行文件目录+打开校验成功的效果

Cocos 3.x 插件更新 v3.4.21 (已测试 Cocos 3.8.6 版本)

  1. 手动选择 .js 或者包含 .js 的文件夹面板增加置顶模式,增加日志提示+优化体验
  2. 手动混淆面板增加单条复制日志和一键复制全部(面板内提示),增加主逻辑和面板通信逻辑消息
  3. 所有打印的日志去除 ANSI 的相关字符,提升 Cocos 编辑器内的体验
  4. 调整可执行文件的耗时逻辑、兼容混淆参数(减少混淆后的文件大小)
  5. 可执行文件增加自检逻辑,如果没检测到对应的配置,即可提示输入许可证并生成新的配置

Cocos 2.x 功能同步 v2.4.21 (已测试 Cocos 2.4.15 版本)

Cocos 3.x 插件更新 v3.4.22 (已测试 Cocos 3.8.6 版本)

1. 增加混淆后自动切换新的随机种子值 seed,保持每次的混淆结果的随机

2. 购买面板新增控制参数实时调整的功能

新增制作的效果视频, 保持分辨率 1912x1440 的前提下,压缩视频音频到极限:
596MB 压缩到 55.3 MB,缩小了 10 倍,使用的是 ffmpeg 的形式进行的处理(GPU比较关键,可以提速)

image

https://store.cocos.com/app/detail/3740

https://www.bilibili.com/video/BV1Mw5bz1Etd/

已加入视频章节分段,方便跳转内容

image

这边继续补充新内容

兄弟们,试看内容已经把我要讲的全部讲了,后续的其实可以忽略:

Cocos3.x小游戏资源分包指南-解决4MB限制问题

Cocos 抖音小游戏混淆后无法检测侧边栏的解决方案

// 检测项:侧边栏复访
// 小游戏必须接入侧边栏复访能力,否则将被平台审核拒绝,请接入该能力后重新上传代码,要求必须使用 tt.navigateToScene 调用。
抖音的这个问题,后续我新版本插件更新会直接解决处理这个问题,另外插件也在逐步更新字符串压缩功能,想保持混淆后的代码和混淆前的大小差不多或者更小点,正在设计中,插件地址:
Cocos Store

Cocos2.x 构建的小游戏资源分包指南->解决4MB限制问题

补录一些辅助的小工具

Cocos 批量读取和修改文件MD5值

Cocos JSC 文件批量加解密工具

你的插件也被盗版上闲鱼了

1赞

:rofl: 没办法,避免不了的,只能慢慢迭代做好体验了,不过新版本稍微好点,都加了许可证校验机器码