面向国产处理器的二进制翻译关键技术研究
发布时间:2018-05-09 02:26
本文选题:二进制翻译 + 反编译 ; 参考:《解放军信息工程大学》2014年博士论文
【摘要】:当今世界信息技术一日千里,计算机处理器的发展日新月异,具有自主知识产权的国产通用处理器也得到迅猛发展。为匹配硬件平台发展对软件应用需求的高速增长,助推国产处理器广泛应用,拓展国产巨型计算机的生态环境,软件和代码移植技术成为实现上述目标的快速有效解决途径。二进制翻译技术是实现软件和代码移植的重要手段,在无源代码继承、应用程序优化、软件系统安全分析等方面都有着重要的意义,是现代编译技术研究的热点之一,是软件逆向工程的重要组成。静态二进制翻译在翻译生成程序执行速度和效率上具有先天优势,动态二进制翻译在软件移植的普适性和完备性方面效果突出,动静结合的二进制翻译方法可以结合二者长处,充分体现这项技术的特点,也是未来研究的发展方向。为了解决多源平台二进制应用程序向国产处理器平台的移植问题,本文提出了多源一体化翻译的概念,并给出了多源一体化翻译系统的整体架构,针对其中的关键翻译技术和软硬件协同翻译技术等方面进行了系统深入的研究。本文研究的主要内容和贡献包括:1.提出了多源一体解码和语义映射方法。目前,在二进制翻译领域,针对多源平台向特定目标处理器进行程序移植时的统一解码处理和统一语义映射问题,尚未有一套整体的、具备通用性的解决方法。本文提出了在多源一体化翻译架构中解决多源统一解码和统一语义映射的方法。针对其中多源异构平台统一解码十分繁杂、较难统一的问题,本文给出了一种统一编码解码语言的本地化方法,有机地实现了多源平台的一体化解码;针对其中现有技术缺乏适用于多源平台的统一的语义描述语言问题,本文提出了一种有效最小操作等价语义变换方法,对统一最小语义进行了规范定义,并构建了适用于多源一体化二进制翻译的统一最小语义描述语言,实现了多源语义统一描述和统一转换。基于SPEC CPU2006等用例对采用上述方法所支撑的翻译系统进行了实验,针对各源平台的所有测试用例均可以进行正确地指令解码和语义转换,翻译生成程序均能在申威(简称SW)平台得到与源平台上相同的运行结果,表明了上述方法的有效性、完备性和正确性。2.提出了适用于多源一体化二进制翻译的过程数据恢复方法。在多源一体化二进制翻译中,必须要解决多源平台向特定目标平台的过程数据恢复问题。针对其中用户过程数据的具体类型和访问方式不容易恢复的问题,本文提出了一种基于语义镜像和栈帧动态维护的用户过程数据恢复方法,从程序指令语义角度出发,有效地解决了多源异构平台到SW平台的用户过程数据的恢复问题;针对其中异构平台间库函数调用约定差异较大带来的难以统一翻译问题,本文提出了一种基于函数封装和按序分发的库函数数据恢复方法,实现了库函数参数传递差异的统一融合处理和多源一体化的库函数移植。通过系统的整体测试,验证了本文用户过程数据恢复方法的有效性和正确性;对库函数封装和按序分发方法进行了针对性实验,翻译生成程序文件大小的缩减率平均达到了17.29%,表明了该方法可以有效缩减生成源码文件的大小,降低代码膨胀率。3.提出了针对标志位简化翻译的代码优化方法。现有的标志位优化翻译方法均不能完全解决从X86到SW处理器的标志位模拟的特殊性问题。本文提出了基于多阶段优化策略的标志位优化翻译方法。针对其中标志位条件校验存在大量冗余操作的问题,提出了一种基于相邻条件校验的标志位冗余操作化简方法,有效解决了语义映射阶段“冗余条件验证”带来的代码膨胀问题;针对其中存在大量“无效标志位引用和定值”操作的问题,提出了一种源平台语义模式发现与跨函数边界无效标志位消除相结合的标志位优化翻译方法,利用异构平台间“语义对”等价特性实现了语义转换阶段指令语义模式的简化翻译,最终在代码优化阶段通过逐渐去除无效的标志位操作,实现了较为完善的静态标志位优化翻译。在采用上述代码优化翻译技术后,翻译生成程序的代码缩减率平均达到了12.11%。4.提出了一种动静结合的二进制翻译框架。现有的二进制翻译方式存在静态二进制翻译完备性差和动态翻译效率低的问题。本文提出了一种基于增量反馈和多轮维护的动静结合二进制翻译框架,并给出了该框架的实现方法。该框架以静态分析为基础,以动态协同翻译为支撑,基于轮廓信息和静态已翻译信息制导实现静动态二进制翻译的合理交互。实验结果表明,本文提出的动静结合翻译方法能够基本解决间接转移指令给静态翻译带来的问题,并且在翻译参数类型和算法相对固定的程序时,经过几次执行反馈后,便可形成一个相对完备的独立程序,拥有与静态翻译生成程序一样的执行效率。5.提出了面向SW平台的软硬件协同翻译方法。当前,纯软件实现的动态二进制翻译存在优化能力提升有限的现实问题。为了提高X86处理器到SW处理器动态二进制翻译的执行效率,本文在对SW体系架构和X86架构深入研究基础上,对纯软件动态二进制翻译的性能瓶颈进行了深入的分析,在此基础上,提出了面向SW平台的、软硬件协同的二进制翻译技术,给出了软硬件协同翻译的实现框架和解决方案。最后,本文实现了一个多源一体化二进制翻译系统,基于该系统对提出的相关方法和技术进行了整体实验和测试,验证了方法的正确性和有效性。
[Abstract]:In order to solve the problem of unified decoding processing and uniform semantic mapping in multi - source platform , this paper proposes a method for the integration of multi - source integrated translation . This paper presents a method for optimizing translation of dynamic binary translation based on incremental feedback and multi - wheel maintenance .
【学位授予单位】:解放军信息工程大学
【学位级别】:博士
【学位授予年份】:2014
【分类号】:TP332
【参考文献】
相关期刊论文 前10条
1 胡国卿;邵培南;陈磊;李翔;;基于QEMU的外部总线仿真技术[J];计算机工程;2014年02期
2 王荣华;孟建熠;陈志坚;严晓浪;;动态二进制翻译中的标志位优化算法[J];浙江大学学报(工学版);2014年01期
3 黄聪会;陈靖;张黎;李东阳;;软件移植理论与技术研究[J];计算机应用研究;2012年06期
4 王志;贾春福;鲁凯;;基于环境敏感分析的恶意代码脱壳方法[J];计算机学报;2012年04期
5 吴伟峰;赵荣彩;;反编译中用户函数与库函数同名的区分技术研究[J];计算机学报;2011年04期
6 王全胜;;基于龙芯2号处理器的SPEC 2000测试程序的分析与应用[J];现代电子技术;2010年17期
7 严迎建;杨志峰;任方;;面向专用指令集处理器设计的软硬件协同验证[J];计算机工程;2010年06期
8 汪小林;王振林;孙逸峰;刘毅;张彬彬;罗英伟;;利用虚拟化平台进行内存泄露探测[J];计算机学报;2010年03期
9 方霞;尹青;蒋烈辉;黄海;何红旗;;基于数据流分析的寄存器参数恢复方法[J];计算机工程;2009年22期
10 张有为;刘小春;汪永红;;程序段识别算法研究[J];计算机工程;2009年05期
,本文编号:1864165
本文链接:https://www.wllwen.com/falvlunwen/zhishichanquanfa/1864165.html