摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 引言 | 第10-16页 |
1.1 研究背景和意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-14页 |
1.2.1 JavaScript代码保护 | 第11-12页 |
1.2.2 代码虚拟化保护 | 第12-13页 |
1.2.3 WebAssembly技术 | 第13-14页 |
1.3 本文的研究内容 | 第14-15页 |
1.4 本文的组织结构 | 第15-16页 |
第二章 前端代码攻防机制和代码虚拟化保护原理分析 | 第16-24页 |
2.1 JavaScript代码保护和攻击 | 第16-21页 |
2.1.1 代码精简与格式化 | 第16-17页 |
2.1.2 代码加密与解密 | 第17-18页 |
2.1.3 代码混淆与反混淆 | 第18-20页 |
2.1.4 其他保护方式和攻击方法 | 第20-21页 |
2.2 代码虚拟化保护原理分析 | 第21-22页 |
2.3 基于WebAssembly实现JavaScript代码虚拟化的可行性分析 | 第22-23页 |
2.4 本章小结 | 第23-24页 |
第三章 基于WebAssembly的JavaScript代码虚拟化保护方法 | 第24-42页 |
3.1 JSVMP保护方法概述 | 第24-25页 |
3.2 JavaScript代码虚拟化 | 第25-32页 |
3.2.1 指令拆分 | 第26-28页 |
3.2.2 字符转移 | 第28页 |
3.2.3 虚拟指令和Handler设计 | 第28-31页 |
3.2.4 指令编码 | 第31-32页 |
3.3 基于WebAssembly的虚拟解释器设计 | 第32-36页 |
3.3.1 虚拟解释器组件设计 | 第33-35页 |
3.3.2 虚拟解释器编译和调用 | 第35-36页 |
3.4 计算密集型JavaScript代码的虚拟化 | 第36-40页 |
3.4.1 虚拟化过程 | 第36-38页 |
3.4.2 虚拟解释器实现 | 第38-40页 |
3.5 本章小结 | 第40-42页 |
第四章 JSVMP原型系统的设计与实现 | 第42-52页 |
4.1 系统模块设计 | 第42-46页 |
4.1.1 代码预处理模块 | 第42-44页 |
4.1.2 代码虚拟化模块 | 第44-45页 |
4.1.3 虚拟解释器生成模块 | 第45-46页 |
4.2 关键算法设计 | 第46-49页 |
4.2.1 虚拟化保护过程算法 | 第46-47页 |
4.2.2 指令拆分算法 | 第47-48页 |
4.2.3 虚拟解释器调度算法 | 第48-49页 |
4.3 系统界面设计 | 第49-50页 |
4.4 本章小结 | 第50-52页 |
第五章 系统实验评估与分析 | 第52-66页 |
5.1 实验设计 | 第52-54页 |
5.1.1 实验环境和实验步骤 | 第52页 |
5.1.2 测试用例和对比工具介绍 | 第52-54页 |
5.2 性能评估 | 第54-56页 |
5.2.1 空间开销对比 | 第54-55页 |
5.2.2 时间开销对比 | 第55-56页 |
5.3 基于逆向分析的安全性评估 | 第56-65页 |
5.3.1 加密工具保护逆向分析 | 第57-59页 |
5.3.2 混淆工具保护逆向分析 | 第59-62页 |
5.3.3 JSVMP保护逆向分析 | 第62-64页 |
5.3.4 逆向分析结果对比 | 第64-65页 |
5.4 本章小结 | 第65-66页 |
总结与展望 | 第66-68页 |
总结 | 第66-67页 |
展望 | 第67-68页 |
参考文献 | 第68-72页 |
致谢 | 第72-74页 |
攻读硕士学位期间取得的科研成果 | 第74-75页 |