20165320 毕业设计 第一周总结
Posted gst-paul
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165320 毕业设计 第一周总结相关的知识,希望对你有一定的参考价值。
20165320 毕业设计 第一周总结
任务及完成情况
周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周天 |
---|---|---|---|---|---|---|
内容总结
一、环境搭建
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 系统安全现状分析
高 度 昆明学院 云南 昆明 650214Android 应用安全问题与对策思考研究
郝晓东 孙二鑫 藏丹丹 李潇潇 天津卡达克数据有限公司
300000Android 系统存在的主要安全隐患及对策研究
邓基亮 李镇均 王达浩 蔡敏
四:接下来的学习计划
根据任务书以及导师的要求,以及自身实际情况,初步制定了以下学习计划:
继续Android系统安全基础的学习
实现一个简单的Android系统漏洞
现有Android软件保护技术
学习Dalvik指令与arm反汇编基础
Android程序的静动态分析
Android原生程序逆向分析、动态调试(先写上吧,学不会再说......)
数据存储与数据通信安全
待解决的问题&下周的计划
目前最大的问题还是关于Android系统的知识与理解不够深入,还需要大量的知识储备支撑后期的逆向学习。
下周主要任务是在老师的指导下明确毕设方向,梳理好思路,写好开题报告,同时增加理论知识储备,为之后的实践做准备。
以上是关于20165320 毕业设计 第一周总结的主要内容,如果未能解决你的问题,请参考以下文章
2018-2019-1 20165320 《信息安全系统设计基础》第六周学习总结
2018-2019-1 20165320 《信息安全系统设计基础》第七周学习总结
2018-2019-1 20165320 《信息安全系统设计基础》第八周学习总结