反编译中的数据类型恢复问题

反编译中的数据类型恢复问题

论文题目: 反编译中的数据类型恢复问题

论文类型: 硕士论文

论文专业: 概率论与数理统计

作者: 夏靓

导师: 江其保

关键词: 反编译技术,局部性原理,数据类型恢复算法,形式化语言模型,类型系统,类型

文献来源: 东南大学

发表年度: 2005

论文摘要: 反编译技术是将机器代码程序变换成与其功能等价的高级语言形式的代码的有关技术。它对于软件的移植、理解、维护以及开发都起着重要作用。 目前,反编译技术研究的热点问题是数据类型恢复问题,比较成熟和完善的数据类型恢复技术尚未被提出。本文对该问题进行了理论上的探讨,并提出了一个局部性原理的假设。基于该假设,我们提出了一套反编译的数据类型恢复算法。并给出了该算法的一个具体实现,该实现利用到了编译器设计中常用的两个工具:Lex和Yacc.实验结果说明,我们的数据类型恢复算法的效果比较理想。 该数据类型恢复算法具有如下几个特点:严格且完备的理论基础、对数据类型恢复问题讨论地比较全面、实现简单、具有较强的实用性和可推广性。 我们还对面向对象编程语言中的类class)类型的识别问题进行了研究,并得出了该问题本质上已不再是简单的数据类型恢复,而是程序的结构化问题的结论。 为了从理论上对数据类型恢复问题进行探讨,我们建立了两个形式化的简化的语言模型:源语言模型(C-Sub)和目标语言模型(Assembly-Sub)。通过研究它们之间的编译和反编译的数据变化的实质,提出了局部性原理的假设。并在该假设基础上,为Assembly-Sub语言定义了一个类型系统。在此系统中,我们为每条指令都制定严格的类型推导规则。我们的数据类型恢复算法依照这组规则对Assembly-Sub程序的所有指令按一定顺序进行逐条分忻,收集其中的基本类型变量的类型信息。算法最后再对这些信息进行综合分析,以识别程序中可能存在的复杂类型变量。从而达到了数据类型恢复的目的。 我们还将该算法的实现推广到了源语言为C语言,编译器为Turbo C v2.0,目标语言为Intel 8086汇编的情况,实现过程中我们利用到了编译器设计中常用的两个工具:Lex和Yacc.它们在很大程度上简化了我们算法的实现。

论文目录:

摘要

Abstract

第一章 背景介绍

§1.1 反编译技术简介

§1.2 发展历史和现状

§1.3 本文的主要工作及内容安排

第二章 反编译技术综述

§2.1 运行时环境

§2.1.1 程序的机器代码格式

§2.1.2 运行时的堆栈结构

§2.1.3 机器代码中数据的存贮

§2.2 反编译过程的模块划分

§2.3 控制流分析

§2.3.1 控制流分析基本原理

§2.3.2 常用的高级控制结构

§2.3.3 区间理论

§2.3.4 可归约控制流图的结构化算法

§2.3.5 不可归约控制流图的结构化算法

§2.3.6 总结

§2.4 数据类型恢复问题简介

§2.5 库函数识别

§2.6 反编译过程中的其他模块

§2.6.1 反汇编

§2.6.2 语言和编译器版本识别

§2.6.3 中间语言

§2.6.4 数据流分析

§2.6.5 翻译器

§2.7 总结

第三章 数据类型恢复算法及其理论基础

§3.1 概述

§3.2 数据类型恢复问题的研究方法

§3.3 数据类型恢复算法的理论基础

§3.3.1 两个模型语言的形式化定义

§3.3.2 编译器本质及局部性原理

§3.4 Assembly-Sub的类型系统及其类型恢复算法

§3.5 数据类型恢复算法实例分析

§3.6 class类型识别的讨论

第四章 数据类型恢复算法的实现技术

§4.1 Lex和Yacc在数据类型信息收集中的应用

§4.2 对数据类型信息进行综合分析的实现

§4.3 一些特殊的变量类型的识别

§4.4 与其它数据类型恢复技术的比较

第五章 结论及进一步的工作

§5.1 结论

§5.2 进一步的工作

参考文献

发布时间: 2007-06-11

参考文献

  • [1].软件数据类型信息混淆技术[D]. 高为.南京大学2012
  • [2].反编译中数据类型重构技术研究[D]. 何东.解放军信息工程大学2012
  • [3].TTCN-3测试平台中数据类型子系统的研究与实现[D]. 高改霞.内蒙古大学2008
  • [4].Apla组合数据类型的Delphi实现[D]. 康亮.江西师范大学2008
  • [5].基于JAVA语言的混淆器设计模型研究[D]. 王应战.陕西师范大学2010
  • [6].小型医院管理信息系统设计与实现[D]. 蔡昌建.电子科技大学2014
  • [7].基于PAR方法下的组合数据类型的Delphi实现[D]. 廖卫兵.华东师范大学2008
  • [8].基于动态建模的数字化医院内部数据整合技术研究[D]. 张艳鹏.上海交通大学2009
  • [9].通用R树的设计与实现[D]. 李慧.江苏大学2009
  • [10].APLA组合数据类型的C++实现[D]. 蒋毅剑.江西师范大学2002

相关论文

  • [1].反编译中数据类型重构技术研究[D]. 何东.解放军信息工程大学2012
  • [2].反编译器C-Decompiler关键技术的研究和实现[D]. 陈耿标.上海交通大学2010
  • [3].基于SWF中AS的反编译的研究[D]. 何宏亮.武汉理工大学2009
  • [4].基于动态二进制翻译技术的反编译研究[D]. 张柏年.上海交通大学2008
  • [5].静态二进制翻译中基本数据类型分析的研究与实现[D]. 孙维新.解放军信息工程大学2007
  • [6].反编译中处理分支指令的关键技术研究与实现[D]. 杨克峤.解放军信息工程大学2007
  • [7].C++逆编译中模板库函数识别研究[D]. 胡政.中国科学技术大学2006
  • [8].软件逆向工程相关技术研究与实现[D]. 张晓锋.电子科技大学2007
  • [9].可执行程序的反编译[D]. 雷涛.华中科技大学2004
  • [10].基于编译原理技术的反汇编实现[D]. 王勇.吉林大学2004

标签:;  ;  ;  ;  ;  ;  

反编译中的数据类型恢复问题
下载Doc文档

猜你喜欢