js代码混淆工具,在微信小游戏上测试通过

为什么要用混淆?

1.稍稍加高点查看代码的代价,稍微保护下自己的代码
2.混淆代码,有利于审核时,机审检测出来是相同或极其相近的代码,增加审核通过率。

分享个自己写的js代码混淆工具。下载地址在这
https://pan.baidu.com/s/1PVH2IF4uaBgj87xlB3N5zA

脚本配置

1.提取cocos关键字的脚本:cocoskeyword.bat
编辑bat文件,看下里面的内容,主要是下面这两句

  set root=F:\codes\cocos\encrypt\wechatgame\
  ::配置cocos引擎文件的路径
  set cocos=%root%cocos2d-js.e7b63.js

配置成你本地的cocos引擎文件,或者是微信小程序生成出来的项目,里面的cocos文件即可

2.混淆项目关键字的脚本:run.bat
同样编辑bat文件,关键看下面配置

  set root=F:\codes\cocos\encrypt\wechatgame\
  set src=%root%src
  ::配置好项目打包出来的代码路径
  set projectjs=%src%\project.dev.49f83.js

配置下project文件的路径

使用方法

1.按上面配置完之后,直接跑run.bat即可。
2.如果引擎文件有修改的话,可以先跑一次cocoskeyword.bat,以后每次有代码更新,直接跑run.bat即可。

正常按上面的使用即可。无需用到下面的配置


对本工具有兴趣了解的,可以看看下面这部分

进阶:工具配置文件

1.jsencrypt.json 工具的基本配置
2.jskeyword.txt 我在网上找到的一部分js关键字的,防止混淆的时候替换掉用的。
3.quota.txt 在jsencrypt.json里面有配置到的,就是每次运行run.bat时,用来增加防混淆用的,当你有些特殊的内容要防止给混淆掉的时候,先加到这些,再跑run即可。
4.jstemplate.json 这个是跑cocoskeyword.bat之后生成出来的一份cocos的防混淆的关键词。
5.quotafile.json 这个是跑run之后,生成出来的一份代码里的字符串关键词,也是防混淆用的,只有在跑run之后,才会出现。

常见问题

1.外部关键词,像一些缓存关键词,或者是跟服务器交互的字段,或者是模板表之类的外部关键词,请自行以换行的形式加到quota.txt文件里,防止混淆的时候给替换掉
2.内部组合关键词,类似有些关键字,各位可能是通过 “xxx” + "1"这样的。这样工具在提取关键词的时候也是识别不出来的,请自行添加防混淆的关键词。如在quota.txt里面加上 ”xxx1“ ,以防止必要的关键词找不到。

上一下原图跟效果图

上面是原图,下面是效果图

ps:
本工具是基于C#跟python写的,在win10系统下运行通过,放到微信小游戏里也测试通过。拿出来给大家玩玩。有问题我会帮忙看看,希望能在追逐梦想的路上,能给码友们提供一点点帮助。


最新修改(2018-10-29):
1.有的同学喜欢用button绑定点击事件,为了防止点击事件无效,请把方法名加到quota.txt里面
2.增加了wx的接口关键词列表:wxkeyword.txt
3.cocoskeyword.bat里面增加了libs库的配置,用来提取用的库关键词。
工具下载地址已更新:https://pan.baidu.com/s/1PVH2IF4uaBgj87xlB3N5zA
再次感谢 @nmqway 同学的反馈

10赞

混淆后代码文件体积会变大很多么?

看关键词的大小。一般不会增加多少的,只是文本而已。

目前用的一个混淆工具,混淆一下代码大小直接翻倍了:joy:

:grin: 可以试试我这个,要少点东西,还可以在jsencrypt.json,把header改成单个字母,更小

感谢分享,请问一下,混淆后微信小游戏工程报下面这个错怎么解决,两个配置文件都改成对应的目录了

这个是wx接口的方法给混淆了,你看下是哪个接口,然后加到quota.txt里面去,再跑下run即可。

好的,谢谢,微信的加了,但是很多cocos的接口找不到


原文是

非常感谢反馈,这个on是事件的关键词,我检查下为什么没有提取出来。
应该只是部分关键词没有给提出来

解决办法可以在quota.txt再加上on

最新修改(2018-10-29):
1.有的同学喜欢用button绑定点击事件,为了防止点击事件无效,请把方法名加到quota.txt里面
2.增加了wx的接口关键词列表:wxkeyword.txt
3.cocoskeyword.bat里面增加了libs库的配置,用来提取用的库关键词。
工具下载地址已更新:https://pan.baidu.com/s/1PVH2IF4uaBgj87xlB3N5zA
再次感谢 @nmqway 同学的反馈

周末做了测试,发现问题在于我前面的测试用的是构建出来的调试版本。
这次新的版本,我把发布版本都跑一遍,发现没什么问题,就重新把工具完善了一下。

1赞

mark

有调试信息的没问题,没有调试信息的混淆完 微信调试工具启动不起来

请问报了什么错?

请问有没有办法弄个参数不压缩的,好对比代码,好紧凑根据没办法下手

run.bat里面有个 -d 的参数,看下bat文件里的说明,加上之后,导出来的文件是不压缩的

大佬,为撒我用你的工具混淆后,游戏好多地方就出问题了。点击屏幕 武器就没法发射子弹了。

可以在run.bat里面加个-d的参数,或者是用js美化工具美化下,再放到代码里,看看是不是什么重要的代码给混淆掉了。

好的 我再试试 感谢 这个方法可以帮助小游戏审核不哦? 我们小游戏和别人的很像 说代码保护给打回来了

关注一下。后面抽时间研究研究

可以的。这工具是混淆一部分的变量,方法名。而且每次混淆的代码,都是不一样的。
你如果有多个小游戏的时候,建议用不同的前缀。可以减少给审核查出来相同代码的机率。