[ MOV ] 小游戏过审助手

MakeOver JS代码结构混淆

小游戏过审被拒? 你想对代码做混淆但是发现包体变化巨大, 而且运行起来明显卡顿, 然后你想手动调整代码但是又无从下手, 因为你根本不知道你的修改是否有用, 最后能否过审还是只凭运气, 那么这个工具或许可以帮你解决问题.

关于Js和过审

  • 可以抓取侵权包或者高度相似的包反编, 使用本工具对比他们的结构, 你将很容易把他们变得不同.
  • 在Js中加密图片的正向意义并不大, 与其赛进去一堆垃圾不如加个 隐形水印 , 既能起到保护作用又能改变文件的MD5值.
  • 目前的Js环境根本不存在加密保护/不可逆混淆等手段, 都是在偷换概念, 因为Js代码最终是被直接运行的.
  • 混淆确实可以提高代码的理解难度, 但却使代码臃肿运行卡顿, 随着混淆力度的加深, 卡顿和代码体积将变得更糟糕.

它是什么

  • 它是一个Js/Ts结构自动修改工具, 可使代码结构焕然一新.
  • 它支持的格式: .js | .ts , 支持的平台: macos | windows, 支持的文件: 2.x | 3.x.
  • 它不是单纯的变量名(字符串)替换工具, 语法树结构对比并不关心变量名, 类名, 函数名等.
  • 它不是混淆工具, 可在代码结构处理后进行混淆, 参考: javascript-obfuscator.
  • 它采用AST语法树对Js/Ts代码进行修改, 可以帮你改变80%以上的结构, 而且对运行速度的影响极其微小.
  • 它提供语法结构对比, 让你看到结构相似的代码位置, 即使手动修改也能做到有的放矢, 可帮助你进一步提升审核通过率.

如何使用

  • 支持的命令: rts | mov | sim | dec | upg | obf , 处理编辑器导出的重要文件, 如: assets/main/index.xxxxx.js.
  • 每次处理结果会有差别, 可多次运行得到不同的马甲代码, 并使用sim命令对比从而做出选择.
  • 可使用dec命令还原部分被混淆的代码, 耗时较长且存在破坏代码可能, 但在与侵权代码对比中将非常有用.
  • 可使用upg命令解包小游戏, 从而对比侵权代码结构, 网上有很多关于如何得到wxapkg包的信息.
  • 可使用rts命令批量修改Ts文件结构(文件名/类名/成员变量/成员方法等以及抹掉代码中的字符串信息, 可配置), 支持明确的静态语法分析不支持动态绑定.
  • 可使用mov命令修改Js文件结构, 支持按模块修改,效果更好, 但文件体积会增加, 模块依赖于建时的模块擦除选项, 输出文件大小通过阀值控制.
  • 可使用obf命令对Js文件进行混淆处理, 参数可配置, 并可控制混淆颗粒度, 影响输出文件大小.
    // 解包wxapkg
    > .\mov-win-x64.exe upg wxd1234567890abcdef/25
   
    // 还原被混淆的代码
    > .\mov-win-x64.exe dec input_ob.js

    // 对比两个js文件的代码结构
    > .\mov-win-x64.exe sim input_a.js input_b.js

    // 修改script文件夹内的TS脚本
    > .\mov-win-x64.exe rts assets/script

    // 修改input.js代码结构
    > .\mov-win-x64.exe mov input.js 5
    
    // 混淆Js文件
    > .\mov-win-x64.exe obf input.js 7

小游戏马甲包过审基本操作流程(代码部分)

  1. 抓取线上的侵权包, 可能需要对其进行解密, 使用upg命令解包得到侵权代码.
  2. 根据侵权代码的混淆度, 可尝试使用dec命令反混淆. 使用sim命令与侵权代码进行对比.
  3. 使用rts命令对Ts脚本进行修改(文件名/类名/成员名称), 然后重新构建导出.
  4. 修改Ts脚本之后需要测试游戏功能, 并使用sim命令与侵权代码进行对比.
  5. 使用mov命令对导出的Js进行结构调整(导出时在编辑器中不勾选模块擦除).
  6. 使用sim命令与侵权代码对比, 重复第4-6步骤(对Ts脚本和导出的Js酌情进行手动修改).
  7. 根据自己的代码情况选择适当混淆参数对最终代码进行混淆, 导出发布.

