REIL: A platform-independent intermediate representation of disassembled code for static code analysis
Thomas Dullien, Sebastian Porst · 2009
In this paper we introduce REIL (Reverse Engineering Intermediate Language), a platform-independent intermediate language to represent disassembled assembly code. We created the REIL language specifically to simplify and automate static code analysis of assembly code in the context of software reverse engineering for the purpose of security auditing and vulnerability detection. This paper introduces the complete REIL language with all of its instructions as well as the virtual REIL architecture that defines the effects of REIL instructions on registers and memory. Furthermore we discuss the reasons why we designed the REIL language the way we did, what limitations the user of the language should be aware of, and what we have planned for REIL in the future.