教材介绍 配套实验

    感谢您关注我们的《移动安全》教材。如果您想要相关资源以及答案,请将您的姓名、教育邮箱、学校及学院信息发送至 xxxxx@xxx.com。

    请您放心,我们承诺将严格保护您的信息安全。感谢您的信任与支持!



Lab6 代码混淆与解混淆

一、实验目标

1. 熟悉和理解安卓代码中的控制流混淆和命名混淆技术;

2. 熟悉常见的安卓代码混淆场景,掌握对混淆代码的解混淆方法;

3. 能够通过逆向工程完成简单的恶意软件行为分析。

二、前置准备

1. 理论知识学习

进行本Lab前请先完成教材第5章、第6章和第8章的学习,包括5.1.1节 Jadx的安装使用、6.3.1节代码混淆、8.2节恶意软件检测。

2. 实验环境

• Jadx逆向工具

• Android Studio开发环境

• 有Root权限的安卓设备或安卓模拟器

三、任务描述

任务1 控制流解混淆

taskA.apk是一个混合了无用代码且控制流扁平的安卓应用。该任务需要逆向该APK文件,分析和猜测代码逻辑,得到一个可以使该文件显示“You are correct!!”的输入(flag)。

任务2 命名解混淆

taskB文件夹中提供了3个恶意安卓应用,在这些应用中有一些字符串是加密的。该任务需要逆向这三个恶意安卓应用,分析这些字符串进行了哪些转换,并尝试通过编程恢复字符串的原始值。

请注意:给定的task_question.txt文件中,每一行通过三个字段表示一个String变量在应用中的位置,每一行从左至右分别为:加密字符串所在应用的名称,包含该字符串的类名,需要恢复的加密字符串。

任务3 恶意软件行为分析

目标恶意软件Spam Blocker(建议在运行时使用AS自带的模拟器,并关闭网络连接)的恶意功能是监控和劫持短信的收发,请分析其隐藏的恶意行为。

提示如下:

• 分析当设备重启后,软件执行了什么操作

• 分析恶意软件保持运行的做法,对什么服务上锁,启动了什么组件

• 分析恶意软件建立的与Command相关的网络连接

• 分析恶意软件监听的短信发送的手机号列表,不包括设备手机号

• 分析恶意软件将截获的短信发送到何处

请注意:该实验任务2和任务3的APK文件请不要尝试在自己的移动设备上安装。

四、结果提交形式

1. lab6_code.zip:本次实验中的实验代码,即实现任务1、任务2的代码

2. lab6_result.txt:本次实验的实验结果,包括任务1的输入和任务2恢复的原始字符串值

3. lab6.docx:本次实验的实验报告,包括实验目标、实验过程、实验结果和实验心得等

五、评分标准

1. 完成任务1(25%):得到正确的flag值

2. 完成任务2(15%):每个正确恢复的加密字符串占5%

3. 完成任务3(30%):五个恶意行为,每个正确分析的恶意行为占6%

4. 实验报告(30%):

• 内容完整性和原创性(20%)

• 报告包含实验目的、详细步骤、结果、总结思考等关键部分

• 代码设计遵循代码规范,有必要的解释说明

• 报告撰写和表达(10%)

• 报告格式规范,语言表达清晰

• 能够适当使用图表等辅助说明报告内容

六、附件内容说明

1. taskA:包含任务1所需的安卓应用APK文件

2. taskB:包含任务2所需的安卓应用APK文件和加密字符串定位文件task_question.txt

3. SpamBlocker.apk:包含任务3待分析的恶意软件

地址:上海市杨浦区淞沪路2005号复旦大学江湾校区二号交叉学科楼六楼、七楼              复旦大学系统软件与安全实验室              联系邮箱:wanqi_zhang@fudan.edu.cn