20165320 毕业设计 第一周总结
任务及完成情况
周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周天 |
---|---|---|---|---|---|---|
Android运行及分析环境的搭建 | 学习Android系统 | 查阅Android系统安全相关文献 | 研究Android系统常见攻击与防护措施 | 根据现有资料制定学习计划 | 文献翻译、总结知识点 | 撰写总结博客 |
已完成 | 已完成 | 已完成 | 已完成 | 已完成 | 已完成 | 已完成 |
内容总结
一、环境搭建
- JDK安装:Android的软件开发需要JDK支持,从官网或者通过其它途径获取安装包后,按照正常流程走完。
- 安装完成后添加JAVA_HOME环境变量,同时在Path环境变量中加入安装目录下bin文件夹的路径,以便找到java编译器的位置。
- 打开CMD命令行,输入java -version验证。
- Android Studio安装:Android Studio是Android软件开发的一款IDE。
- 按照网上的参考教程安装完成后,创建一个简单的项目运行测试。
- Android Killer:一款集成的Android Java层静态分析工具,包括APKTool、ADB、Dex2jar、jd-gui,直接解压使用。
参考教程:https://blog.csdn.net/qqr99000/article/details/86700545
- IDA Pro:一款能够实现Android Native层反编译以及动态分析的反汇编工具。
二、Android系统安全基础
1、Android系统分为四层结构(从上往下):
- 应用层:负责与用户进行交互,即应用程序(QQ、微信啥的)。
- 应用程序框架层:提供程序开发所会用到的各种API,包含四大组件,各组件之间通过Intent传递消息。
- Activity(活动):与用户进行交互的界面。
- Service(服务):处理一些后台任务,比如下载。
- Broadcast Receiver(广播):接受并处理来自系统或应用的通知。
- Content Provider(内容提供器):可以理解为各应用程序之间共享的数据库,比如通讯录。
- 核心库和Dalvik虚拟机层:负责运行Android程序并将Dalvik虚拟机执行代码转换为Linux层能执行的C代码。
- Linux内核层:负责管理硬件驱动。
2、各层对应的安全机制:
- 应用层:权限控制。APP在安装使用时,只有经过用户授权,才会被赋予其申请的相应权限。
- 应用程序框架层:签名机制。APP再打包成为APK之前,需要经过签名,通过签名可以实现对APP的身份验证与更新等功能。
- 核心库和Dalvik虚拟机层:沙箱机制。每个APP运行时,使用的虚拟机是独立的。
- Linux内核层:Android和Linux一样,都含有文件权限机制,不同点在于Android系统中每个APP就是一个用户,拥有独立的资源。
3、Android root:和Linux系统中的root用户一样,获取Android系统中超级用户权限的过程被成为root。主要有以下两种思路:
- 找具有root权限的进程的漏洞进行提权。
- 刷机。
4、APK的组成及生成过程
- 组成如下:
- assets:资源目录
- lib:存放so库,由NDK编译得到。
- META-INF:存放签名信息。
- res:资源目录(与assets目录有一定区别)。
- AndroidManifest.xml:配置属性文件。里面包含许多应用程序的关键信息。
- classes.dex:Dalvik虚拟机的可执行文件。
- resources.arsc:res目录下的资源索引文件。
- PS:APK实质上就是一个zip格式的压缩包,其中有许多重要的文件,在之后学逆向的时候会用到,所以在下周会好好学一下一部分。
- 生成过程如下:
- 打包res目录下的资源文件,生成R.java。
- 处理aidl文件(没听说过这个....暂时放这吧)
- 编译项目,生成class文件。
- 将class文件转换为Dalvik虚拟机可以执行的dex文件。
- 最后就是打包、签名、对齐。
- 参考资料:网络安全攻防技术:移动安全篇
三、Android系统安全现状
- 现状:目前,Android系统经过一次又一次的版本更新,本身存在的许多系统安全漏洞已经被修复,但是由于其开源的特性,用户信息安全意识普遍缺乏,以及逆向技术的发展,导致安全形势仍不容乐观。(其中以破解版软件最常见)
- 防护措施:用户提高自身信息安全意识、没事不要root自己手机、Android软件开发人员在开发过程中加入相应的保护手段(反打包、加壳等)。
- 参考资料:
- Android 系统安全现状分析
高 度 昆明学院 云南 昆明 650214 - Android 应用安全问题与对策思考研究
郝晓东 孙二鑫 藏丹丹 李潇潇 天津卡达克数据有限公司
300000 - Android 系统存在的主要安全隐患及对策研究
邓基亮 李镇均 王达浩 蔡敏
- Android 系统安全现状分析
四:接下来的学习计划
- 根据任务书以及导师的要求,以及自身实际情况,初步制定了以下学习计划:
- 继续Android系统安全基础的学习
- 实现一个简单的Android系统漏洞
- 现有Android软件保护技术
- 学习Dalvik指令与arm反汇编基础
- Android程序的静动态分析
- Android原生程序逆向分析、动态调试(先写上吧,学不会再说......)
- 数据存储与数据通信安全
待解决的问题&下周的计划
- 目前最大的问题还是关于Android系统的知识与理解不够深入,还需要大量的知识储备支撑后期的逆向学习。
- 下周主要任务是在老师的指导下明确毕设方向,梳理好思路,写好开题报告,同时增加理论知识储备,为之后的实践做准备。
原文地址:https://www.cnblogs.com/Gst-Paul/p/12393105.html
时间: 2024-07-29 12:49:47