静态二进制翻译论文-王军,庞建民,傅立国,岳峰,张家豪

静态二进制翻译论文-王军,庞建民,傅立国,岳峰,张家豪

导读:本文包含了静态二进制翻译论文开题报告文献综述及选题提纲参考文献,主要关键词:二进制翻译,静态二进制翻译,间接转移,翻译器QEMU

静态二进制翻译论文文献综述

王军,庞建民,傅立国,岳峰,张家豪[1](2019)在《一种高效解决间接转移的反馈式静态二进制翻译方法》一文中研究指出为了在追求程序执行效率的同时解决静态二进制翻译中的间接转移问题,针对现有间接转移问题处理方法中线性遍历翻译方式代码优化较少、冗余代码较多的缺陷,提出了基于基本块翻译的反馈式静态二进制翻译方法,并结合二级地址映射表实现了间接转移目标地址的快速映射.首先,在目标可执行程序运行过程中添加监控反馈机制解决代码发现问题,对未确定的间接转移地址进行反馈,以便对源程序重新划分基本块并重新翻译执行;然后构造二级地址映射表,借助二级地址映射快速解决代码定位问题.在开源二进制翻译平台QEMU(quick emulator)上实现了反馈式静态二进制翻译框架FD-SQEMU(feedback static QEMU),并基于SPEC2006和NBENCH测试集进行测试,与QEMU相比,FD-SQEMU平均加速比分别达到3.97倍和6.94倍;与课题组之前提出的保存源程序指令全地址的静态SQEMU翻译器相比,FD-SQEMU的平均加速比达到1.18倍,最高加速比达到了1.36倍,验证了提出的框架和方法的有效性.(本文来源于《计算机研究与发展》期刊2019年04期)

支叶盛[2](2017)在《针对MIPS程序的静态二进制翻译技术研究》一文中研究指出随着嵌入式设备的发展,尤其是大量的嵌入式的设备例如路由器、智能手环、摄像头等,需要通过连入局域网甚至互联网来提供相应的服务,针对嵌入式设备的隐私安全的保护的研究得到了很大重视。而由于嵌入式设备的相关特性,包括运行资源有限、底层系统受限等,特别是使用和通用计算机不同的指令集架构,使得直接在嵌入式设备上进行安全分析存在着难度。目前针对嵌入式程序的分析方法,一种是借用硬件调试接口对程序进行调试,这就需要额外的具有相应功能的硬件设备来支持。还有一种方法是利用动态二进制翻译技术,在PC端模拟执行嵌入式程序,并进行相关的测试分析。但是动态二进制翻译由于是在执行程序的同时进行指令翻译,所以存在着无法忽略的时间开销,并且不方便采用复杂的代码优化。相比于动态翻译技术,静态翻译技术在程序执行时并不会带来较大的额外时间开销。随着二进制分析技术研究的深入,使得静态翻译技术的代码准确性得到了更好的保证。本文研究并开发了针对MIPS程序的轻量级的静态二进制翻译系统BabelFish,该系统能够将目标MIPS程序转换为LLVM-IR表示,并利用了LLVM强大的优化策略,来生成高质量的目标架构的指令。对于静态翻译过程中的传统难点,例如间接跳转/间接调用问题、程序中地址引用的重定位问题、库函数调用问题给出了相应的解决方法。并且改进了传统静态翻译技术中对于寄存器操作的处理方式,提高了生成代码的质量。最后,我们对本文提出的翻译方法进行了测试分析,包括对系统翻译效率的测试以及系统生成代码的测试。从测试的结果表明,BabelFish在没有任何源代码信息的情况下,能够成功地将MIPS程序翻译成LLVM-IR表示,并且最后生成的本地x86指令能够保持和源码直接编译生成的程序相似的执行效率。(本文来源于《上海交通大学》期刊2017-01-11)

卢帅兵,庞建民,单征,岳峰[3](2016)在《基于QEMU的跨平台静态二进制翻译系统》一文中研究指出为了实现快速映射间接分支目标地址,提出地址索引映射表法,使用地址数组按源地址顺序保存所有对应的目的地址,索引数组存储源地址在地址数组中的索引位置,只需要几条指令就可以完成源地址到目的地址的映射,提高了执行速度.为了加快函数的调用处理,提出将本地栈作为影子栈、与本地库函数封装相结合的方法.本地栈模拟参数传递和返回,加速函数调用.结合封装接口处理参数和返回值,实现间接调用本地库函数,提高了函数处理能力.基于上述方法和QEMU,设计并实现了静态二进制翻译系统SQEMU.基于SPEC2006和nbench测试集,从x86平台翻译到Alpha平台的实验表明,SQEMU相对QEMU平均加速比分别达2.09倍和6.39倍.(本文来源于《浙江大学学报(工学版)》期刊2016年01期)

