中文题名: | Android字节码程序常量传播分析 |
姓名: | |
学生类型: | 学士 |
学位名称: | 工学学士 |
学校: | 中国人民大学 |
院系: | |
专业: | |
第一导师姓名: | |
完成日期: | 2014 |
中文关键词: | |
中文摘要: |
目前Android系统在全球手机市场中占有巨大的份额,随着Android应用程序面临的威胁的增加,其安全问题开始得到越来越多的关注。在对Android应用程序的测试分析中,静态分析技术作为动态分析的辅助方法,逐渐成为提高Android程序安全性的重要手段。
Android系统具有四大组件:Activity、Service、Content Provider、Broadcast Receiver,并通过intent机制在程序运行时进行组件间通信,由于Android缺少足够的检测机制,所以会产生权限泄露的风险,例如,如果一个正常应用的intent没有明确指定哪些接收方有权限接收,则恶意程序指定action标识后,可以获取该intent内容,导致数据泄露。又因为intent中包含的action等关键信息一般都是固定的常量,所以对其进行常量传播分析有助于检测由intent导致的权限泄露威胁,本文在实验部分将以一实例作具体说明。
同时,在静态分析的过程中,为了生成更有效的目标代码,需要对静态分析产生的中间代码进行进一步的优化。常量传播作为一种基于静态分析的优化方法,以数据流分析为基础,在遍历程序内部的执行路径和生成控制流图后,通过跟踪应用程序对常量值的使用,将对变量的引用直接替换成对其常数值的引用,能够大大减少对内存变量单元的访问次数,提高程序执行的时间效率,已经成为一种主要的优化方法。
本文通过对Android程序的DEX文件进行反汇编,得到Android程序的Dalvik字节码,并以此为基础,采用静态数据流分析技术,通过控制流分析生成程序的控制流图,并实现了常量分析方法,对生成的中间代码进行了进一步地优化,为检测由intent机制导致的权限泄露提供了检测手段。
﹀
|
开放日期: | 2016-03-21 |