TY - GEN
T1 - Lifting assembly to intermediate representation
T2 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016
AU - Hasabnis, Niranjan
AU - Sekar, R.
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/3/25
Y1 - 2016/3/25
N2 - 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.
AB - 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.
UR - https://www.scopus.com/pages/publications/84975321444
U2 - 10.1145/2872362.2872380
DO - 10.1145/2872362.2872380
M3 - Conference contribution
AN - SCOPUS:84975321444
T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
SP - 311
EP - 324
BT - ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems
PB - Association for Computing Machinery
Y2 - 2 April 2016 through 6 April 2016
ER -