Lifting assembly to intermediate representation: A novel approach leveraging compilers

12Citations
Citations of this article
44Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Translating low-level machine instructions into higher-level intermediate language (IL) is one of the central steps in many binary analysis and instrumentation systems. Existing systems build such translators manually. As a result, it takes a great deal of effort to support new architectures. Even for widely deployed architectures, full instruction sets may not be modeled, e.g., mature systems such as Valgrind still lack support for AVX, FMA4 and SSE4.1 for x86 processors. To overcome these difficulties, we propose a novel approach that leverages knowledge about instruction set semantics that is already embedded into modern compilers such as GCC. In particular, we present a learning-based approach for automating the translation of assembly instructions to a compiler's architecture-neutral IL. We present an experimental evaluation that demonstrates the ability of our approach to easily support many architectures (x86, ARM and AVR), including their advanced instruction sets. Our implementation is available as open-source software.

Cite

CITATION STYLE

APA

Hasabnis, N., & Sekar, R. (2016). Lifting assembly to intermediate representation: A novel approach leveraging compilers. ACM SIGPLAN Notices, 51(4), 311–324. https://doi.org/10.1145/2872362.2872380

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free