可嵌入水印的混淆编译框架设计
摘要 | 第1-8页 |
Abstract | 第8-10页 |
插图索引 | 第10-12页 |
附表索引 | 第12-13页 |
第1章 绪论 | 第13-18页 |
1.1 项目来源、目的和意义 | 第13-14页 |
1.2 项目背景 | 第14-15页 |
1.3 本文的主要工作 | 第15-16页 |
1.4 本文的内容结构 | 第16-18页 |
第2章 软件保护技术与研究现状 | 第18-32页 |
2.1 软件保护工具 | 第18-20页 |
2.1.1 硬件工具 | 第18-19页 |
2.1.2 软件工具 | 第19-20页 |
2.2 字节码保护技术研究现状 | 第20-24页 |
2.2.1 隔离 Java 程序 | 第22页 |
2.2.2 对 Class 文件进行加密 | 第22-23页 |
2.2.3 转换成本地代码 | 第23页 |
2.2.4 代码混淆 | 第23-24页 |
2.2.5 几种技术的总结 | 第24页 |
2.3 混淆技术研究现状 | 第24-31页 |
2.3.1 符号混淆 | 第24-26页 |
2.3.2 数据混淆 | 第26页 |
2.3.3 控制混淆 | 第26-30页 |
2.3.4 增加混淆控制 | 第30-31页 |
2.3.5 控制流重组 | 第31页 |
2.3.6 预防性混淆 | 第31页 |
2.4 小结 | 第31-32页 |
第3章 混淆编译框架与水印系统设计 | 第32-59页 |
3.1 引言 | 第32-33页 |
3.2 整体框架设计 | 第33-36页 |
3.3 基于 FSM 单元的编译器设计 | 第36-41页 |
3.3.1 基于 FSM 单元的编译器类型 | 第36页 |
3.3.2 类型选择 | 第36-37页 |
3.3.3 混淆编译器实现原理 | 第37-39页 |
3.3.4 基于FSM 单元设计 | 第39-41页 |
3.4 程序转换器设计 | 第41-47页 |
3.5 水印设计 | 第47-57页 |
3.5.1 水印信息设计 | 第47-51页 |
3.5.2 利用转换规则构造水印 | 第51-54页 |
3.5.3 在傀儡指令中嵌入水印 | 第54-56页 |
3.5.4 提取水印 | 第56-57页 |
3.6 小结 | 第57-59页 |
第4章 原型系统与实用转换器实现 | 第59-73页 |
4.1 引言 | 第59-60页 |
4.2 原型系统设计 | 第60-61页 |
4.2.1 原型系统平台 | 第60页 |
4.2.2 W_x与 W_x~(-1)设计 | 第60-61页 |
4.3 原型系统实现 | 第61-64页 |
4.3.1 转换器实现 | 第61-62页 |
4.3.2 基于 FSM 单元实现 | 第62-64页 |
4.4 系统运行测试 | 第64-68页 |
4.4.1 混淆转换 | 第64-65页 |
4.4.2 循环指令转换 | 第65页 |
4.4.3 基于 FSM 单元的解释输出 | 第65-67页 |
4.4.4 嵌入不同水印信息的代码对比 | 第67-68页 |
4.5 实用转换器实现 | 第68-71页 |
4.6 小结 | 第71-73页 |
第5章 反编译测试与结果分析 | 第73-79页 |
5.1 引言 | 第73页 |
5.2 反编译测试 | 第73-76页 |
5.3 安全分析 | 第76-78页 |
5.4 小结 | 第78-79页 |
结论 | 第79-81页 |
参考文献 | 第81-84页 |
致谢 | 第84-85页 |
附录 攻读学位期间完成的论文和参加的项目 | 第85页 |
攻读学位期间所发表的学术论文目录 | 第85页 |
攻读学位期间参加的项目 | 第85页 |