基于二进制代码注入框架的内存备份
摘要 | 第1-7页 |
ABSTRACT | 第7-12页 |
第一章 绪论 | 第12-20页 |
·研究背景及意义 | 第12-13页 |
·研究目标 | 第13-14页 |
·国内外研究现状 | 第14-18页 |
·硬件方案 | 第14-17页 |
·软件方案 | 第17-18页 |
·本论文的研究内容 | 第18-19页 |
·本论文的组织结构 | 第19-20页 |
第二章 内存备份和二进制翻译相关技术的介绍 | 第20-32页 |
·实现内存备份的不同机制 | 第20-25页 |
·双机/多机内存备份技术 | 第20-21页 |
·单机内存备份和二进制翻译 | 第21-25页 |
·计算机指令集介绍 | 第25-26页 |
·IA32 和 X86-64 以及指令集分类 | 第25页 |
·CISC 和 RISC 的优缺点 | 第25-26页 |
·不同指令集对于本论文的影响 | 第26页 |
·操作系统内核态和用户态 | 第26-28页 |
·操作系统特权级别 | 第26-27页 |
·操作系统的系统调用 | 第27-28页 |
·词法解析工具 Lex 和语法解析工具 Yacc | 第28-30页 |
·本章小结 | 第30-32页 |
第三章 二进制代码注入框架设计 | 第32-40页 |
·Multimem 系统全局架构 | 第32-35页 |
·原始内存和镜像内存的分布 | 第32-33页 |
·用户态和内核态的修改 | 第33-35页 |
·内存同步机制 | 第35-38页 |
·GCC 基本流程 | 第35-36页 |
·代码分析注入模块 | 第36-38页 |
·标准库的处理 | 第38页 |
·本章小结 | 第38-40页 |
第四章 二进制代码注入框架实现 | 第40-56页 |
·处理指令的种类选择 | 第40-41页 |
·编程语言的分类 | 第40-41页 |
·汇编语言实现的优点 | 第41页 |
·定制编译过程 | 第41-43页 |
·修改编译程序的命令 | 第41-42页 |
·修改系统 GCC 程序 | 第42-43页 |
·二进制代码分析和注入模块 | 第43-47页 |
·分析提取所有的写内存指令 | 第43-46页 |
·确定镜像内存单元地址 | 第46-47页 |
·注入镜像指令 | 第47页 |
·汇编指令代码的分类处理 | 第47-54页 |
·数据转移指令处理 | 第48-49页 |
·算术运算、逻辑操作、移位、位和字节等指令处理 | 第49-50页 |
·控制转移指令处理 | 第50-53页 |
·串指令处理 | 第53-54页 |
·其它指令处理以及对 X86-64 的支持 | 第54页 |
·本章小结 | 第54-56页 |
第五章 实验与分析 | 第56-64页 |
·实验测试环境 | 第56页 |
·正确性分析 | 第56-57页 |
·Multimem 对操作系统和应用程序的影响 | 第57-62页 |
·XV6 相关测试 | 第57-59页 |
·Sysbench 相关测试 | 第59-61页 |
·SQLite 的相关测试 | 第61-62页 |
·本章小结 | 第62-64页 |
第六章 总结及展望 | 第64-66页 |
参考文献 | 第66-70页 |
致谢 | 第70-72页 |
攻读硕士期间已发表或录用的论文 | 第72页 |