《移动智能终端安全技术Ⅰ》教学大纲
- 格式:pdf
- 大小:238.38 KB
- 文档页数:5
- 1 - 附件2
《移动智能终端安全技术Ⅰ》教学大纲
课程编号:CE6013
课程名称:移动智能终端安全技术Ⅰ 英文名称:Intelligent Terminal SecurityⅠ
学分/学时:2/32 课程性质: 选修 适用专业:信息安全、网络工程、网络空间安全 建议开设学期: 5
先修课程:操作系统、软件逆向工程开课单位:网络与信息安全学院 一、课程的教学目标与任务
教学目标:
1、使学生掌握基本的Android应用逆向分析与反破解技术,熟悉多种相关软件工具的
使用。 2、培养学生的自主学习能力、动手能力与创新能力。
教学任务:
通过课堂讲授、实验与实践等教学方式,使学生掌握基本的Android应用逆向分析技术与反破解技术。同时,培养学生对新知识的自主学习能力,为后续学习打下基础。 二、课程具体内容及基本要求
(一)Android 逆向工程简介 了解软件安全背景,了解软件逆向的作用、危害和影响;分析知名软件逆向案例和简单
逆向成果。
1.基本要求 (1)了解软件安全背景,形成软件逆向的概念。
(2)了解软件逆向案例和软件逆向所能达到的效果。
2.重点、难点 重点:了解基本的Android软件逆向技术,形成初步的软件逆向思维。
难点:无
3.作业及课外学习要求: 无
(二)Android开发基础
学习Android程序开发,了解Android APP文件结构。 1.基本要求
(1)学习Android程序开发。 (2)了解Android APP文件组成和结构。
2.重点、难点
重点:学习Android开发,完成具有基本功能的APP开发。 难点:Android应用开发。
3.作业及课外学习要求:
学习编写Android工程。 (三)Android Java 逆向基础
了解Dalvik虚拟机与Java虚拟机的区别与特点,熟悉Dalvik指令集并学会查阅Dalvik
指令手册。了解DEX文件的结构与特点,熟悉DEX文件反汇编工具的使用。 1.基本要求
(1)理解Dalvik指令的指令格式,了解Dalvik字节码的类型、方法与字段表示方法。
(2)了解DEX文件结构。 (3)编写Dalvik指令文件并运行。
(4)学会使用DEX文件反汇编工具。
2.重点、难点 重点:Dalvik指令集。
难点:编写并运行Dalvik指令文件。
3.作业及课外学习要求: 练习Dalvik指令的运用。
(四)Android程序静态分析
了解Android DEX文件反汇编后的smali语法与Java语法对应规则。了解IDA Pro、Jeb等逆向工具的使用方法,学会识别smali代码中的关键指令,并分析代码逻辑。
1.基本要求
(1)了解smali代码,对应编写Java代码。 (2)了解Android逆向环境配置与常用工具。
(3)使用ApkTool分析Android应用程序。
(4)使用IDA Pro分析Android应用程序。 (5)了解dex2jar、jd-gui、Android Killer等逆向工具的使用。
- 3 - 2.重点、难点
重点:smali代码与Java代码的对应规则。 难点:使用IDA Pro分析Android应用程序。
3.作业及课外学习要求:
练习使用IDA Pro分析Android应用程序。 (五)Android NDK基础及原生程序分析与调试
了解Android NDK的作用与安装,了解Android JNI编程知识。掌握ARM指令集中的关
键指令,学习使用动态调试方法对程序进行分析。 1.基本要求
(1)安装Android NDK。
(2)掌握简单的Android JNI编程。 (3)学习ARM指令集。
(4)掌握编译生成原生程序的两种方法。
(5)逆向分析原生C程序。 (6)使用IDA Pro动态调试Android原生程序。
2.重点、难点
重点:编译生成原生程序,使用IDA Pro动态调试Android原生程序。 难点:Android JNI编程。
3.作业及课外学习要求:
自学练习Android JNI编程。 (六)Android 应用层防护
了解Android系统的各个层级和安全机制,了解常见的Android应用程序漏洞。
1.基本要求 (1)了解Android应用安全加固技术,包括对抗反编译、对抗静态分析、对抗动态调
试、防止重编译。
(2)了解常见的Android应用程序漏洞。 2.重点、难点
重点:Android应用安全加固技术。
难点:无 3.作业及课外学习要求: 依照个人兴趣自学一种Android应用安全加固技术。 三、教学安排及方式 总学时 32 学时,其中:讲授 24 学时,实验(或上机或综合练习或多种形式)16 学
时。 序号 课程内容 学时 教学方式
1 Android逆向工程简介 2 讲授
2 Android开发基础 4 讲授 3 Dalvik指令集及DEX文件 4 讲授 4 Dalvik指令集练习 4 实验
5 smali文件格式及smali语言与Java语言的对应规则 4 讲授
6 Android程序静态分析 2 讲授 7 Android程序静态分析实验 4 实验
8 Android NDK基础及Android JNI编程,Android程序的动态调试 4 讲授
9 Android JNI编程与Android程序的动态调试实验 8 实验
10 Android应用层防护 4 讲授 注:教学方式填写“讲授、实验或实践、上机、综合练习、多种形式”。 四、本课程对培养学生能力和素质的贡献点
本课程以自主学习为主,结合课堂教学、实验、撰写实验报告等教学手段和形式,利用
课外时间分散完成课程教学任务。课程内容旨在使学生了解基本的智能终端安全技术中的Android逆向分析实用技术与基本的应用保护技术,增强学生的工程实践能力,为后续的相
关学习打下基础。
通过对一些前沿技术的学习与实验实践,开阔学生的眼界,培养学生的自主学习能力,提高学生分析问题与解决问题的能力,增强学生的专业素质。
五、考核及成绩评定方式
考核方式:考试 最终成绩由平时作业成绩、实验成绩和期末考试成绩等组合而成。各部分所占比例如下:
平时作业成绩:10%。主要考核学生对每节理论课知识点的复习、理解和掌握程度。
实验成绩:30%。主要考查学生的实验实践能力。 期末考试成绩:60%。主要考查学生对基础知识的掌握程度。书面考试形式。题型为:
- 5 - 选择题、问答题等。
六、教材及参考书目
教材:
选修课以教案和课堂教学课件为主。
参考书目: 1.《Android 第一行代码》,郭霖 著,人民邮电出版社。
2.《Android安全架构深究》, [美] 尼古拉·埃伦科夫(Nikolay Elenkov) 著,电
子工业出版社。 3.《Android软件安全与逆向分析》, 丰生强 著,人民邮电出版社。 七、说明
(一)与相关课程的分工衔接 无
(二)其他说明
需要学生自备实验设备。 2017 年 10 月 22 日