Dagger: Decompiling Software Through LLVM

Written by Michael Larabel in LLVM on 6 May 2013 at 08:43 PM EDT. 1 Comment
LLVM
Dagger is a decompilation framework written around LLVM that supports decompiling software back into LLVM IR.

One of the interesting sessions talked about last week in Paris, France at the LLVM European Meeting was Dagger. Ahmed Bougacha, a Dagger developer, talked about Dagger as a decompilation framework based on LLVM. Dagger allows for LLVM back-ends to provide instruction-level semantics that can then be used to translate target instructions to a "micro-IR" IR-like architecture and then onto LLVM IR.

When decompiling back into LLVM IR, the code could then be used for rewriting in a different form, static or dynamic binary translation, or for use by instruction set emulators. The IR could then also be transformed back into C code or another language supporting the full decompilation process.

Sadly the source code for LLVM Dagger has yet to be published but there are PDF slides and video (MOV) from the presentation in Paris. There's also the basic web-site.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week