小游戏加固-unity
功能介绍
js代码控制流混淆
打乱函数执行流程,结合不透明表达式,引入多余控制流,插入无用代码、函数,同时进行扁平化处理,使得所有程序基本块看起来不能区分执行先后顺序,使JS代码可读性变差,进而达到防止代码被静态分析的目的。。
js禁止调试
基于调试器特征,易盾在被保护的JS代码内插入调试检测代码,一旦发现调试行为,将会阻止被调试的JS继续运行。
高强度js禁止调试
对于破解调试比较频繁的客户,可以配置高强度js禁止调试。
指定字符串加密
将代码中使用的字符串进行加密处理,运行时动态解密,防止攻击者直接获取、使用这些明文的字符串信息,增加分析难度。
域名锁定
将域名或子域名以规则形式写入代码中,在程序运行时,动态获取当前代码加载域名是否是预设定的来控制代码是否执行,防止代码盗用。
高强度字符串加密
个别游戏需要对全量的字符串加密,脚本内默认的加密为50%,开启后会将字符串加密的百分比调整到100%。
unity引擎资源加密
小游戏资源保护
开启此配置则会进行资源加密的功能。
unityjs的ab资源加密
开启后,会对webgl目录下的符合格式的ab资源进行加密。
unityjs的wasm资源加密
开启后,会对当前目录下的wasmcode目录内的webgl.wasm.code.unityweb.wasm.br文件进行加固。
webdata加密
webdata为untiy的首包资源文件,webgl.data.unityweb.bin.txt,首包内包含静态资源文件,metadata文件,以及ab资源文件,开启此配置后如果配置有unityjs的ab资源加密,则会直接对内部的ab资源进行加密。
对首包资源内静态资源进行加密
开启后,会对webdata首包资源内的静态资源文件进行加固。
对首包资源内metadata进行加密
开启后,会对webdata首包资源内的global-metadata.dat文件进行加固。
unity内部缓存加密
开启后,会对web游戏的缓存进行加密,运行时进行解密。
wasm分包
支持wasm分包的场景。wasm分包会对wasm文件进行拆分,拆分成wasmcode与wasmcode1等多个文件夹。
使用说明
该加固工具为jar包文件,适用于Windows、Linux以及Mac系统,以下均以Windows环境下描述,其他系统环境使用方法类似。下载地址点击下载。
使用方式
注意:加固项由易盾后台进行配置,请联系易盾技术支持人员。
命令行模式(注意,第一次使用需要配置config.ini文件)
- 命令行模式参数
java -jar NHPProtect.jar -h5protect -h5type wx -yunconfig -input xxx.zip
ps:zip 内需要包含符号表文件。
- 参数说明如下:
参数 | 说明 |
---|---|
-yunconfig | 必填项,表示自动从易盾后台获取加固参数,加固配置已经在后台部署,可以根据实际情况调整 。 |
-h5protect | 必填项,表示保护h5文件 |
-input | 必填项,参数后面跟待加固的文件的绝对路径 |
-output | 默认加固后的文件输出在原文件同路径,-output参数可以指定加固后文件的输出路径和文件名,示例:java -jar NHPProtect.jar -yunconfig -h5protect -h5type wx -output E:\enc\test_enc.zip -input E:\yiduntest\test.zip |
-h5type | 可选参数,如果不输入 -h5type,默认是web游戏 wx: 微信小游戏、tt: 头条、ks: 抖音、qq : qq、oppo : oppo、vivo : vivo、mt : 美团 |
config.ini文件配置说明
默认config.ini必须要跟NHPProtect.jar在同一目录下,如果需要指定config文件,可以执行-config 命令参数来处理:
java -jar NHPProtect.jar -h5protect -h5type wx -config E:\\Desktop\\test\\config.ini -input E:\\yiduntest\\test.zip
设置appkey
用户需要将appkey填写在该配置文件中,格式如下所示。appkey请在官网登录账号后加固服务-服务管理获取。
[appkey]
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx