首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到16条相似文献,搜索用时 140 毫秒
1.
IA-64二进制代码switch语句恢复技术研究   总被引:1,自引:1,他引:0  
在对IA-64二进制代码进行分析的过程中,一个基本的问题就是识别通过跳转表实现的switch语句中n-条件分支的目标地址,该问题的解决使得对指定过程的机器指令的解码更加完整。文章基于切片和表达式置换技术,结合IA-64中为switch语句生成的汇编代码特点,给出了恢复跳转表及目标地址的方法,从而可以将包含跳转表的IA-64二进制代码恢复为高级switch语句。  相似文献   

2.
基于IA-64体系结构下二进制翻译系统,本文提出了应用过程内静态切片技术恢复索引跳转中跳转表以及目标地址的解决方案。并通过在IA-64体系结构上对C和C 编译器产生的代码进行测试,表明通过该技术可以很好的解决二进制翻译中跳转表的恢复问题,提高二进制解码的覆盖率。  相似文献   

3.
基于IA-64体系结构下二进制翻译系统,本文提出了应用过程内静态切片技术恢复索引跳转中跳转表以及目标地址的解决方案.并通过在IA-64体系结构上对C和C++编译器产生的代码进行测试,表明通过该技术可以很好的解决二进制翻译中跳转表的恢复问题,提高二进制解码的覆盖率.  相似文献   

4.
IA-64架构为获得高性能支持许多先进体系结构的特性,例如显式指令级并行,指令判定执行,以及投机装入等,这些特性对编译器是可见的,但是为了充分利用这些体系结构的特性,编译器优化往往将程序的代码进行深度重构,使得从优化后的可执行代码中很难恢复源程序逻辑。本文提出了在IA-64二进制翻译中应用优化代码消除技术,提高翻译效率和生成目标机代码的质量。  相似文献   

5.
代码翻译中Case语句的识别和恢复   总被引:1,自引:0,他引:1  
苏铭  赵荣彩  齐宁 《计算机应用》2005,25(10):2439-2440
提出了在开发IA 64二进制翻译系统中采用的n 条件分支跳转表和目标地址恢复技术。着重论述了该技术的核心——过程内切片和表达式替换,以及针对IA 64特性的改进算法。  相似文献   

6.
作为64住处理器架构的IA-64提供了更高的指令级并行性(ILP),并代表了一种新型微处理器的发展方向,对IA-64二进制指令代码流的自动分析和变换.在基于机器和操作系统的的描述来实现IA-64二进制自动翻译和逆向工程中有重要的意义。本文概述了SLED与IA-64的指令特点,详细介绍了基于SLED对IA-64指令的描述和利用MLTK自动生成反向工具的设计与实现技术.并给出了自动生成反汇编的测试结果。  相似文献   

7.
IA-64体系结构使用64位指令集,该指令集应用显式并行指令计算(EPIC)技术,可提供更高的指令级并行性(ILP),但同时也给IA-64二进制代码流的分析和变换带来了困难.介绍了一个IA-64解码器自动生成器的结构与实现,该生成器的输入为IA-64指令集的SLED描述,自动生成用于IA-64指令解码器的C代码.通过该生成器可有效减少解码器的开发时间,确保解码器的正确性,提高解码器的执行效率.实现的自动生成器可应用于IA-64二进制翻译及逆向工程中.  相似文献   

8.
在逆向工程中,软件流水循环为逆向翻译带来了困难。针对如何在IA-64二进制翻译中处理软件流水循环提出一种解决方案,采用直接语义映射算法,并通过实验验证该算法在二进制翻译中处理软件流水代码的有效性,为在IA-64二进制翻译中处理软件流水代码奠定了基础。  相似文献   

9.
二进制翻译中解析多目标分支语句的图匹配方法   总被引:1,自引:0,他引:1  
二进制翻译技术现已成为实现软件移植的重要手段.在二进制翻译系统中,如何有效地挖掘程序的代码并对其进行高效翻译是影响系统性能的关键,而二进制代码中间接跳转语句的存在,使得静态时难以得到它的跳转目标,影响了代码的发掘率和最终的翻译效果.在通常的应用程序中,间接跳转指令经常用来实现多目标分支语义,分支目标存放在跳转表中.提出了一种解析多目标分支语句及其跳转表的方法,能够挖掘出间接跳转的目标,进而对其进行有效翻译并提高二进制翻译系统的性能.该方法提出使用语义图来对预期语义进行刻画和表达.语义图能够对考察的指令序列进行语义提取,识别出与预期语义相匹配的指令流,还可以应对编译器在不同优化选项下生成的指令,并能有效滤除不相关指令带来的干扰.实验结果表明,对于SPEC CINT2000中的部分测试用例,代码翻译的覆盖率可以提高9.85%~22.13%,相应带来的性能提升可达到8.30%~17.71%,而使用的算法时间复杂度仅为O(1).  相似文献   

10.
指令描述的自动检测技术   总被引:2,自引:0,他引:2  
杨欣  赵荣彩  李崇 《计算机工程与设计》2006,27(18):3344-3348,3352
通过使用高级说明语言描述指令集,自动生成指令编码和解码程序,使单调乏味而且非常容易出错的机器代码重定向工作自动化,并且通过反汇编测试平台对这项描述的正确性实现自动检测.这对于64位、具有更高的指令级并行性(ILP)的IA-64,在二进制指令代码流的自动分析和变换,基于机器和操作系统的描述来实现IA-64二进制自动翻译和逆向工程中有重要的意义.概述了对IA-64指令的SLED描述,详细阐述了利用NJMCT自动生成反向工具的设计与实现技术.  相似文献   

11.
投机优化技术作为一种先进的现代编译技术,有效地提高了指令执行的并行性。然而,在逆向工程中,有时要实现代码的跨平台移植,而投机优化技术又受硬件平台的制约;有时需要优化代码的结构,使程序的逻辑结构易于理解;这些都要求消除这种与硬件息息相关的优化技术。论文基于IA-64平台,提出了一种反投机处理算法,对ICC编译器编译后的可执行二进制代码进行处理,消除代码中的投机优化,将其转换成等价的没有投机优化的指令序列,这样使反投机后的代码更容易理解,而且在逆向工程中摆脱了硬件的限制。测试表明该反投机技术可以对ICC编译后的代码进行有效处理。  相似文献   

12.
Recovery of jump table case statements from binary code   总被引:7,自引:0,他引:7  
One of the fundamental problems with the static analysis of binary (executable) code is that of recognizing, in a machine-independent way, the target addresses of n-conditional branches implemented via a jump table. Without these addresses, the decoding of the machine instructions for a given procedure is incomplete, leading to imprecise analysis of the code.

In this paper we present a technique for recovering jump tables and their target addresses in a machine and compiler independent way. The technique is based on slicing and copy propagation. The assembly code of a procedure that contains an indexed jump is transformed into a normal form which allows us to determine where the jump table is located and what information it contains (e.g. offsets from the table or absolute addresses).

The presented technique has been implemented and tested on SPARC and Pentium code generated by C, C++, Fortran and Pascal compilers. Our tests show that up to 89% more of the code in a text segment can be found by using this technique, when compared against the standard method of decoding. The technique was developed as part of our retargetable binary translation framework UQBT; however, it is also suitable for other binary-manipulation and analysis tools such as binary profilers, instrumentors and decompilers.  相似文献   


13.
二进制翻译中的库函数识别技术研究   总被引:7,自引:2,他引:5  
齐宁  付文  赵荣彩 《计算机应用》2006,26(4):983-985
体系结构的不断发展给软件开发者带来了巨大的风险,造成了新体系结构推广的困难,而二进制翻译技术使得可执行代码可自动迁移到新的体系结构。介绍了在开发一个静态二进制翻译系统(I2A翻译系统)中的库函数识别技术,并提出了解决库函数识别问题的新的方法。基于IA-64体系结构的调用约定及实例分析证明,该方法是一种简单实用的库函数识别方法,经I2A系统验证是有效的。  相似文献   

14.
当前二进制翻译中通用的main函数定位方法依赖于符号表,随着strip工具的普遍应用,二进制可执行文件中往往不存在符号表。该文描述了strip工具的应用目的,分析了其应用对二进制翻译的影响,基于ELF文件加载机制的分析,提出了一种新的main函数定位技术,通过对IA-32及IA-64下ELF格式二进制文件的翻译,证明该技术是有效的。  相似文献   

15.
针对自主开发 IEC61131结构化文本(ST)语言编译器的需求,设计了一套机器无关的虚拟机指令集,指令集按照数据传送、算术运算、逻辑运算、位操作、比较操作、流程控制、函数调用等类型划分,采用三地址码的四元式表示.基于该指令集,设计了结构化文本语言的 IF语句、FOR语句、CASE语句、EXIT语句的指令形成算法,编译器将结构化文本语言编译为二进制指令文件.针对FOR语句提出了"向上计数"、"向下计数"、"动态确定上下限"的3种翻译模式,针对CASE语句提出了基于短路求值和跳转表混合的翻译模式,可优化FOR语句、CASE语句的指令结构.对编译形成的二进制指令,采用常量折叠计算、代数简化、临时变量消除、引用点分析等手段,进一步优化指令.实验测试结果表明,优化后的指令在嵌入式工控装置中的解释执行时提升了效率.  相似文献   

16.
文章[1]中提出了数组之间的数据融合优化方法,并以IA-32服务器为平台测试了数据融合优化的效果。测试结果表明,在IA-32机器上,数据融合优化在性能代价模型的控制下,能较好地改善具有非连续数据访问特征的应用程序的CACHE利用率。那么,在新一代体系结构IA-64平台上,数据融合优化的效果如何呢?该文分别以IntelIA-32服务器和HPITANIUM服务器为平台,用IntelFORTRAN编译器ifc和efc及自由软件编译器g95分别编译并运行数据融合优化变换前后的程序,获得两种平台上的执行时间及相关的性能数据。测试结果表明,源程序级的数据融合优化不能很好地与IA-64平台上的EFC编译器高级优化配合工作,在O3级优化开关控制下,优化效果是负值。此测试结果进一步表明,编译高级优化如数据预取、循环变换和数据变换等各种优化必须结合体系结构的特点统筹考虑,才能取得好的全局优化效果。该文为研究各种面向IA-32体系结构的编译优化算法在IA-64体系结构上的性能可移植性优化起到抛砖引玉的作用。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号