学位论文 > 优秀研究生学位论文题录展示

Windows系统的动态代码插装技术研究及应用

作 者: 朱晓东
导 师: 杨根兴;苏从勇
学 校: 上海交通大学
专 业: 软件工程
关键词: 动态代码插装 面向方面编程 调试 代码追踪 缺陷定位 软件测试
分类号: TP311.11
类 型: 硕士论文
年 份: 2007年
下 载: 142次
引 用: 5次
阅 读: 论文下载
 

内容摘要


代码插装是一种通过修改或删除现有指令并插入新的指令来改变程序执行行为的技术。代码插装是一种强大的了解和修改程序行为的机制,被广泛使用在软件产业的诸多领域,如软件设计,软件开发,软件测试,软件调试,软件跟踪,访问控制,性能评估,分布式计算以及面向方面编程。动态代码插装通过在运行的程序中插装监视代码来获取程序的执行信息,是一种非常有效的定位缺陷和发现问题的手段。在这篇文章中,重点研究了Windows系统下的动态代码插装技术及其在软件跟踪和问题诊断上的应用,基于微软研究院提供的Detours技术和Dbghelp API,提出了一个新的自动跟踪Win32函数的方案并实现了该方案的原型。本文的函数跟踪方案无需访问源代码即可自动生成任何指定Win32函数的跟踪代码。

全文目录


摘要  3-4
ABSTRACT  4-7
第一章 绪论  7-12
  1.1 引言  7-8
  1.2 课题来源  8
  1.3 课题的目的意义  8-9
  1.4 国内外研究现状和文献综述  9-10
  1.5 本论文的工作及论文的组织  10-11
  1.6 本章小节  11-12
第二章 代码插装相关技术及应用  12-20
  2.1 AOP 和插装  12-15
  2.2 软件测试与插装  15-17
  2.3 .NET,JAVA 与插装  17-18
  2.4 软件调试与插装  18-19
  2.5 本章小节  19-20
第三章 WINDOWS 动态插装技术研究  20-44
  3.1 对目标进程插装代码的三种方法  20-24
    3.1.1 使用SetWindowsHookEx  20-21
    3.1.2 使用CreateRemoteThread 和 LoadLibrary  21-23
    3.1.3 使用WriteProcessMemory 和CreateRemoteThread  23-24
  3.2 两种代码插装点的选择技术  24-27
    3.2.1 修改导入地址表(Import Address Table)技术  24-26
    3.2.2 改写插装点的部分代码使其跳转到插装代码的技术  26-27
  3.3 DETOURS 技术  27-30
    3.3.1 Detours 的trampoline 设计  27-29
    3.3.2 Detours 备份及恢复被修改的部分代码的策略  29-30
    3.3.3 Detours 其他功能  30
  3.4 使用DETOURS 库  30-43
    3.4.1 Detours 2.0  30-34
    3.4.2 一个Detours 2.0 简单应用  34-36
    3.4.3 插装工具Injdll.exe  36-37
    3.4.4 调试_traceapi.dll  37-43
  3.5 本章小节  43-44
第四章 WIN32 函数自动跟踪器的技术与原型实现  44-75
  4.1 函数跟踪技术比较  44-48
    4.1.1 修改源代码加入日志记录  44
    4.1.2 动态插装监视代码到目标程序  44-45
    4.1.3 用代理DLL 实现API 函数的监视  45-46
    4.1.4 利用调试函数实现跟踪监视  46-47
    4.1.5 动态自动函数跟踪器的原理  47-48
  4.2 X86 处理器架构下的函数调用约定  48-54
    4.2.1 假如调用约定不匹配  48-53
    4.2.2 x86 架构的常用函数调用约定  53-54
  4.3 获取函数的信息  54-65
    4.3.1 符号文件  54-56
    4.3.2 获取符号信息的API  56-59
    4.3.3 Enumsym 和Symbyname  59-65
  4.4 WIN32 函数自动跟踪器_AUTOTRACE  65-73
    4.4.1 _autotrace 的功能定义  65-66
    4.4.2 _autotrace 的数据结构,流程图及函数说明  66-72
    4.4.3 _autotrace 的测试及调试  72-73
  4.5 本章小节  73-75
第五章 插装技术在软件支持中的实际应用  75-85
  5.1 代码自动跟踪(TRACE)上的应用  75-76
  5.2 疑难问题的诊断上的应用  76-77
  5.3 缺陷修复上的应用  77
  5.4 问题诊断及缺陷跟踪应用实例  77-84
  5.5 本章小节  84-85
第六章 总结和展望  85-87
  6.1 研究总结  85
  6.2 研究展望  85-87
致谢  87-88
参考文献  88-91
测试记录(附录)  91-102
攻读硕士学位期间已发表和录用的论文  102

相似论文

  1. 面向对象分层测试的方法研究,TP311.53
  2. 基于形式化UML测试序列生成方法研究,TP311.53
  3. 基于程序切片的电子海图系统软件测试技术研究,TP311.53
  4. 用户权限管理系统可靠性测试的研究与应用,TP311.53
  5. 高职院校教学案例库的创建探究,TP311.53-4
  6. 基于中国电信闪铃系统与平台项目的软件测试,TP311.53
  7. 表面形貌区域法分析评定算法及软件系统研究,TP311.52
  8. WTB和MVB协议数据分析软件设计,TN915.04
  9. 基于JTAG的ARM11调试软件的设计与实现,TP332
  10. 基于Process Engine的Web Services自动化测试研究,TP311.52
  11. 自动化测试在分组传输网管接口测试中的应用,TP311.52
  12. 一个自动化软件测试系统的设计与实现,TP311.53
  13. 基于QTP的SAFFRON自动化测试框架的研究,TP311.52
  14. 电信BOSS系统软件测试,TP311.53
  15. 智能化变电站继电保护调试研究及应用,TM77
  16. 基于程序执行的错误定位方法,TP311.52
  17. 基于云计算的软件测试服务研究,TP311.53
  18. 镀膜小孔点衍射干涉仪的设计与调试,TH744.3
  19. 电子商务中的在线书店设计与实现,TP311.52
  20. A基地软件检测站测试管理信息系统设计及实施关键问题研究,TP311.52
  21. AMT参数调试及故障诊断系统的开发,TH165.3

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 程序设计 > 程序设计方法
© 2012 www.xueweilunwen.com