| 摘要 | 第1-6页 |
| Abstract | 第6-13页 |
| 第1章 绪论 | 第13-20页 |
| ·课题研究背景及意义 | 第13-14页 |
| ·国内外研究现状 | 第14-18页 |
| ·课题主要研究内容 | 第18-19页 |
| ·论文结构 | 第19-20页 |
| 第2章 虚拟机设计 | 第20-29页 |
| ·x86 CPU 架构 | 第20-22页 |
| ·x86 指令格式 | 第22页 |
| ·VM 设计 | 第22-28页 |
| ·指令流 | 第23页 |
| ·内存 | 第23-25页 |
| ·CPU | 第25-28页 |
| ·本章小结 | 第28-29页 |
| 第3章 反汇编 | 第29-58页 |
| ·PE 文件的结构 | 第29-31页 |
| ·反汇编 | 第31页 |
| ·基本块 | 第31-35页 |
| ·定义和划分算法 | 第31-32页 |
| ·控制流图 | 第32-34页 |
| ·具体实现 | 第34-35页 |
| ·函数 | 第35-38页 |
| ·定义 | 第35页 |
| ·识别函数 | 第35-38页 |
| ·库函数 | 第38-46页 |
| ·难点 | 第38-40页 |
| ·识别思路 | 第40-41页 |
| ·具体实现 | 第41-46页 |
| ·启动函数 | 第46-48页 |
| ·识别方法 | 第46-47页 |
| ·具体实现 | 第47-48页 |
| ·函数参数 | 第48-51页 |
| ·参数的传递规范 | 第48-49页 |
| ·在堆栈中对参数进行寻址 | 第49-50页 |
| ·具体实现 | 第50-51页 |
| ·局部堆栈变量 | 第51-56页 |
| ·原理 | 第51-53页 |
| ·识别思路及难点 | 第53-54页 |
| ·具体实现 | 第54-56页 |
| ·全局变量 | 第56-57页 |
| ·本章小结 | 第57-58页 |
| 第4章 控制流分析 | 第58-70页 |
| ·区间理论 | 第58-60页 |
| ·区间 | 第58页 |
| ·区间划分 | 第58-59页 |
| ·区间图 | 第59-60页 |
| ·条件选择 | 第60-63页 |
| ·结构 | 第60-62页 |
| ·识别算法 | 第62-63页 |
| ·循环 | 第63-69页 |
| ·支配节点 | 第63-65页 |
| ·自然循环 | 第65页 |
| ·内循环 | 第65页 |
| ·循环的类型 | 第65-66页 |
| ·识别算法 | 第66-69页 |
| ·本章小结 | 第69-70页 |
| 第5章 数据流分析 | 第70-82页 |
| ·类型识别 | 第70-76页 |
| ·符号表 | 第70页 |
| ·可识别的类型 | 第70-71页 |
| ·识别规则 | 第71-72页 |
| ·识别算法 | 第72-76页 |
| ·全局数据流分析 | 第76-81页 |
| ·概念 | 第76-77页 |
| ·数据流方程的一般形式 | 第77页 |
| ·到达-定值数据流方程 | 第77-81页 |
| ·本章小结 | 第81-82页 |
| 第6章 缓冲区溢出漏洞检测模型 | 第82-95页 |
| ·不安全函数的调用问题 | 第82页 |
| ·不安全函数的调用漏洞检测 | 第82-83页 |
| ·循环写内存问题 | 第83-85页 |
| ·循环写内存的循环控制条件 | 第84页 |
| ·循环写内存溢出的判断条件 | 第84-85页 |
| ·位移值和计数值的计算 | 第85-89页 |
| ·静态分析 | 第87-88页 |
| ·动态分析 | 第88-89页 |
| ·实验结果 | 第89-94页 |
| ·MS03-020 漏洞的检测 | 第90-91页 |
| ·MS03-020 补丁 | 第91-92页 |
| ·McAfee 安全中心ActivX 控件 | 第92-93页 |
| ·金山在线杀毒UpdateOcx2.dll | 第93页 |
| ·EFS Easy Chat Server 2.2 | 第93-94页 |
| ·本章小结 | 第94-95页 |
| 结论 | 第95-96页 |
| 参考文献 | 第96-100页 |
| 攻读硕士学位期间所发表的学术论文 | 第100-101页 |
| 致谢 | 第101页 |