| 摘要 | 第1-6页 |
| Abstract | 第6-10页 |
| 图目录 | 第10-11页 |
| 表目录 | 第11-12页 |
| 第一章 引言 | 第12-17页 |
| ·研究背景 | 第12-13页 |
| ·研究现状 | 第13-15页 |
| ·逆向工程发展历史 | 第13页 |
| ·逆向工程的分类 | 第13-14页 |
| ·反编译研究现状 | 第14-15页 |
| ·本文的主要工作 | 第15页 |
| ·本文的组织结构 | 第15-17页 |
| 第二章 技术和工具介绍及分析 | 第17-25页 |
| ·逆向工程合法性论述 | 第17页 |
| ·读取内存数据的方法 | 第17-18页 |
| ·反汇编器 | 第18页 |
| ·结构体简介 | 第18-19页 |
| ·调用约定简介 | 第19-20页 |
| ·cdecl调用约定 | 第19页 |
| ·stdcall调用约定 | 第19页 |
| ·x86 fastcall调用约定 | 第19-20页 |
| ·C++调用约定 | 第20页 |
| ·Microsoft Visual C++虚函数的实现机制分析 | 第20-23页 |
| ·Cheat Engine介绍 | 第23-24页 |
| ·查找变化内存数值的流程 | 第23页 |
| ·指针搜索功能 | 第23-24页 |
| ·跟踪读取修改内存的指令 | 第24页 |
| ·FileMon介绍 | 第24-25页 |
| 第三章 获取系统结构的方法及应用 | 第25-33页 |
| ·MSTS简介 | 第25页 |
| ·通过分析文件获取设计信息的方法 | 第25-29页 |
| ·TDB文件总体结构结构分析 | 第25-26页 |
| ·MSTS对铁轨的抽象化描述 | 第26-27页 |
| ·铁轨连接方式的描述 | 第27页 |
| ·Trltem的信息 | 第27-29页 |
| ·TrVectorNode的简单介绍 | 第29页 |
| ·通过监控文件系统获取处理文件流程的方法 | 第29-30页 |
| ·通过了解领域知识获取设计信息的方法 | 第30-31页 |
| ·通过读取文件模块了解内存结构的方法 | 第31-33页 |
| 第四章 获取内存数据的方法及应用 | 第33-47页 |
| ·通过内存搜索查找静态内存数据的方法 | 第33页 |
| ·通过合理推测获取数据结构的方法 | 第33-36页 |
| ·MSTS中双链表的表示方法 | 第34页 |
| ·MSTS双链表结构 | 第34页 |
| ·遍历MSTS中双链表的方法 | 第34-36页 |
| ·通过指针搜索寻找动态分配内存数据的方法 | 第36-37页 |
| ·通过已有数据推测相关信息的方法 | 第37-38页 |
| ·结合系统结构分析内存的方法 | 第38-42页 |
| ·TrVectorNode内存分布 | 第38-39页 |
| ·TrJunctionNode内存分布 | 第39-40页 |
| ·获取下一个SVectorNode的方法 | 第40-41页 |
| ·获取路径上所有SVectorNode的方法 | 第41-42页 |
| ·通过反汇编、反编译获取需要信息的方法 | 第42-47页 |
| ·获取前方信号灯信息的方法 | 第42页 |
| ·获取前方标志限速信息的实现 | 第42-44页 |
| ·获取临时限速的方法 | 第44-47页 |
| 第五章 MSTS辅助工具的实现 | 第47-57页 |
| ·控制MSTS的方法 | 第47-48页 |
| ·模拟按键法 | 第47-48页 |
| ·内存改写法 | 第48页 |
| ·控制机车的算法 | 第48-51页 |
| ·自动驾驶系统运行界面图 | 第51-52页 |
| ·改进后的运行监控器 | 第52-53页 |
| ·列车轨道曲线和坡度的获取方法 | 第53-57页 |
| 第六章 总结与展望 | 第57-59页 |
| ·总结 | 第57页 |
| ·进一步工作展望 | 第57-59页 |
| 参考文献 | 第59-61页 |
| 致谢 | 第61-62页 |
| 参与项目 | 第62-64页 |