WIN32动态调试器的研究与实现

WIN32动态调试器的研究与实现

论文摘要

调试器是编写程序必不可少的工具软件,其功能强弱直接影响到开发效率。高级语言集成开发环境都带有全功能调试器,而计算机专业人员经常使用的宏汇编语言,在Windows下却没有完善的调试环境支持。本文对Win32调试的原理进行了深入研究,并实现了针对宏汇编语言的全功能调试器。本文从可执行文件产生的分析开始,对可执行文件的组织结构、模块的映射及两种类型Windows应用程序的本质区别等Windows程序的运行机制进行了深入分析。本课题完成的调试器主要包括静态分析和动态调试功能。静态分析通过对可执行文件的分析得到程序的入口地址、节区信息、从动态链接库导入的符号信息、自身导出的符号信息等内容。动态调试是在程序的执行过程中观察运行情况,调试时控制程序以单步方式、断点方式运行并可检查中间结果;消息处理是Windows应用程序的灵魂,钩子是系统提供的消息处理的监视点,利用钩子将被调试程序的消息捕获,显示这些消息可以观察程序的执行情况;Win32 API是操作系统提供的应用程序编程接口,拦截指定API就可以知道程序调用了哪些系统服务。单步运行、断点运行、消息捕获和API拦截是动态调试的主要内容。采用C++语言与汇编语言混合编程设计的调试器实例实现了以上功能,其正确性已得到了验证。论文最后对课题工作进行了总结,指出了研究的不足之处及对今后研究的展望。

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1 课题研究的背景和现状
  • 2 选题意义
  • 3 课题设计内容
  • 4 论文组织结构
  • 第二章 Windows 程序的运行机制分析
  • 1 Windows 应用程序编程接口
  • 2 Windows 可执行程序文件产生
  • 3 Windows 应用程序类型
  • 4 Windows 可执行程序文件格式
  • 4.1 可执行程序文件格式发展历程
  • 4.2 PE 格式可执行文件结构
  • 5 Win32 汇编语言源程序格式
  • 6 模块的映射
  • 7 内核对象和句柄
  • 8 保护模式与特权级
  • 9 匈牙利表示法
  • 第三章 静态分析的设计与实现
  • 1 动态链接库
  • 1.1 动态链接库的定义和组织
  • 1.2 动态链接库的数据共享
  • 1.3 动态链接库的使用
  • 2 静态分析
  • 2.1 程序入口地址获取
  • 2.2 可执行文件节区分析
  • 2.3 隐式加载的动态链接库分析
  • 2.4 形实替换程序
  • 2.5 PE 文件导出函数分析
  • 2.6 导入和导出的关系
  • 2.7 静态分析时的地址转换
  • 2.8 文件合法性校验
  • 第四章 动态调试的设计与实现
  • 1 Windows 下程序的执行方式
  • 1.1 进程的创建
  • 1.2 虚拟地址空间
  • 2 带命令行参数加载程序
  • 3 单步执行调试
  • 3.1 创建被调试进程
  • 3.2 调试循环体
  • 3.3 进程上下文环境的设置及寄存器的读写
  • 4 断点执行
  • 5 寄存器和变量的查看
  • 6 消息捕获
  • 7 API 拦截
  • 第五章 软件架构选择
  • 第六章 调试器运行实例
  • 第七章 结论
  • 1 课题总结
  • 2 后续工作的展望
  • 参考文献
  • 致谢
  • 在读期间取得的科研成果
  • 相关论文文献

    标签:;  ;  

    WIN32动态调试器的研究与实现
    下载Doc文档

    猜你喜欢