为什么要用混淆?
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 同学的反馈