Raising binaries to LLVM IR with McToll (WIP paper)

S. Bharadwaj Yadavalli, Aaron Smith

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

The need to analyze and execute binaries from legacy ISAs on new or different ISAs has been addressed in a variety of ways over the past few decades. Solutions using complementary static and dynamic binary translation techniques have been deployed in most real-world situations. As new ISAs are designed and legacy ISAs re-examined, the need for binary translation infrastructure re-emerges, and needs to be re- engineered all over again.Work is in progress with a goal to make such re-engineering efforts easier by using some of the software tools that would irrespectively be developed or available for a new or existing ISA. To that end, this paper presents a static binary raiser that translates binaries to LLVM IR. Native binaries for a new ISA are generated from the raised LLVM IR using the LLVM compiler backend. This technique enables development of a single raiser per legacy ISA, irrespective of the new target ISA. The result of such a raiser can then leverage compiler back-ends of new ISAs, thus simplifying the development of binary translator for the new ISA .This work leverages the existing LLVM infrastructure to implement a static raiser that currently supports raising x64 and Arm32 binaries to LLVM IR. The raiser is built as an LLVM tool – similar to llvm-objdump or clang and does not have any dependencies outside of those needed to build LLVM. This paper describes the phases of the raiser and gives the current status and limitations.
Original languageEnglish
Title of host publicationLCTES 2019 - Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems, co-located with PLDI 2019
EditorsJian-Jia Chen, Aviral Shrivastava
PublisherACM Association for Computing Machinery
Pages213-218
Number of pages6
ISBN (Electronic)9781450367240
DOIs
Publication statusPublished - 23 Jun 2019
Event20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems: Co-located with PLDI 2019 - Phoenix, United States
Duration: 23 Jun 201923 Jun 2019
https://conf.researchr.org/home/LCTES-2019

Conference

Conference20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems
Abbreviated titleLCTES 2019
Country/TerritoryUnited States
CityPhoenix
Period23/06/1923/06/19
Internet address

Keywords

  • Binary Translation
  • Code Generation
  • LLVM IR

Cite this