Dagger is a decompilation framework based on LLVM. It enables existing backends to easily provide instruction-level semantics. These are then used to translate target instructions to LLVM IR. Dagger also enables easy retargetability of several planned tools, like rewriters, static or dynamic binary translators (with valgrind-like instrumentation), and even simple instruction set emulators. The IR can also be transformed to do static analysis, or even, using a revived and improved C backend, full-blown decompilation.

By: Ahmed Bougacha, Geoffroy Aubey, Pierre Collet, Thomas Coudray, Amaury de la Vieuville

Source code now available:

git clone http://repzret.org/git/dagger.git

Contact us at:

dagger <at> repzret dot org