吴伟峰[4](2012)在《静态二进制翻译完备性及代码分析研究》一文中研究指出二进制翻译技术是解决代码移植问题的重要手段。静态二进制翻译在翻译生成程序运行效率方面具有绝对优势,在生成代码重用性和膨胀率两方面也占有优势,但动态和动静相结合的翻译模式却是现今大家关注和研究的焦点,主要原因是静态二进制翻译在翻译完备性上有欠缺,它不能很好的处理间接跳转、间接调用和自修改代码等。静态二进制翻译面临的完备性问题是一个难点问题,近半个世纪来众多研究人员为解决此问题一直做着不懈的努力。本文所做工作致力于解决阻碍静态二进制翻译发展的翻译完备性问题:解决间接转跳转和间接调用指令的目标地址确定问题;解决对自修改代码的处理问题。另外,在代码分析方面解决数据类型恢复问题和用户函数与库函数同名的区分问题。本文的主要贡献如下:1、提出了一种解决静态二进制翻译完备性问题的亚纯静态二进制翻译框架。此翻译框架将二进制翻译器的输入由原来的一维变成了二维输入<待翻译二进制程序,制导文件>,翻译时根据制导文件提供的信息有效解决间接跳转、间接调用和自修改代码等制约静态二进制翻译发展的问题。2、提出了一种新的功能块概念。功能块是基于描述代码功能而提出的程序划分概念,以更有利于对代码的分析。由于基于基本块的程序分析方法不能很好地解决间接转移指令目标地址的确定问题,本文给出了一种基于功能块的程序分析方法,为解决间接转移指令目标地址确定问题奠定了基础。3、提出了一种程序执行路径逆向构造技术。使用本文提出的执行路径逆向构造技术,可以构造一条从程序入口点到某个间接转移指令的执行路径,从而有效降低获取间接转移指令目标地址的时空消耗和复杂度。4、提出了一种基于内存操作码和调试信息的数据类型恢复技术。本文以针对内存空间的存取操作为突破点,结合对栈空间和数据段的模拟分析给出数据类型恢复算法。它对C语言使用的基本数据类型都能成功恢复,另外将构造数据类型恢复成等价的多个基本数据类型,同时解决了关于字符串和指针的数据类型恢复问题。5、提出了一种用户函数与库函数同名的区分技术。由于ITS翻译系统使用的库函数快速识别技术在区分库函数和与库函数同名的用户函数方面存在缺陷,本文提出了一种新的判定用户函数和库函数同名的区分算法。6、给出了一种对自修改代码的处理算法。综合使用快照和内存一致性更新技术,基于对程序所有代码的遍历执行,给出对自修改代码的识别与提取算法。经SPEC2006、IEEE浮点测试软件和Fortran78Test Suite等测试集1800个测试用例(约50多万行源代码,上百万条IA-64指令)的测试,本文提出的各项技术的正确性和有效性得到了充分的验证,为解决静态二进制翻译面临的翻译完备性问题和代码分析问题提供了坚实的基础。(本文来源于《解放军信息工程大学》期刊2012-04-15)

