程序分析与检测中的若干问题研究
摘要 | 第4-6页 |
Abstract | 第6-8页 |
1 绪论 | 第14-22页 |
1.1 研究背景 | 第14-16页 |
1.2 研究问题 | 第16-19页 |
1.2.1 指针与递归性质的分析 | 第17页 |
1.2.2 代码依赖与封装性的分析 | 第17-18页 |
1.2.3 恶意负载与行为逻辑的分析 | 第18-19页 |
1.3 主要工作 | 第19-20页 |
1.4 论文组织结构 | 第20-22页 |
2 程序递归性质的自动分析 | 第22-46页 |
2.1 分析框架 | 第24-26页 |
2.2 递归数据结构和归纳性质 | 第26-28页 |
2.2.1 归纳性质的模式 | 第27-28页 |
2.2.2 性质类别的划分 | 第28页 |
2.3 过程内分析 | 第28-35页 |
2.3.1 分割与拼接技术 | 第30-35页 |
2.4 过程间分析 | 第35-39页 |
2.4.1 过程局部堆内存 | 第35-36页 |
2.4.2 调用上下文敏感的程序摘要生成 | 第36-39页 |
2.5 案例分析 | 第39-42页 |
2.6 实现和实验结果 | 第42-43页 |
2.7 相关工作 | 第43-44页 |
2.8 本章小结 | 第44-46页 |
3 面向对象程序的封装性分析 | 第46-70页 |
3.1 背景与动机 | 第47-49页 |
3.1.1 背景 | 第47-48页 |
3.1.2 动机 | 第48-49页 |
3.2 封装性分析 | 第49-60页 |
3.2.1 内存图抽象 | 第49-52页 |
3.2.2 逃逸 | 第52-54页 |
3.2.3 过程内分析 | 第54-57页 |
3.2.4 过程间分析 | 第57-59页 |
3.2.5 处理面向对象特性 | 第59-60页 |
3.3 实验 | 第60-65页 |
3.3.1 实验方法 | 第61页 |
3.3.2 实验结果 | 第61-65页 |
3.4 讨论 | 第65-67页 |
3.4.1 如何获得更好的封装性 | 第65-67页 |
3.4.2 限制 | 第67页 |
3.5 相关工作 | 第67-69页 |
3.5.1 类型系统 | 第67-68页 |
3.5.2 静态分析 | 第68页 |
3.5.3 代码审查 | 第68-69页 |
3.6 本章小结 | 第69-70页 |
4 基于强制执行的程序行为检测 | 第70-96页 |
4.1 背景知识 | 第72-73页 |
4.1.1 安卓应用的程序入口 | 第72页 |
4.1.2 WebView | 第72-73页 |
4.1.3 安卓WebView应用的执行 | 第73页 |
4.2 安卓WebView恶意应用案例 | 第73-78页 |
4.3 总体设计 | 第78-81页 |
4.3.1 静态分析 | 第79-80页 |
4.3.2 插桩 | 第80页 |
4.3.3 强制执行引擎 | 第80-81页 |
4.4 强制执行模型 | 第81-85页 |
4.4.1 安卓运行环境 | 第81-83页 |
4.4.2 WebView运行环境 | 第83-85页 |
4.5 路径探索算法 | 第85-88页 |
4.5.1 探索算法 | 第85-87页 |
4.5.2 探索策略 | 第87-88页 |
4.6 实现和实验结果 | 第88-92页 |
4.6.1 实验环境和设定 | 第88-89页 |
4.6.2 有效性 | 第89-92页 |
4.6.3 效率 | 第92页 |
4.7 相关工作 | 第92-94页 |
4.8 本章小结 | 第94-96页 |
5 总结与展望 | 第96-98页 |
5.1 论文的主要工作 | 第96-97页 |
5.2 进一步的工作 | 第97-98页 |
参考文献 | 第98-124页 |
致谢 | 第124-126页 |
简历与科研成果 | 第126-128页 |