文章目录
一、SafetyNet Attestation API
二、PluginKiller
三、针对插件化应用开发者
一、SafetyNet Attestation API
SafetyNet Attestation API 是 Google 推出的 , 针对 Android 应用被滥用的 API , 可以有效避免 Android 应用运行在 root 后的手机 , 虚拟机 , hook 调试环境中 , 这样进一步降低了软件被逆向的风险 ;
SafetyNet 的 basicIntegrity 检测 , 可以检测出双实例应用程序 ( 多开应用 ) , 但是无法检测出不加载第三方插件的插件化应用 ;
二、PluginKiller
参考 【Android 插件化】使用 PluginKiller 帮助应用开发者规避发布的 APK 安装包被作为插件的风险 ( 验证应用是否运行在插件化引擎中 ) 博客 , 引入 PluginKiller 库 , 即可检测当前应用是否运行在插件化环境中 ;
三、针对插件化应用开发者
凡是加载插件 , 都要弹出对话框 , 征求用户同意 , 如果用户不同意 , 一定不要加载插件 ;
不要静默加载插件 , 如在组件的声明周期函数中加载插件 , 极有可能被判定为恶意软件 ;
大部分的良性软件 , 使用插件化 , 是为了减少 APK 体积 , 以及快速进行插件更新迭代 , 因此插件 APK 大多从网络中下载 ;
良性软件 没有必要将插件放在应用资源目录中 , 这样不如直接集成在应用中使用 ;
大部分的恶意软件 , 将恶意插件加密后放在 Assets 目录中 , 一般重打包恶意软件的开发者 , 都是批量操作 , 也没有稳定的服务器支持 ;
将插件加密后放在 Assets 目录中 , 是恶意应用的重要标识 ;