#
简介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应用的功能有冲突么?
答:没有