| 摘要 | 第1-4页 |
| Abstract | 第4-7页 |
| 缩略词 | 第7-8页 |
| 1 绪论 | 第8-11页 |
| ·什么是间谍软件 | 第8页 |
| ·间谍软件的危害 | 第8-9页 |
| ·本文研究内容 | 第9-10页 |
| ·论文的结构 | 第10-11页 |
| 2 间谍软件的研究 | 第11-17页 |
| ·间谍软件的一般特点 | 第11-13页 |
| ·间谍软件的分类 | 第13-14页 |
| ·Rootkit简介 | 第14-16页 |
| ·典型的rootkit的结构 | 第15页 |
| ·Rootkit的关键技术和分类 | 第15-16页 |
| ·本章小结 | 第16-17页 |
| 3 Rootkit的关键技术分析研究 | 第17-36页 |
| ·HOOK技术简介 | 第17-22页 |
| ·HOOK方法 | 第17-18页 |
| ·运行前挂钩 | 第18页 |
| ·运行时挂钩 | 第18-22页 |
| ·使用IAT挂钩本进程 | 第18-21页 |
| ·挂钩其它进程 | 第21-22页 |
| ·文件系统 | 第22-25页 |
| ·隐藏文件所需要的数据结构 | 第23-25页 |
| ·如何实现隐藏 | 第25页 |
| ·进程 | 第25-27页 |
| ·隐藏进程所需要的数据结构 | 第26页 |
| ·如何实现隐藏进程 | 第26-27页 |
| ·注册表 | 第27-29页 |
| ·获取注册表键 | 第27-28页 |
| ·隐藏键所需要修改的数据结构 | 第27-28页 |
| ·如何实现隐藏键 | 第28页 |
| ·获取注册表键值 | 第28-29页 |
| ·隐藏键值所需要的数据结构 | 第29页 |
| ·如何实现隐藏键值 | 第29页 |
| ·系统服务和驱动 | 第29-32页 |
| ·隐藏系统服务和驱动所需要的数据结构 | 第31-32页 |
| ·如何实现隐藏系统服务和驱动 | 第32页 |
| ·端口 | 第32-34页 |
| ·隐藏端口所需要的数据结构 | 第34页 |
| ·如何实现隐藏端口 | 第34页 |
| ·本章小结 | 第34-36页 |
| 4 反间谍软件的设计与实现 | 第36-53页 |
| ·整体构架设计概述 | 第36页 |
| ·功能模块的结构设计 | 第36-51页 |
| ·IE plugin部分的设计 | 第38-41页 |
| ·BHO关键技术研究 | 第38-39页 |
| ·检测BHO型间谍软件过程 | 第39-41页 |
| ·清除BHO型间谍软件过程 | 第41页 |
| ·Rootkit部分的设计 | 第41-51页 |
| ·执行路径分析(Execution Path Analysis) | 第41-43页 |
| ·EFLAGS寄存器 | 第43-44页 |
| ·Windows系统的中断 | 第44-48页 |
| ·Windows陷阱机制 | 第44页 |
| ·中断处理及其相关流程 | 第44-45页 |
| ·中断相关数据结构 | 第45-46页 |
| ·如何创建软件中断钩子 | 第46-48页 |
| ·指令计数的实现 | 第48-50页 |
| ·CPU指令特权级别 | 第49页 |
| ·内核级rootkit的指令计数 | 第49-50页 |
| ·用户级rootkit的指令计数 | 第50页 |
| ·检测rootkit的实现 | 第50-51页 |
| ·本章小结 | 第51-53页 |
| 5 结束语 | 第53-54页 |
| ·本文解决的问题 | 第53页 |
| ·今后的工作 | 第53-54页 |
| 致谢 | 第54-55页 |
| 参考文献 | 第55-56页 |