逆编译中几项关键技术研究
| 第一章 绪论 | 第1-24页 |
| ·逆编译简介 | 第16-17页 |
| ·定义 | 第16页 |
| ·产生背景 | 第16-17页 |
| ·作用 | 第17-18页 |
| ·研究历史及现状 | 第18-21页 |
| ·研究方法 | 第21-23页 |
| ·基于文法的方法 | 第21-22页 |
| ·基于生成编译器的逻辑程序设计 | 第22页 |
| ·基于知识的逆编译 | 第22页 |
| ·逆编译器的编译器 | 第22-23页 |
| ·本章小结 | 第23-24页 |
| 第二章 关键问题和解决办法 | 第24-32页 |
| ·引言 | 第24-25页 |
| ·存在的关键问题 | 第25-28页 |
| ·用户库函数识别研究空白 | 第25-26页 |
| ·开关结构恢复需人工干预 | 第26-27页 |
| ·部分复合数据类型恢复的准确性有待提高 | 第27-28页 |
| ·缺乏利用中间结果的工具 | 第28页 |
| ·本文研究内容和创新点 | 第28-31页 |
| ·用户库函数识别 | 第29页 |
| ·开关结构的自动恢复 | 第29-30页 |
| ·按特征恢复数据类型 | 第30页 |
| ·中间语言规范描述及其编译器的设计和实现 | 第30-31页 |
| ·本章小结 | 第31-32页 |
| 第三章 用户库函数识别 | 第32-52页 |
| ·引言 | 第32-33页 |
| ·意义 | 第32-33页 |
| ·创新点 | 第33页 |
| ·用户库函数识别模型 | 第33-35页 |
| ·库函数存储特征 | 第35-36页 |
| ·代码特征分析 | 第35页 |
| ·符号信息分析 | 第35-36页 |
| ·获取库函数符号信息 | 第36-48页 |
| ·asm代码分析 | 第37-39页 |
| ·out中间代码 | 第39-40页 |
| ·符号表 | 第40-41页 |
| ·asm到out | 第41-44页 |
| ·out到高级语言 | 第44页 |
| ·实用结果 | 第44-48页 |
| ·可执行文件中的库函数存储特性及识别模板构造 | 第48-50页 |
| ·特征冲突 | 第50-51页 |
| ·实用结果讨论 | 第51页 |
| ·本章小结 | 第51-52页 |
| 第四章 开关结构的自动恢复 | 第52-74页 |
| ·引言 | 第52-53页 |
| ·意义 | 第52页 |
| ·创新点 | 第52-53页 |
| ·开关结构在目标代码中的存储特点 | 第53-61页 |
| ·开关结构的语法 | 第53-54页 |
| ·开关结构及开关表 | 第54-61页 |
| ·提取开关结构引导区中信息 | 第61-66页 |
| ·开关结构引导区的确定 | 第61-62页 |
| ·模式语言GEMPL | 第62-63页 |
| ·使用模式语言描述开关结构引导区 | 第63-65页 |
| ·利用模式语言增添模板库内容 | 第65-66页 |
| ·开关结构引导区的匹配和转换 | 第66-70页 |
| ·开关结构引导区匹配算法 | 第66-67页 |
| ·目标代码中开关结构的程序流图表示 | 第67-68页 |
| ·开关结构引导区的转换 | 第68-70页 |
| ·中间代码到高级结构变换 | 第70-72页 |
| ·实验结果和比较讨论 | 第72-73页 |
| ·本章小结 | 第73-74页 |
| 第五章 按特征恢复数据类型 | 第74-88页 |
| ·引言 | 第74-75页 |
| ·意义 | 第74页 |
| ·创新点 | 第74-75页 |
| ·变量单元的寻址表达式合并化简 | 第75-76页 |
| ·变量存储单元的各种特征说明 | 第76-79页 |
| ·主要特征项 | 第76-78页 |
| ·特征项及特征项值的计算 | 第78-79页 |
| ·规则表 | 第79-80页 |
| ·使用效果 | 第80-82页 |
| ·二义性讨论 | 第82-83页 |
| ·形实结合和指针变量链传送 | 第83页 |
| ·纯变量下标的数组类型恢复 | 第83-87页 |
| ·问题的提出 | 第83页 |
| ·数组类型寻址表达式形式 | 第83-85页 |
| ·寻址表达式优化 | 第85页 |
| ·数组信息的收集与分析 | 第85-86页 |
| ·实验结果 | 第86-87页 |
| ·结论 | 第87页 |
| ·本章小结 | 第87-88页 |
| 第六章 中间语言及其编译器的设计 | 第88-110页 |
| ·引言 | 第88-89页 |
| ·意义 | 第88-89页 |
| ·创新点 | 第89页 |
| ·中间语言 | 第89-91页 |
| ·程序结构 | 第89-90页 |
| ·主要语句的语义 | 第90页 |
| ·中间语言的特点 | 第90-91页 |
| ·数据类型 | 第91-93页 |
| ·局部变量 | 第91页 |
| ·形式参数 | 第91-92页 |
| ·全局变量 | 第92页 |
| ·复合地址表达式 | 第92页 |
| ·复合寻址表达式合并化简 | 第92-93页 |
| ·编译器的框架 | 第93-94页 |
| ·符号表 | 第94-99页 |
| ·系统符号表 | 第94-95页 |
| ·用户标识符表 | 第95页 |
| ·全局变量表 | 第95-96页 |
| ·局部变量表 | 第96-97页 |
| ·用户函数表 | 第97页 |
| ·变量初始化和常量存储 | 第97页 |
| ·标号表 | 第97-98页 |
| ·开关结构表 | 第98-99页 |
| ·语义程序的构造 | 第99-104页 |
| ·代码翻译 | 第99-102页 |
| ·语法和语义分析程序 | 第102-104页 |
| ·存储分配 | 第104页 |
| ·目标代码的生成 | 第104-105页 |
| ·实验结果及讨论 | 第105-109页 |
| ·实验例 | 第105-109页 |
| ·讨论 | 第109页 |
| ·本章小结 | 第109-110页 |
| 第七章 存在的问题和未来工作 | 第110-113页 |
| ·存在的问题 | 第110-111页 |
| ·进一步工作 | 第111-113页 |
| 第八章 结束语 | 第113-114页 |
| 攻读博士学位期间发表的论文 | 第114-115页 |
| 攻读博士学位期间参加的科研课题 | 第115-116页 |
| 致谢 | 第116-117页 |
| 参考文献 | 第117-125页 |
| 附录 | 第125-126页 |