| 第1章 引言 | 第1-14页 |
| ·研究的背景和意义 | 第10-11页 |
| ·混淆技术当前的研究现状 | 第11-12页 |
| ·主要研究内容 | 第12-13页 |
| ·本文结构及章节安排 | 第13-14页 |
| 第2章 恶意主机环境下的攻击与防御 | 第14-22页 |
| ·应用安全 | 第14-15页 |
| ·软件威胁模型 | 第15-16页 |
| ·什么是威胁模型 | 第15页 |
| ·三种基本的威胁模型 | 第15-16页 |
| ·恶意主机的攻击 | 第16-17页 |
| ·恶意主机攻击的前提假设 | 第16页 |
| ·攻击方法分类 | 第16-17页 |
| ·防御措施 | 第17-19页 |
| ·篡改抵制 | 第18页 |
| ·软件多样性 | 第18页 |
| ·软件水印 | 第18-19页 |
| ·通用软件保护模型 | 第19-21页 |
| ·模型的设计目标 | 第19页 |
| ·模型的设计思想 | 第19-21页 |
| ·小结 | 第21-22页 |
| 第3章 代码混淆技术 | 第22-46页 |
| ·概述 | 第22-23页 |
| ·Java虚拟机与class文件 | 第23-26页 |
| ·Java class文件的格式 | 第24-25页 |
| ·字节代码指令集 | 第25-26页 |
| ·Java运行环境对混淆的影响 | 第26-27页 |
| ·Java虚拟机特性 | 第26-27页 |
| ·JVM内置class文件静态安全检查器 | 第27页 |
| ·控制流混淆 | 第27-39页 |
| ·重构程序的整体控制结构 | 第28-34页 |
| ·基本块混淆 | 第34-35页 |
| ·隐藏用于控制转换的短暂变量 | 第35-39页 |
| ·数据结构混淆 | 第39-43页 |
| ·类的合并 | 第40-42页 |
| ·类型隐藏 | 第42-43页 |
| ·面向对象程序的混淆转换模型 | 第43-45页 |
| ·模型的设计目标 | 第43页 |
| ·模型的设计思想 | 第43-45页 |
| ·小结 | 第45-46页 |
| 第4章 逆向工程技术 | 第46-52页 |
| ·概述 | 第46-49页 |
| ·逆向工程的概念及分类 | 第46-47页 |
| ·静态分析技术 | 第47-48页 |
| ·动态分析技术 | 第48-49页 |
| ·控制流程图(CFG)的自动生成 | 第49-51页 |
| ·小结 | 第51-52页 |
| 第5章 Java字节代码分析与混淆工具的设计与实现 | 第52-62页 |
| ·JBPOT的设计 | 第52-53页 |
| ·JBPOT的用户接口 | 第53-54页 |
| ·JBPOT的系统结构 | 第54-55页 |
| ·核心算法实现 | 第55-61页 |
| ·生成CFG算法 | 第55-59页 |
| ·重构程序整体控制结构算法 | 第59-60页 |
| ·类合并算法 | 第60-61页 |
| ·类型隐藏算法 | 第61页 |
| ·小结 | 第61-62页 |
| 第6章 系统评价与试验分析 | 第62-68页 |
| ·混淆转换的正确性评价 | 第62页 |
| ·混淆转换造成的性能过载 | 第62-65页 |
| ·控制流混淆转换对程序性能的影响 | 第63-65页 |
| ·类的合并与类型隐藏对程序性能的影响 | 第65页 |
| ·混淆转换的有效性 | 第65-67页 |
| ·小结 | 第67-68页 |
| 第7章 总结与展望 | 第68-69页 |
| 参考文献 | 第69-72页 |
| 致谢 | 第72页 |