【摘 要】
:
反编译是将使用低级语言表示的程序代码变换成与其功能等价的高级语言程序代码的过程,是编译的逆过程。它对于软件的移植、理解喝维护都起着重要作用。反编译的结果可以用于
论文部分内容阅读
反编译是将使用低级语言表示的程序代码变换成与其功能等价的高级语言程序代码的过程,是编译的逆过程。它对于软件的移植、理解喝维护都起着重要作用。反编译的结果可以用于寻找程序中包含的恶意代码、bug和脆弱点,揭示程序的内部互操作机制。现有的基于静态分析技术的二进制代码反编译器具有很多理论上的局限性,包括不能有效的处理间接跳转和间接过程调用,不能进行精确的指针别名分析,需要对目标程序的代码结构做一定的假设等等。本文描述的反编译基础系统采用基于二进制翻译技术的动态分析方法,通过准确地记录程序实际的执行路径和变量关系,能较好地解决控制流混淆和二进制代码的动态指针别名分析问题。静态反编译由于无法获得程序实际执行时的输入,因此需要假设任何可能的输入和执行路径都是有效的。实际上程序中可能存在不可达路径,反编译器通常只会做保守地选择。保守的分析会使得反编译器产生执行效率较低或者可读性较差的代码,甚至导致分析失败。与静态反编译不同,本文描述的动态反编译方法可以准确获知程序执行时的输入和执行路径,因此可以针对当前的输入(实际上是与当前输入等价的一类输入)做最优的选择。使用这一方法得到的反编译结果更接近程序实际执行时的逻辑,但可能无法处理未测试的输入。本研究的主要贡献在于:1.基于Linux下的动态二进制翻译平台valgrind,实现了反编译器基础平台Dynamic Analyzer,论证了动态反编译器实现的可行性。2.使用动态控制流图构造方法,与静态构造方法相比能有效地解决目标地址获取和控制流混淆问题。3.提出了面向二进制代码的动态指针别名分析算法,有效地提高了反编译结果的准确性。4.改进了影子堆栈技术,能够更精确地识别虚假的子过程调用。
其他文献
目的建立hAhR介导的CYP1A1体外诱导活性评价模型,应用于体外快速筛选通过hAhR途径介导的对CYP1A1具有激活能力的药物。方法利用双荧光素酶报告基因系统,将CYP1A1启动子序列插
根据CNNIC(中国互联网络信息中心)2018年1月31日发布的"第41次《中国互联网络发展状况统计报告》"中显示:截至2017年12月末,我国手机网民规模达7.53亿,较2016年底增加5734万人。网
目的研究体位护理在产妇待产过程中的应用效果。方法 选取2016年8月5日~2017年8月6日在我院治疗的100例产妇作为研究对象,根据待产方式不同分为对照组和观察组,每组50例。对照
目的:克隆并原核表达Modesto株C型副鸡禽杆菌(Apg)的血凝素(HA)基因,鉴定该重组HA的生物学活性。方法:根据GenBank上已发表的Modesto株Apg的HA基因序列,设计合成了1对特异性引物,克隆A
【目的】揭示灌浆期遮光对糯小麦和非糯小麦籽粒淀粉理化特性影响的差异,探讨籽粒淀粉组分与理化特性的内在联系。【方法】大田条件下,选用非糯小麦品种轮选987和糯小麦品种
以接触网系统的类型、接触线种类做刚性接触网特点研究,将耐电烧蚀、耐磨损作为探讨对象。通过对比铜铬锆合金接触线与铜银合金接触线的特点、区别,分析铜铬锆合金接触线应用
以张家口地区的一栋6层住宅建筑为例,结合该地区的太阳能资源,对太阳能采暖的适用性进行了分析。结果表明,采用太阳能采暖与传统锅炉采暖相比每年可节约燃料费用40%以上,约8
在东北林业大学帽儿山实验林场不同立地条件下的白桦天然林中,依立地类型选取49块标准地,调查了林木生长指标和立地因子,每块标准地中选伐1株优势木进行树干解析。运用了数量
写作是英语学习的一个非常重要的部分,也是衡量英语教学质量的一个重要指标。然而,英语写作是绝大多数英语学习者的难点,也是英语教学的薄弱环节。如何提高英语写作则成为很
城市居住区园林环境是整个居住区的重要组成部分,对居住生活水平有重要的影响。我国城市居住区正在面临从单一小区模式向多样化模式发展的趋势,这将对居住区园林环境产生深刻