摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
缩略语对照表 | 第10-14页 |
第一章 绪论 | 第14-18页 |
1.1 研究背景及意义 | 第14-15页 |
1.2 研究内容和研究目标 | 第15-16页 |
1.3 论文结构 | 第16-18页 |
第二章 基础知识 | 第18-26页 |
2.1 Java程序常见漏洞 | 第18-22页 |
2.1.1 内存泄露 | 第18-19页 |
2.1.2 Java并行循环漏洞 | 第19-20页 |
2.1.3 恶意Java应用程序 | 第20-22页 |
2.2 Java程序分析方法 | 第22-23页 |
2.2.1 静态分析 | 第22页 |
2.2.2 动态分析 | 第22-23页 |
2.3 Java程序分析工具 | 第23页 |
2.3.1 静态分析工具 | 第23页 |
2.3.2 动态分析工具 | 第23页 |
2.4 本章小结 | 第23-26页 |
第三章 基于Java源码的静态检测方法的研究 | 第26-42页 |
3.1 基于Java源码的控制流分析 | 第27-29页 |
3.1.1 程序静态分析关键技术—流分析技术 | 第27-28页 |
3.1.2 过程间控制流图 | 第28-29页 |
3.1.3 过程间控制流图分析框架 | 第29页 |
3.2 基于Java源码的数据流分析 | 第29-33页 |
3.2.1 过程内数据流分析理论支撑—IFDS问题 | 第29-30页 |
3.2.2 IFDS问题概述 | 第30-33页 |
3.3 基于IFDS问题的数据流分析 | 第33-38页 |
3.3.1 IFDS遗传迭代算法 | 第33-35页 |
3.3.2 IFDS/IDE框架 | 第35-38页 |
3.4 别名分析 | 第38-39页 |
3.5 本章小结 | 第39-42页 |
第四章 基于Java源码静态检测系统的设计与实现 | 第42-60页 |
4.1 静态检测系统的框架设计 | 第42-43页 |
4.1.1 系统整体框架 | 第42-43页 |
4.1.2 系统模块设计 | 第43页 |
4.2 控制流分析模块的实现 | 第43-48页 |
4.2.2 Jimple语言的转换 | 第44-45页 |
4.2.3 Jimple基本数据结构的填充 | 第45-48页 |
4.2.4 程序过程间控制流图的生成 | 第48页 |
4.3 IFDS问题求解器模块的设计与实现 | 第48-50页 |
4.4 数据流分析模块的设计与实现 | 第50-54页 |
4.4.1 主实现类关系图中Flow Functions的位置 | 第51-52页 |
4.4.2 Flow Functions函数接口 | 第52-54页 |
4.4.3 Flow Functions函数接口 | 第54页 |
4.5 测试用例生成模块的设计与实现 | 第54-59页 |
4.5.2 IFDS特定问题 | 第55-57页 |
4.5.3 用户主函数的定义 | 第57-58页 |
4.5.4 流函数的定义 | 第58-59页 |
4.6 本章小结 | 第59-60页 |
第五章 基于Java语言的静态检测系统实验测试和结果分析 | 第60-70页 |
5.1 测试场景 | 第60页 |
5.2 测试方案 | 第60-64页 |
5.3 测试结果及分析 | 第64-68页 |
5.3.1 完整性分析 | 第64页 |
5.3.2 数据结果分析 | 第64-67页 |
5.3.3 漏洞检测准确率分析 | 第67-68页 |
5.4 本章小结 | 第68-70页 |
第六章 总结与展望 | 第70-72页 |
6.1 工作总结 | 第70页 |
6.2 研究展望 | 第70-72页 |
参考文献 | 第72-74页 |
致谢 | 第74-76页 |
作者简介 | 第76-77页 |