鸿蒙游戏加固—团结引擎

2024.09.22 19:40:42

    工具下载

    功能介绍

    引擎保护

    易盾团结加固保护方案,默认保护引擎so文件:libil2cpp.so文件,通过易盾独创的so加壳方案,兼容鸿蒙系统的前提下,极大的提高so文件的保护强度。

    global-metadata.dat保护方案

    易盾团结引擎加固方案默认加密global-metadata.dat,防止Il2cppDumper等破解工具。

    dll保护方案

    易盾团结引擎支持对于dll主流热更框架Hybrld、ILRuntime的保护,包括dll的整体加密、dll函数加密等高强度的保护方案。

    lua保护方案

    易盾团结引擎保护支持对于 以xlua、tolua为代表的lua热更框架的保护,包括对于lua源码、luac等形式的加密保护

    ab资源加密

    ab资源作为团结引擎游戏中的核心资源,将所有的资源形式打包成了UnityFS的格式,部分资源的暴露可能带来资源被窃取,被修改,以及游戏内存在剧透的风险。为了防止对于资源的分析以及拷贝,易盾提供了ab资源的加密,并且边运行边解密,有需要可以在后台配置 ab 加密功能。

    abc文件保护

    易盾团结引擎保护支持对于HAP包中的abc文件保护,对于关键的类进行了混淆处理保护;

    使用说明

    该加固工具为jar包文件,适用于Windows、Linux以及Mac系统,以下均以Windows环境下描述,其他系统环境使用方法类似。下载地址点击下载

    使用方式

    注意:加固项由易盾后台进行配置,请联系易盾技术支持人员。

    命令行模式(注意,第一次使用需要配置config.ini文件)

    1. 命令行模式参数
    java -jar NHPProtect.jar -yunconfig -harmony  -hapsign -input E:\\yiduntest\\test.hap
    
    1. 参数说明如下:
    参数 说明
    -yunconfig 必填项,表示自动从易盾后台获取加固参数,加固配置已经在后台部署,可以根据实际情况调整 。
    -harmony 必填项,标记鸿蒙平台
    -input 必填项,参数后面跟待加固文件的绝对路径,支持.hap或者.app
    -hapsign 选填项,表示加固后对包进行签名,需要配置 config 内签名参数
    -output 默认加固后的文件输出在原文件同路径,-output参数可以指定加固后文件的输出路径和文件名,示例:java -jar NHPProtect.jar -yunconfig -harmony -hapsign -output E:\enc\test_enc -input E:\yiduntest\test.hap

    config.ini文件配置说明

    默认config.ini必须要跟NHPProtect.jar在同一目录下,如果需要指定config文件,可以执行-config 命令参数来处理:

    java -jar NHPProtect.jar -yunconfig -harmony -hapsign -config E:\\Desktop\\test\\config.ini -input E:\\yiduntest\\test.hap
    

    config的功能主要有以下三点:

    设置appkey

    用户需要将appkey填写在该配置文件中,格式如下所示。appkey请在官网登录账号后加固服务-服务管理获取。

    [appkey]
    
    key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    配置签名相关信息

    注:签名请加上-hapsign参数。

    java -jar NHPProtect.jar -yunconfig -harmony -hapsign -input E:\\yiduntest\\test.hap
    

    config.ini中配置如下:

    [hapsign]
    
    keystoreFile=C:\\test\\haptest.p12
    
    keystorePwd=xxxxx
    
    keyAlias=xxxxx
    
    keyPwd=xxxxxx
    
    appCertFile=C:\\test\\haptest.cer
    
    profileFile=C:\\test\\test.p7b
    
    mode=localSign
    
    signAlg=SHA256withECDSA
    

    签名参数说明如下:

    参数 说明
    keystoreFile 密钥库文件,JKS或P12格式,使用绝对路径表示
    keystorePwd 密钥库口令
    keyAlias 签名别名
    keyPwd 密钥口令
    appCertFile 应用签名证书文件(证书链,顺序为实体证书-中间CA证书-根证书),使用绝对路径表示
    profileFile 签名后的Provision Profile文件名,使用绝对路径表示
    mode 签名模式,必填项,包括localSign,remoteSign,remoteResign
    signAlg 签名算法,根据实际签名填写

    单独AB资源加密

    java -jar NHPProtect.jar -SingleAstEnc2 -input E:\\yiduntest\\test.zip
    

    ps:只有包体有 ab 加密功能的配置才可以解密单独加密的资源。

    安全和使用体验

    建议对线上历史未加固包体的代码和资源进行修改后再加固,以防历史包体被用于分析业务逻辑。

    更新和支持

    Jar工具会定期进行新版本检测,客户端网络正常的情况下触发更新时会自动升级到最新版本。也可手动通过更新命令进行升级。示例:

    Java -jar NHPProtect.jar -update
    

    也可以通过config 内的增加如下配置来设置加固工具是否更新,以及更新检测频率。

    [update]
    
    u=1 // u=1 更新 u=0 不触发自动更新
    
    t=1 //更新检测频率,单位 day,表示每 1天执行时候都会进行最新版本更新检测
    

    加固脚本由易盾在服务器部署,为保证线上包体方案的稳定性,非功能优化和问题修复不会改变后台的加固版本。建议有大版本更新迭代时候可以考虑升级到易盾新版本,并根据版本排期提前测试。

    Online Chat Tel:95163223 Free trial