Affiliation:
1. National Taiwan University of Science and Technology, Taiwan
2. National Chung Cheng University, Taiwan
Abstract
This article proposes an alternative yet effective way of constructing a multiplatform binary translator, by converting a retargetable compiler into a binary translator. The rationale is that a retargetable compiler usually parses source programs into an Intermediate Representation (IR), and then translates IR into object code of different targets after performing analysis and optimizations. Specifically, the mechanism of code generation for multiple platforms from IR is already in place, and the missing link of building a multiplatform binary translator is a tool to transform binary programs back into IR. In order to fill in this missing link, this article presents a tool, called the
disIRer
. Just as a translator from machine language to assembly language is called a disassembler, a tool that translates executable binary programs to IR is called here a disIRer. The unique feature of this approach is that the retargetability of the binary translator is inherited directly from the retargetable compiler. A prototype multiplatform binary translator has been implemented upon GCC (the GNU Compiler Collection). DisIRer first converts binary programs back into GCC IR (Intermediate Representation), and afterward the GCC backend translates the IR to target binary programs of specified platforms. Experimental results show that x86 binary programs can be translated by this technique into ARM and Alpha binaries with reasonable code density and quality.
Funder
National Science Council Taiwan
Ministry of Economic Affairs
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Cited by
12 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Legacy software migration based on timing contract aware real-time execution environments;Journal of Systems and Software;2021-02
2. Real-Time Capable Retargeting of Xilinx MicroBlaze Binaries using QEMU;Proceedings of the Rapido'18 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools - RAPIDO '18;2018
3. Security Testing of Software on Embedded Devices Using x86 Platform;Collaborate Computing: Networking, Applications and Worksharing;2017
4. Detecting rootkits with the RAI runtime application inventory;Proceedings of the 6th Workshop on Software Security, Protection, and Reverse Engineering;2016-12-05
5. Extracting instruction semantics via symbolic execution of code generators;Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering;2016-11