注意手动修改代码的方式:

  • 调整代码结构 (Ts脚本和导出的Js)
  • 改变运行逻辑 (Ts脚本)
  • 函数拆分或合并 (Ts脚本和导出的Js)
  • 注入代码(Ts脚本, 需要与逻辑关联否则会被优化掉)

想要过审, 尤其是商城购买的项目源码, 已经被太多人提审! 手动调整必须到位(尽可能的降低使用mov命令前的相似度), 本工具并不是一键过审, 通过本工具提供的命令组合尽可能帮你将马甲代码过审变得简单. 这只是基本流程欢迎大家补充交流, 我将丰富它的能力.

1赞

支持 Mac 环境 版本吗 另外想问一下 输出后的js 文件是变大了还是变小了?

支持mac环境的,输出后的JS文件大小与源文件结构有关,有些情况文体积会略微增加(低于混淆的体积变化),而有些情况文件体积会减少,它会精简字符串以及优化一些无用代码,对运行速度的影响低于混淆,几乎与原代码一致。

不支持安卓吧?

这个工具适用于JS代码。

MakeOver-1.2.0 版本发布, 请大家及时下载更新

  • 修复解析失败的情况
  • 支持ES5语法
  • 增加dec命令
  • 优化控制台信息

MakeOver-1.3.0 版本发布, 请大家及时下载更新

  • 不破坏顶级/全局对象名称, 支持分包中的JS文件.
  • 增加rts命令, 用于批量修改TS脚本.

rts:

WechatIMG166
WechatIMG164

1赞

支持2.x吗

支持2.x的.

MakeOver-1.3.1 版本发布, 请大家及时下载更新

  • mov命令支持按模块调整代码结构.
  • 增加upg命令解包wxapkg.

导出时不擦除模块结构,看起来像下图这样的, mov命令会按每个模块分别处理.
WechatIMG168

upg命令解包wxapkg
WechatIMG169

想问一下 这个工具 Mac环境下可以运行吗? 第二个这个工具的源码是公开的还是 只是打包后的工具运行文件?

支持Mac环境, 可以正常工作的. 这个工具不开源, 它是一个可执行文件.

MakeOver-1.3.2 版本发布, 请大家及时下载更新

  • 修复vm2动态链接库的兼容问题.

小游戏马甲包过审基本操作流程(代码部分)

  1. 抓取线上的侵权包, 可能需要对其进行解密, 使用upg命令解包得到侵权代码.
    WechatIMG169
  2. 根据侵权代码的混淆度, 可尝试使用dec命令反混淆. 使用sim命令与侵权代码进行对比.
  3. 使用rts命令对TS脚本进行修改(文件名/类名/成员名称), 然后重新构建导出.
    WechatIMG166
  4. 修改TS脚本之后测试游戏功能, 使用sim命令与侵权代码进行对比.
    WechatIMG164
  5. 使用mov命令对导出的js进行结构调整(导出时在编辑器中不勾选模块擦除).
    WechatIMG168
  6. 使用sim命令与侵权代码对比, 重复第3-6步骤(对TS脚本和导出的js酌情进行手动修改).
  7. 根据自己的代码情况选择适当混淆参数对最终代码进行混淆, 提交审核.

注意手动修改代码的方式:

  • 调整代码结构 (TS脚本和导出的js)
  • 改变运行逻辑 (TS脚本)
  • 函数拆分或合并 (TS脚本和导出的js)
  • 注入代码(TS脚本, 需要与逻辑关联否则会被优化掉)

想要过审, 尤其是商城购买的项目源码, 已经被太多人提审! 手动调整必须到位(即使sim相似度已经非常低), 本工具并不是一键过审, 通过本工具提供的命令组合尽可能帮你将马甲代码过审变得简单. 这只是基本流程欢迎大家补充交流, 我将丰富它的能力.

1赞

MakeOver-1.3.3 版本发布, 请大家及时下载更新

  • rts命令兼容Component子类, 不影响已挂载的脚本.

为啥下架了?还打算试一下来着

MakeOver - v1.3.4 版本, 请大家及时下载更新.

  • 重构rts和mov命令

WechatIMG177

MakeOver - v1.3.5 版本, 请大家下载更新.

  • 增加obf命令, 用于对Js文件进行混淆, 参数可配置.
  • 修改mov命令, 颗粒度阀值由文件配置传递改为通过参数传递.

有统计过过审的概率么

为什么我的昵称是q号