顾静辉[5](2010)在《动态二进制翻译的静态优化架构研究》一文中研究指出二进制翻译(Binary Translation)是指在不需要可执行程序源代码的情况下,将源机器平台上的二进制程序经过一定的转换之后运行在目标机器平台上的过程。动态二进制翻译是二进制翻译技术的重要分支,通常的过程是边翻译边执行,并在执行期对目标代码进行动态优化。动态二进制翻译为解决代码遗留,代码移植以及构建分布式虚拟计算环境等问题提供了一个良好的解决方法,因此在近年来得到了越来越广泛的关注和研究。如何提高动态二进制翻译系统的性能,是每个动态二进制翻译系统亟需解决的问题之一。传统的动态二进制翻译系统大量采用基于Profile信息的动态优化技术。然而,动态优化过程的所有工作都是在运行时完成,在获取Profile信息和进行目标代码优化时,自身付出的性能损耗是不得不考虑的问题。同时,Profile所获得信息的丰富程度又直接影响着后续优化算法的效果。因此,如何在动态优化的性能开销和优化效果中找到平衡是二进制翻译的研究者和开发者面临的巨大难题。为解决优化过程的开销和效果之间的矛盾,本文的研究目的是通过提出一种适用于动态二进制翻译的静态优化架构(Sinof),既有效的屏蔽Profiling过程和优化算法的性能开销,同时又对目标代码进行深入的优化,由此得到大约30%-50%的执行性能提升。其原理是通过在源代码首次翻译执行时,收集丰富的Profile信息,并将这些信息和目标代码保存。在静态环境下,根据这些信息对目标代码进行深入的优化。在之后的翻译执行中,复用这些优化后的目标代码,从而得到较大的性能提升。本文的主要创新点和意义有:1)开发出一种适合于动态二进制翻译的静态优化架构,有效的屏蔽Profiling技术和优化策略的性能开销;2)设计了一种基于边之间关系的Profiling技术,为后续的优化方案作充足的信息准备;3)实现了在静态环境下利用Profile信息识别热路径,调整代码块相对位置;4)利用Profile信息在静态环境下实现链接,进一步减少了上下文切换次数和系统开销;5)记录可重定位信息,使目标代码拥有可重定向性,使之在以后程序执行时可被复用。(本文来源于《上海交通大学》期刊2010-01-01)

任菁菁,吴书业[6](2008)在《一个静态二进制翻译系统的设计与实现》一文中研究指出介绍了一个静态二进制翻译系统,详细说明了系统各部分的功能和具体实现方法。该系统将x86可执行文件翻译为MIPS目标代码并由MIPS机器执行,且实施了一定的优化。(本文来源于《计算机时代》期刊2008年10期)

丁松阳,赵荣彩,崔平非[7](2008)在《静态二进制翻译中动态地址解析恢复技术研究》一文中研究指出静态二进制翻译的入口点通常为main函数,所以main函数执行之前的动态地址解析部分就无法在目标机上恢复。通过分析基于ELF文件的动态地址解析机制,提出了在目标代码中插入代码模拟动态地址解析的方法来解决该问题。该方法已在静态二进制翻译项目中实现,测试结果表明该方法是有效的。(本文来源于《计算机工程与应用》期刊2008年22期)

丁松阳,赵荣彩[8](2008)在《静态二进制翻译中回调函数逆向恢复技术研究》一文中研究指出回调函数的逆向恢复是静态二进制翻译的一个难点。针对使用C后端的静态二进制翻译框架,提出并实现回调函数逆向恢复方法,该方法结合代码间隙分析,在后端C代码生成过程中插入映射源回调函数地址到目标机函数地址的代码。相对于使用解释器的方法,该方法具有实现简洁,在目标机上运行速度更快的优点。(本文来源于《计算机应用》期刊2008年03期)

孙维新[9](2007)在《静态二进制翻译中基本数据类型分析的研究与实现》一文中研究指出随着体系结构的更新换代,在老体系结构上开发的优秀软件面临着被淘汰的境地。同时为了在短时间内推广新体系结构的应用和促进它的发展,需要把老体系结构上的软件快速移植到新体系结构上,这样二进制翻译和反编译技术应运而生。同时反编译技术还在软件维护、软件开发和调试、病毒发现和漏洞扫描等领域有着重要的作用。数据类型分析是二进制翻译和反编译中的难点,本文首先介绍了静态二进制翻译器ITA系统,然后基于该平台给出了在二进制翻译中分析数据基本类型的技术方案。把传统编译优化技术中的数据流分析技术和类型推导理论应用到二进制翻译中,通过对指令语义和过程HRTL表示的分析获得数据的基本类型信息。本文的主要内容及创新点有:过程变量的重命名。当把指令的语义提升到HRTL语句表示时,指令中的寄存器操作数转换为HRTL表示中的变量。由于寄存器数量的限制和编译器对寄存器的分配优化策略,一个寄存器一般用来存放多个数据片,这样一个寄存器变量可能表示类型不同而且没有任何关系的多个数据片,所以有必要对寄存器变量重命名。应用数据流分析技术和集合划分理论完成变量重命名。对重命名后的变量利用类型推导规则推导它在过程中所有定义和引用处的类型,结果是一个类型的集合。类型推导规则的提取是问题的关键,推导规则越完善我们获得数据的类型越准确。利用格理论确定变量的最终类型。我们把二进制翻译中数据的基本类型按照它们之间的关系组织在一个格中,对推导出的变量类型集合中的元素与该格进行比较,获得变量最终的一个类型,该类型将在翻译生成的C代码中作为变量的声明类型。本文提出的数据类型分析技术应用在我们开发的静态二进制翻译器ITA系统中,通过测试表明该技术方案是可行的、有效的和正确的。(本文来源于《解放军信息工程大学》期刊2007-04-15)

