您的位置:首页 > 移动开发 > Android开发

【Android应用保护技术探索之路系列】之三:对抗静态分析

2015-07-23 11:31 761 查看
作者:郭孝星

微博:郭孝星的新浪微博

邮箱:allenwells@163.com

博客:http://blog.csdn.net/allenwells

Github:https://github.com/AllenWells

【Android应用保护技术探索之路系列】章节目录

【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇

【Android应用保护技术探索之路系列】之二:对抗反编译

【Android应用保护技术探索之路系列】之三:对抗静态分析

【Android应用保护技术探索之路系列】之四:对抗动态调试

【Android应用保护技术探索之路系列】之五:对抗重编译

我们可以通过以下几个方法来对抗静态分析。

一 代码混淆技术

自Android2.3以后,GGoggle就在SDK中正式加入了ProGuard代码混淆工具,我们可以利用这个工具进行代码混淆。

ProGuard提供了压缩、混淆、优化和反混淆栈跟踪等功能,关于ProGuard的详细内容,可以参见的我的。

二 NDK保护

这种方法的思路就是讲核心的Java代码逻辑转移到Native程序中进行实现,使得破解的难度由应用级别提高到汇编级别。但是这样也有弊端,Java几行代码就能完成的事情,Native程序可能需要几十行甚至更多才能完成,这会带来饿代码量激增,开发成本的增加以及调试难度的增加。所有在代码安全和开发成本上也需要寻找一个平衡点。

三 外壳保护

外壳保护是一种代码加密技术,Java代码由于其语言的特殊性, 没有外壳保护这个概念。外壳保护主要是针对Native程序,

开源加壳框架upx

它是一款用于ARM Linux内核程序加壳的开源框架,支持多平台和多类型的文件加壳。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: