反编译器C-Decompiler关键技术的研究和实现

被引量 : 0次 | 上传用户:gaolei19890917
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为逆向领域的关键部分,反编译技术在软件安全和维护方面扮演着非常重要的角色。反编译技术起源于上世纪60年代,只比编译技术晚10年。但反编译技术的成熟度远不如编译技术。反编译领域存在很多亟需解决的难点。数据流分析是其中最为困难的一点。在过去50年的发展过程中,出现了不少实验性的反编译器。其中以Dcc,Boomerang和IDA Pro的反编译插件Hex_rays最为著名。然而这些反编译器都存在着各种各样的缺陷。例如,Dcc只能识别最简单的数据类型,是这三个反编译器中反编译功能最弱的一个;Boomerang则无法识别复杂的数据结构,如C++的类和多维数组;Hex_rays只能产生可读性较低的C伪代码,同样无法识别复杂的数据结构。本文在前人的基础上,提出了3项新技术用于反编译领域。分别为:1)基于轻量级虚拟机的二进制解析器。该技术可以有效地识别出子程序的参数和局部变量,同时解决了通过栈空间进行数据传递的问题。2)跨基本块寄存器传播技术。在已有的数据流分析方法中,寄存器的传播都是局限于基本块内部,这样导致基本块之间变量的关系不明显,寄存器传播不彻底。使用跨基本块寄存器传播技术可以方便地解决这问题。3)采用公有签名法进行C++ STL(标准模版库: Standard Template Library)识别。通过公有签名最优匹配的方法,可以有效识别不同编译器、不同优化选项组合、不同版本的C++ STL。在已公开的反编译器中,还没有任何一个能做到在没有符号信息的情况下识别C++ STL。本文提出的采用公有签名法进行C++ STL的识别可以在没有符号信息的情况下识别出C++ STL。另外,本文通过对Microsoft Visual C++编译器对C++的编译行为的分析,得出一套有效识别C++类、类成员函数以及类之间关系的方法,这是进行C++后续反编译的基础。以上3项新技术和对C++类、类成员函数和类之间的关系的识别在一个名为C-Decompiler的C/C++反编译上得以实现。它运行于windows操作系统,读取输入的exe文件,生成对应功能的C/C++代码。反编译器C-Decompiler架构的创新之处在于加入了堆栈监视器(Stack Monitor),它利用轻量级虚拟机技术对反编译的前端进行全程监视,从而实现堆栈跟踪的目的。实验结果方面,提供了8个测试程序,分别从不同的方面反映C-Decompiler的反编译能力。在函数分析,变量分析、代码缩减率(reduction%)、代码膨胀率(expansion%)、误识别率和漏识别率等方面均优于其他两个有名的反编译器:IDA Pro的Hex_rays和Boomerang。本文设计和实现的反编译器C-Decompiler于2009年10月获得“中科张江杯”青年技术创新大赛第一名。
其他文献
目的一是为了探讨脂肪含量以及脂肪分布与骨矿密度的关系,另一方面更重要的是为了研究中国人,白人,黑人三个种族间脂肪含量以及脂肪分布的不同对于骨矿密度的影响。方法1126
<正> 体外冲击波碎石术(ESWL)在临床应用已十年,取得满意的效果,由于ESWL适应症的扩大及所有冲击波(SW)能量的增高,产生了一些付作用,为此近年来国外进行高能冲击波(HESW)对
随着我国信息化建设的飞速发展,信息资源已成为企业的核心资源。目前,常见的企业内网安全防护产品侧重防范来自企业外部的入侵和攻击,对于内部人员的信息窃取、网络攻击等的
论文研究了对三种改性及负载改性聚酰胺树脂的制备,并进行了其对蛋白质及间苯二酚的吸附、洗脱行为的研究。由于聚酰胺分子内含大量酰胺基团,基团上的氧原子和氮原子在酸性介
随着社会的不断发展和媒介生态环境的变化,面对海量的信息和无限扩张的传播渠道,为吸引受众的注意、赢得收视率,越来越多的电视节目开始利用话题进行营销传播。电视节目对话
研究背景:非酒精性脂肪肝病(NAFLD)是指除外酒精和其他明确的肝损因素所致的以弥漫性肝细胞大泡性为主要特征的临床病理综合症,包括非酒精性单纯性脂肪肝以及由其演变的非酒精
农业信息化是现代农业的发展趋势。近年来,农田信息获取的方法和手段不断提高和丰富。但从总体上看,还存在一些有待解决的问题,如:农田信息采集过程手段还相对落后、效率不高;
集约化畜禽养殖场排放的恶臭已成畜产公害,严重制约了畜牧业的可持续发展。畜禽场恶臭排放特征及变化规律研究是恶臭控制机制的理论基础,畜禽养殖场恶臭扩散模拟是恶臭环境影
T ESRD(treatedend stagerenaldisease)是指接受肾替代治疗的终末期肾病患者。肾脏替代治疗 (renalreplacementtherapy ,RRT)是终末期肾病 (end stagerenaldisease ,ESRD)最
林业物流研究是当前物流研究领域的薄弱环节,加强对林业物流的研究有十分重要的意义。系统动力学的理论和建模方法是本文研究的基础,林木产业供应链上库存控制系统是本文的研