对于这个问题我的回答是:做的好他就好...估计大家会觉得我这么回答不是屁话么.那么下面我就阐述下我说这屁话的原因:- 首先咱们说下什么是加壳,为什么要加壳,加壳带来哪些好与不好* 加壳:是应用加固的一种手法对原始二进制原文进行加密/隐藏/混淆.* 开发过 Java 应用的一般都会了解 java 代码是非常容易被逆向分析的,即使有一些混淆技术出现但是相对C/C++的反编译后的汇编代码还是可读性高一些.当然随着 NDK 的需要变得更多后,现在 so 的加壳也随之发展起来.* 优势:保护自己核心代码算法,提高破解/盗版/二次打包的难度还可以缓解代码注入/动态调试/内存注入攻击.* 劣势:影响兼容性/影响程序运行效率.- 兼容性问题:因为底层平台繁杂诸如arm/x86/x64/mips,虽然现在移动设备还是以 arm 为主但是 arm 只提供方案具体到各家实现又是花样频出 高通/猎户座/英伟达/MTK/海思.需要在底层实现的壳若要保证兼容性不得不面临适配的难题.因为是在 native 层做的不像 java 层应用运行在 Android VM上不用考虑这么多.对于这个问题我深有体会,某app在其算法被破解后开始寻求第三方加固,选择了爱加密和梆梆加固但是加固后分别出现了一个无法在 N5上运行一个无法在 S6E 上运行的尴尬局面.应用的可用性肯定权重肯定高于安全性,为了安全而影响应用显然是不智.
...
继续阅读
(136)