非著名程序猿
眼下针对移动应用市场上安卓APP被破解、反编译、盗版丛生的现象,非常多APP开发者已经意识到保护APP的重要性。而对于移动应用APP加密保护的问题,怎样对DEX文件加密尤为重要。那么接下来,我们就先介绍一下什么是App加壳和加壳的原理,利与弊等。一、什么是加壳?
加壳是在二进制的程序中植入一段代码,在执行的时候优先取得程序的控制权,做一些额外的工作。大多数病毒就是基于此原理。是应用加固的一种手法对原始二进制原文进行加密/隐藏/混淆。
二、加壳作用
加壳的程序能够有效阻止对程序的反汇编分析,以达到它不可告人的目的。这样的技术也经常使用来保护软件版权,防止被软件破解。
三、Android Dex文件加壳原理
Android Dex文件大量使用引用给加壳带来了一定的难度,可是从理论上讲,Android APK加壳也是可行的。
在这个过程中,牵扯到三个角色:
1、加壳程序:加密源程序为解壳数据、组装解壳程序和解壳数据
2、解壳程序:解密解壳数据,并执行时通过DexClassLoader动态载入
3、源程序:须要加壳处理的被保护代码
四、加壳的利与弊
* 优势:
①、保护自己核心代码算法,提高破解/盗版/二次打包的难度
②、还能够缓解代码注入/动态调试/内存注入攻击.
* 劣势:
①、影响兼容性
②、影响程序执行效率.
加壳的技术和原理已经介绍了,那么接下来我们再介绍一下什么样的应用须要加密呢?金融软件/病毒木马/游戏等敏感度高的应用须要加密。其它的看自己的须要,个人觉得简单的,不是非常重要的应用不是必需加密,毕竟道高一尺,魔高一丈,仅仅要想脱。总能有办法。
Android 上的加壳技术发展至今也只是三年,而 PC 端的加壳技术已经有十多年的发展。我们相信它能发展的更好。攻防是动态的对抗,技术一直在进步,反正技术的趋势肯定是做攻的。攻破后都觉得守的不行,此消彼长,后面又加强又不好搞了。
眼下市面上有非常多第三方加壳的平台, 假设应用须要加壳选哪一种好?免费版强度都非常一般。建议自己測试下商业版的兼容性然后再选择。接触到的壳有apkprotect,梆梆加固,爱加密,娜迦。阿里,百度,腾讯,360等。用户依据自己的须要能够选择一种试试。
微信号:smart_android (←长按复制)介绍:非著名程序猿。字耿左直右。号涩郎。爱搞机,爱编程,是爬行在移动互联网中的一名码匠!
个人微信号:loonggg
微博:涩郎
QQ群:413589216 更能资料和源代码尽在QQ群文件
今日头条:搜索“非著名程序猿”订阅很多其它信息
工作:专注于移动互联网的开发和研究。本号致力于分享IT技术和程序员工作心得体会。欢迎大家关注与转载。