简介#
Android应用下的so文件通常是通过使用 C/C++ 编译器进行编译生成的,一般用于性能敏感等重要的功能,所以so安全性变得尤为关键。
由于用户对Android so库的安全性的需求不同,有些用户注重so库的代码逻辑有些用户注重其他文件的保护,故我们提供了不同的保护方案,可根据自己的需求选择加密方案。
方案对比#
so库分别有保护Android apk/aab应用时选择so库进行保护和单独对so库进行保护两种保护方式;
安全性
单独对so库进行保护方式的安全性高;
保护Android apk/aab应用时选择so库进行保护方式的安全性低;
操作性
保护Android apk/aab应用时选择so库进行保护比单独对so库进行保护加固时操作便捷;
单独对so库进行保护方式需要先将so库单独加固然后放回到Android apk/aab中,然后对Android应用重新签名才可安装运行。
功能性
单独对so库进行保护方式,so库对函数的代码逻辑进行保护(包括代码虚拟化、混淆和加密),也包括导入表保护、压缩、内存校验、移除调试信息等功能。
保护Android apk/aab应用时选择so库进行保护方式默认so库只有加密压缩功能;
方案1#
通过保护Android apk/aab应用时选择so库进行保护;
操作流程概述#
- 将Android apk/aab文件拖入
Virbox Protector中; - 配置函数选项,设计个性化的保护方案(可选);
 - 配置加密选项(可选);
 - 选择so库保护;
 - 保护选中项目。
 - 保护后的Android apk/aab直接安装运行即可。
 

方案2#
从Android apk/aab应用lib目录下获取so库文件,对单个或多个so库进行保护,具体的功能介绍参考Native保护指引;
操作流程概述#
- 将需要保护的SO文件导入
Virbox Protector中; - 配置函数选项,设计个性化的保护方案;
 - 配置加密选项;
 - 保护选中项目;
 - 将保护后的so库放到Android apk/aab文件中。
 
导入文件#
可直接将so文件拖入到Virbox Protector

配置函数选项#
点击添加函数,选择函数及保护方式(代码混淆、代码虚拟化、代码加密)。

配置加密选项#
可设置压缩、内存校验、反调试

执行保护#
点击保护选中项目即可保护成功

运行#
以上述so库为例:
1.加壳后的程序会在同目录下生成protected/libtnpn.so(请备份好未保护的libtnpn.so);
2.将protected/libtnpn.so替换到Android apk/aab中;
3.对Android应用进行重新签名,然后安装运行即可。
注:在原程序同目录下生成***.ssp(比如libtnpn.so.ssp)的文件为加壳时的配置文件,不需要放到Android apk/aab中。
问题#
1.可以对so库单独保护后再对Android apk/aab进行加固吗?
答:可以
流程:先将so库单独保护,将保护后的so库放到Android应用中,在将Android应用直接拖入到加壳工具,进行保护。
2.已经对so库单独保护了再对Android apk/aab加固时还能选择so文件吗?
答:不需要,单独对so库保护的安全性已经很高了,再加一层保护会影响应用性能。
3.直接保护so库的功能和保护Android应用的功能有冲突么?
答:没有
