Coder Social home page Coder Social logo

makeover's Introduction

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

关于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 .
  • 每次处理结果会有差别, 可多次运行得到不同的马甲代码, 并使用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. PC端: wxapkg_decrypt_win.exe
// -wxid    微信Appid
// -in      输入文件路径
// -out     输出文件路径
.\wxapkg_decrypt_win.exe -wxid [wxAppid] -in [filePath] -out [savePath]

wxapkg包位置:

C:\Users\xxx\Documents\WeChat Files\Applet\wxbxxxxxxxxxxxxxxd0\xx
  1. Mac端: (未加密) wxapkg包位置:
/Users/xxx/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wx18ded455ed95f695/15
  1. Android端: (包含模拟器) 自行谷哥吧, 很多.

makeover's People

Contributors

halopipe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.