Sebastian Porst (Security Consultant, zynamics GmbH)

Presentation Title: Reverse Engineering Intermediate Language (REIL)
Presentation Abstract:

This talk is about the Reverse Engineering Intermediate Language REIL and its concrete uses in binary code analysis. REIL was specifically designed to make it as simple as possible to analyze binary code in a platform-independent way. To achieve this, original assembly code is first translated to REIL code which is then processed by the analysis algorithms. In the end the results of the analysis algorithms are backported to the original assembly code.

In the presentation I will introduce the complete REIL language and the virtual REIL CPU/architecture the language works on. Afterwards I will talk about important design decisions that were made during the development of REIL and why the resulting language design is useful for static binary code analysis.

The second half of the talk is about concrete uses of REIL, especially in the context of the static code analysis framework MonoREIL that was specifically developed for REIL. This framework was developed with one thing in mind: to make it as simple as possible for the user to implement his own REIL-based code analysis algorithms. The talk will cover the design of MonoREIL as well as a demo of several concrete applications of REIL and MonoREIL.

About Sebastian

After finishing his Masters degree in Computer Science in 2007, Sebastian joined zynamics GmbH as lead developer of BinNavi. Among other things, he is responsible for developing and implementing new static code analysis algorithms.