代码改变世界

什么是App加壳,以及App加壳的利与弊

2017-05-18 09:21  tlnshuju  阅读(719)  评论(0编辑  收藏  举报
非著名程序猿涩郎

非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!个人微信号:loonggg,微博:涩郎,专注于移动互联网的开发和研究,本号致力于分享IT技术和程序员工作心得体会。

欢迎大家关注与转载。





什么是App加壳,以及App加壳的利与弊



非著名程序猿


眼下针对移动应用市场上安卓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技术和程序员工作心得体会。欢迎大家关注与转载。