实验 1:Android 和 APK
实验目的
- 了解 Android 系统的平台架构和运行机制
- 了解 apk 文件的构成
- 了解 Android 逆向的基本内容
- 接触并使用集成度较高的工具对 app 进行简单的分析
实验内容
阅读并了解「Android 系统」和「Android 应用程序包」
实验所需的 apk 参见 环境与材料
实验提供的 app 为文件管理 器,请选择一个完成以下的任务:
-
对 apk 进行反编译得到产物,描述产物的目录结构及其作用是什么:
-
尝试对 app 进行简单的修改,并安装运行,如下是一些可行的更改:
- 修改 AndroidManifest.xml,更改 app 的名称等
- 修改资源文件,更改文字内容或者界面样式
- 更改代码逻辑,更改跳转或activity
-
阅读
AndroidManifest.xml, 找到 app 的入口activity,使用Androguard或其他工具绘制从入口 activity 开始的函数调用关系图
选择一个或多个app并完成:
- 使用现有的 Android 分析工具或框架对 app 进行分析,并对比其功能特性,以下推荐两个:
- Mobile Security Framework: 可以自托管的 web 形式的开源分析框架,摸瓜平台的 UI 来源
- quark-engine: 开源的规则驱动型的 apk 静态分析引擎,可以给出 apk 的恶意度评分和分析报告
实验报告
实验报告应该清晰、有条理,有良好的格式和结构, 并且严禁抄袭
实验报告应包括以下内容:
- 选择哪种工具对 app 进行反编译,反编译得到的产物目录结构和代码结构的截图,并回答以下问题
- 什么是加壳和脱壳,什么是加固
- 什么是混淆
- 描述对 app 做了何种修改,修改前和修改后的安装并运行的对比截图,并回答以下问题
- 二次打包会遇到什么样的问题
- 简述二次打包的防范机制
- 给出 app 的入口activity的调用关系图,并回答以下问题
- 作为文件管理app,其正常需要的最小权限有哪些,该app多索要了哪些权限
- 选择一个非必需的权限,描述获得该权限以后有哪些API可以调用
- 描述使用了哪些 Android 分析工具或框架(不少于2个)对 app 进行了分析,概述不同的分析工具的特点或优缺点,可以从不限于以下的方面组织你的回答
- 衡量指标
- 分析途径
- 性能和效果
Bonus: 了解工具的工作原理或流程并进行简单的描述
实验提交
随堂验收
在实验截止日期之前的3月15日(周三)课上会要求小组对实验内容进行随堂验收
- 汇报实验采取的方案
- 展示实验结果
报告提交截止日期: 2023.3.19 23:59
- 提交邮箱: 191250004@smail.nju.edu.cn
- 提交内容:
- 实验报告:lab1-report-学号.pdf
- 其他材料可作为附件
lab1-学号-姓名.zip
└─lab1-学号-姓名
├─lab1-report-学号.pdf
└─附件