丁松阳,赵荣彩[10](2007)在《静态二进制翻译中间接过程调用恢复技术研究》一文中研究指出间接过程调用的恢复问题是静态二进制翻译中的难点之一。针对使用c后端的静态二进制翻译框架,提出并实现间接过程调用恢复方法,该方法结合代码间隙分析,在后端c代码生成过程中插入映射源过程地址到目标机过程地址的代码。相对于使用解释器的方法,该方法具有实现简洁、在目标机上运行速度更快的优点。(本文来源于《计算机工程与应用》期刊2007年06期)

静态二进制翻译论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

随着嵌入式设备的发展,尤其是大量的嵌入式的设备例如路由器、智能手环、摄像头等,需要通过连入局域网甚至互联网来提供相应的服务,针对嵌入式设备的隐私安全的保护的研究得到了很大重视。而由于嵌入式设备的相关特性,包括运行资源有限、底层系统受限等,特别是使用和通用计算机不同的指令集架构,使得直接在嵌入式设备上进行安全分析存在着难度。目前针对嵌入式程序的分析方法,一种是借用硬件调试接口对程序进行调试,这就需要额外的具有相应功能的硬件设备来支持。还有一种方法是利用动态二进制翻译技术,在PC端模拟执行嵌入式程序,并进行相关的测试分析。但是动态二进制翻译由于是在执行程序的同时进行指令翻译,所以存在着无法忽略的时间开销,并且不方便采用复杂的代码优化。相比于动态翻译技术,静态翻译技术在程序执行时并不会带来较大的额外时间开销。随着二进制分析技术研究的深入,使得静态翻译技术的代码准确性得到了更好的保证。本文研究并开发了针对MIPS程序的轻量级的静态二进制翻译系统BabelFish,该系统能够将目标MIPS程序转换为LLVM-IR表示,并利用了LLVM强大的优化策略,来生成高质量的目标架构的指令。对于静态翻译过程中的传统难点,例如间接跳转/间接调用问题、程序中地址引用的重定位问题、库函数调用问题给出了相应的解决方法。并且改进了传统静态翻译技术中对于寄存器操作的处理方式,提高了生成代码的质量。最后,我们对本文提出的翻译方法进行了测试分析,包括对系统翻译效率的测试以及系统生成代码的测试。从测试的结果表明,BabelFish在没有任何源代码信息的情况下,能够成功地将MIPS程序翻译成LLVM-IR表示,并且最后生成的本地x86指令能够保持和源码直接编译生成的程序相似的执行效率。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

静态二进制翻译论文参考文献

[1].王军,庞建民,傅立国,岳峰,张家豪.一种高效解决间接转移的反馈式静态二进制翻译方法[J].计算机研究与发展.2019

[2].支叶盛.针对MIPS程序的静态二进制翻译技术研究[D].上海交通大学.2017

[3].卢帅兵,庞建民,单征,岳峰.基于QEMU的跨平台静态二进制翻译系统[J].浙江大学学报(工学版).2016

[4].吴伟峰.静态二进制翻译完备性及代码分析研究[D].解放军信息工程大学.2012

[5].顾静辉.动态二进制翻译的静态优化架构研究[D].上海交通大学.2010

[6].任菁菁,吴书业.一个静态二进制翻译系统的设计与实现[J].计算机时代.2008

[7].丁松阳,赵荣彩,崔平非.静态二进制翻译中动态地址解析恢复技术研究[J].计算机工程与应用.2008

[8].丁松阳,赵荣彩.静态二进制翻译中回调函数逆向恢复技术研究[J].计算机应用.2008

[9].孙维新.静态二进制翻译中基本数据类型分析的研究与实现[D].解放军信息工程大学.2007

[10].丁松阳,赵荣彩.静态二进制翻译中间接过程调用恢复技术研究[J].计算机工程与应用.2007

标签:;  ;  ;  ;  

静态二进制翻译论文-王军,庞建民,傅立国,岳峰,张家豪
下载Doc文档

猜你喜欢