SDK-Android(Jar/Aar)加固

2024.09.30 09:36:27

    功能介绍

    JAR/AAR包加固

    使用 VMP 方案对 SDK 进行加固,通过后台配置的方式指定保护 SDK 中的方法

    函数虚拟化保护

    对 SDK 下的指定类中的方法采用 VMP 模式加固,使用自定义虚拟机保护 Java 层核心代码,指令运行于自定义虚拟机中

    函数抽取

    对 SDK 中代码进行抽离加密隐藏,防止攻击者静态分析

    so保护

    支持对SDK中的SO文件进行加固保护

    防内存 dump

    被保护之后的文件无法在内存去dump

    防调试

    防止集成 SDK 时通过 IDE 调试 SDK 的 Java 代码 / 通过 IDA、GDB 等调试器调试 Native 代码

    使用说明

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

    使用方式

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

    配置待加固文件:提供需要 vmp 保护的类名

    加固需要提供如下信息:

    1. 将待加固的 jar 或 aar 文件
    2. sdk 混淆后生成的 mapping 文件

    如果用户在开发sdk的时候使用了proguard混淆,那么会在build/outputs/mapping/release/mapping.txt 目录下看到名为 mapping.txt的文件,该文件即为 mapping 文件。换而言之如果用户在开发 sdk 时未使用混淆规则则无需该文件

    把以上的文件压缩成 zip

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

    1. 命令行模式参数,以 .aar 结尾的文件,需要打包成.zip进行加固
    java -jar NHPProtect.jar  -sdk -input E:\\xxx.zip
    
    1. 参数说明如下:
    参数 说明
    -sdk 必填项,表示保护对象为sdk
    -input 必填项,参数后面跟待加固的sdk 文件绝对路径,建议压缩成 zip
    -output 默认加固后的文件输出在原文件同路径,-output参数可以指定加固后文件的输出路径和文件名,示例:java -jar NHPProtect.jar -yunconfig -sdk -output E:\enc\test_enc.zip -input E:\yiduntest\xxxx.zip

    config.ini文件配置说明

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

    java -jar NHPProtect.jar  -sdk -config E:\Desktop\test\config.ini -input E:\xxx.zip
    

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

    设置appkey

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

    [appkey]
    
    key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    接入注意事项

    加固之后的 sdk,在被 apk 集成时,需要配置加固壳混淆规则和被加固类混淆规则。

    加固壳混淆规则:

    如果主工程开启了混淆,需要在原工程的 proguard-rules.pro 中增加如下内容

    -keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
    

    被加固类及其引用类混淆规则: 加固后的 zip 中,会有一个 sdk_auto_proguard.txt 文件,将其中的内容复制 到 proguard-rules.pro 中防止被加固类及其引用类被混淆。

    Online Chat Tel:95163223 Free trial