基于开放编译的C++程序静态分析机制

基于开放编译的C++程序静态分析机制

论文摘要

随着软件系统的日益复杂,软件开发、维护以及进化的大部分工作和主要成本集中在对现有系统的理解上。逆向工程是一种辅助程序理解的重要手段,是软件工程的一个重要分支,它通过抽取程序的静态信息和动态信息来抽象其高层表示,辅助程序理解。本文介绍了软件逆向工程的基本原理及研究现状,深入分析了基于反射技术的开放编译器OpenC++。通过修改源代码、扩充MOP接口,成功地把OpenC++改造成为程序分析工具。通过该工具对目标系统进行深入的静态分析获得的信息不仅可以用来恢复系统的静态模型,也可以用来直接恢复出符合UML2.0标准的序列图和辅助对目标系统的植入。论文中提出的所有方法、算法均已在XDRE(XiDian Reverse Engineering,西电逆向工程)工具中实现。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 逆向工程
  • 1.1.1 逆向工程的重要性
  • 1.1.2 逆向工程研究方法和目标
  • 1.1.3 国内外逆向工具现状
  • 1.2 项目背景
  • 1.3 项目工作介绍
  • 1.3.1 项目工作简介
  • 1.3.2 项目工作进展
  • 1.4 本文工作及论文结构
  • 第二章 相关理论与技术
  • 2.1 反射技术
  • 2.1.1 反射概念
  • 2.1.2 反射原理
  • 2.1.3 反射模型
  • 2.2 开放编译器OpenC++
  • 2.2.1 OpenC++简介
  • 2.2.2 OpenC++的工作原理
  • 2.2.3 OpenC++对静态解析的支持
  • 2.2.4 OpenC++ MOP分析
  • 2.3 UML 2.0
  • 2.3.1 UML概述
  • 2.3.2 UML2.0 中序列图的改进
  • 第三章 类信息的抽取方法
  • 3.1 对OpenC++的扩展策略
  • 3.2 类信息的抽取
  • 3.2.1 正确的区分结构、联合、类和模板
  • 3.2.2 OpenC++中与类信息提取相关的接口
  • 3.2.3 获取属性和方法返回值的类型
  • 3.2.4 为类信息的分层抽象提供支持
  • 3.3 类信息的存储
  • 3.4 实例分析
  • 3.4.1 测试用例
  • 3.4.2 结果分析
  • 3.5 本章小结
  • 第四章 序列图信息的抽取方法
  • 4.1 传统序列图恢复方法
  • 4.2 UML2.0 序列图相关概念
  • 4.2.1 序列图的主要构成要素
  • 4.2.2 框架元件(Frame Element)
  • 4.2.3 组合碎片(Combined Fragment)
  • 4.3 对OpenC++的扩展策略
  • 4.4 静态分析抽取序列图信息
  • 4.4.1 抽取序列图信息的算法
  • 4.4.2 对动态方式的支持
  • 4.4.3 静态程序依赖图的定义
  • 4.4.4 静态程序依赖图信息的获取
  • 4.5 实例分析
  • 4.5.1 测试用例
  • 4.5.2 结果分析
  • 4.6 本章小结
  • 第五章 总结与展望
  • 致谢
  • 参考文献
  • 在读期间发表论文
  • 相关论文文献

    • [1].新工科电子商务专业面向对象课程体系教学改革[J]. 辽宁科技学院学报 2020(03)
    • [2].基于电表的面向对象与面向对象协议设计方法应用[J]. 价值工程 2019(04)
    • [3].浅析关于面向对象协议试点工作内容[J]. 中国仪器仪表 2018(02)
    • [4].面向对象技术在微波通信电路设计中的应用[J]. 科技与创新 2016(11)
    • [5].那面向对象技术与软件工程分析[J]. 电脑迷 2017(06)
    • [6].面向对象软件测试技术研究[J]. 现代职业教育 2017(03)
    • [7].面向对象程序设计语言的哲学思考[J]. 魅力中国 2017(05)
    • [8].面向对象主流切片表示法的比较研究[J]. 计算机工程与设计 2008(05)
    • [9].一种面向对象继承复杂性的综合度量[J]. 计算机工程与应用 2008(20)
    • [10].在软件易变性上下文中类规模对面向对象度量的影响分析[J]. 计算机应用研究 2017(08)
    • [11].基于面向对象技术的图书管理系统研究[J]. 中外企业家 2016(14)
    • [12].基于面向对象技术的空间数据库设计和实现[J]. 电子测试 2015(09)
    • [13].高等职业教育“面向对象”教学模式之构建[J]. 职业教育研究 2011(02)
    • [14].面向对象仿真初探[J]. 硅谷 2011(05)
    • [15].面向对象基本概念的研究[J]. 内蒙古民族大学学报 2011(02)
    • [16].面向对象设计方法学探讨[J]. 网络与信息 2011(04)
    • [17].面向对象分类方法在全国第二次土地调查中的应用[J]. 测绘技术装备 2009(02)
    • [18].面向对象分类方法在第二次土地调查中的应用研究[J]. 遥感信息 2009(06)
    • [19].面向语言编程——面向对象之后的革命[J]. 程序员 2008(05)
    • [20].浅谈博弈和面向对象理念在铁路体系管理中的应用[J]. 郑铁科技 2016(03)
    • [21].基于面向对象分类法和高分一号影像的露天矿区分类技术研究[J]. 青海大学学报 2018(01)
    • [22].基于面向对象技术的飞行仿真研究[J]. 计算机技术与发展 2010(07)
    • [23].面向对象与数据库技术结合发展现状研究[J]. 科技资讯 2009(03)
    • [24].基于面向对象技术药品管理系统开发[J]. 现代计算机(专业版) 2009(08)
    • [25].面向对象技术在学生管理系统设计中的应用[J]. 电脑与信息技术 2009(05)
    • [26].备件模型管理的面向对象技术方式的实现[J]. 科技广场 2008(12)
    • [27].面向对象协议计量设备的应用与分析[J]. 宁夏电力 2019(04)
    • [28].基于案例驱动的面向对象技术课程教学改革与实践[J]. 软件 2017(11)
    • [29].基于面向对象分类方法的低效用地信息提取研究——以福建省晋江市为例[J]. 科技创新导报 2018(03)
    • [30].基于内部视角的C++面向对象教学实践[J]. 中国校外教育 2010(08)

    标签:;  ;  ;  ;  ;  

    基于开放编译的C++程序静态分析机制
    下载Doc文档

    猜你喜欢