小游戏过审被拒? 你想对代码做混淆但是发现包体变化巨大, 而且运行起来明显卡顿, 然后你想手动调整代码但是又无从下手, 因为你根本不知道你的修改是否有用, 最后能否过审还是只凭运气, 那么这个工具或许可以帮你解决问题.
- 可以抓取侵权包或者高度相似的包反编, 使用本工具对比他们的结构, 你将很容易把他们变得不同.
- 在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 .
- 每次处理结果会有差别, 可多次运行得到不同的马甲代码, 并使用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
- 抓取线上的侵权包, 可能需要对其进行解密, 使用upg命令解包得到侵权代码.
- 根据侵权代码的混淆度, 可尝试使用dec命令反混淆. 使用sim命令与侵权代码进行对比.
- 使用rts命令对Ts脚本进行修改(文件名/类名/成员名称), 然后重新构建导出.
- 修改Ts脚本之后需要测试游戏功能, 并使用sim命令与侵权代码进行对比.
- 使用mov命令对导出的Js进行结构调整(导出时在编辑器中不勾选模块擦除).
- 使用sim命令与侵权代码对比, 重复第4-6步骤(对Ts脚本和导出的Js酌情进行手动修改).
- 根据自己的代码情况选择适当混淆参数对最终代码进行混淆, 导出发布.
注意手动修改代码的方式:
- 调整代码结构 (Ts脚本和导出的Js)
- 改变运行逻辑 (Ts脚本)
- 函数拆分或合并 (Ts脚本和导出的Js)
- 注入代码(Ts脚本, 需要与逻辑关联否则会被优化掉)
想要过审, 尤其是商城购买的项目源码, 已经被太多人提审! 手动调整必须到位(尽可能的降低使用mov命令前的相似度), 本工具并不是一键过审, 通过本工具提供的命令组合尽可能帮你将马甲代码过审变得简单. 这只是基本流程欢迎大家补充交流, 我将丰富它的能力.
注意解包与解密不同, 如果解包失败, 应该先对包进行解密.
// -wxid 微信Appid
// -in 输入文件路径
// -out 输出文件路径
.\wxapkg_decrypt_win.exe -wxid [wxAppid] -in [filePath] -out [savePath]
wxapkg包位置:
C:\Users\xxx\Documents\WeChat Files\Applet\wxbxxxxxxxxxxxxxxd0\xx
- Mac端: (未加密) wxapkg包位置:
/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wx18ded455ed95f695/15
- Android端: (包含模拟器) 自行谷哥吧, 很多.