【Android应用保护技术探索之路系列】之三:对抗静态分析
2015-07-23 11:31
761 查看
作者:郭孝星
微博:郭孝星的新浪微博
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
Github:https://github.com/AllenWells
【Android应用保护技术探索之路系列】之二:对抗反编译
【Android应用保护技术探索之路系列】之三:对抗静态分析
【Android应用保护技术探索之路系列】之四:对抗动态调试
【Android应用保护技术探索之路系列】之五:对抗重编译
我们可以通过以下几个方法来对抗静态分析。
ProGuard提供了压缩、混淆、优化和反混淆栈跟踪等功能,关于ProGuard的详细内容,可以参见的我的。
开源加壳框架upx
它是一款用于ARM Linux内核程序加壳的开源框架,支持多平台和多类型的文件加壳。
微博:郭孝星的新浪微博
邮箱: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内核程序加壳的开源框架,支持多平台和多类型的文件加壳。
相关文章推荐
- 【Android应用保护技术探索之路系列】之二:对抗反编译
- 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
- android实现点击按钮实现home键的功能
- Android应用开发相关下载资源(2015/05/06更新)
- Android 让他们自己控制开发的定义(一个)
- 8 个最优秀的 Android Studio 插件
- android viewpager tab indicator炫酷的Tab动画效果
- Android log日志
- 安卓源码----安卓系统启动过程(初次研究源码,表述不当还请见谅)
- min3d引擎使用指南(Android)<三>
- Android Sqlite 批量 insert/update 提高效率
- android中Toast的用法
- android 在布局中合理的使用tag标签的好处
- Android Button控件与CountDownTimer的结合使用
- 【Android】Android聊天机器人实现
- Android中的Interpolator
- Smalidea无源码调试 android 应用
- Android中常用到的各种框架
- android知识图谱
- [Android]异步任务AsyncTask使用解析