Files
lifting-bits-remill/docs/README.md
T
Peter Goodman c743aa4f85 Issue 137 lift bin ls (#145)
* Minor reformatting, re-enabling test of CCMP.

* Modified post-decoder of CCMP_n_CONDCMP_IMM, added more tests for it. Also added post-decoders, but NO tests for the register-register variant

* Fixes #144.

* Tests for LDP and STP. Decoder and semantics, but no tests for LDR and STR on the B, H, S, D, and Q vector sub-regs.

* Minor fix

* Minor fix, I think, to pre-index memops

* Minor simplifying code to pre- and post-index address operand handling
2017-09-26 12:52:47 -04:00

1.2 KiB

Remill documentation

This document provides an index for topics relating to the design, implementation, and workings of Remill. Remill is an open-source, permissively licensed program. Persons interested in helping with the development of Remill should consult the "How to contribute" document.

Remill is a machine code to LLVM bitcode binary translation library. It provides APIs that enable other tools (e.g. McSema) to lift the instructions of binary programs into equivalent LLVM bitcode. Remill can and has been used by both static and dynamic binary translators.

Remill's approach to instruction lifting is showcased in the "How instructions are lifted" document. It shows how machine code bytes are decoded and mapped to C++ functions that implement the operational semantics of instructions. The "How to add and test an instruction"" document describes the formatting and structure of these C++ functions.