Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 1.12 KB

README.md

File metadata and controls

33 lines (22 loc) · 1.12 KB

Synthir

Build Status

This tool uses templates, MCMC and a mixed approach to synthetize IR transformations for assembly instructions (currently only supporting x86_64).

Slides from Ekoparty: IR transformation synthesis for assembly instructions

Installation

Runs with Rust >= 1.7 and requires the following libraries:

  • libz-dev
  • libedit-dev
  • libcapstone-dev
  • llvm-3.8-dev (or 3.7)

More information

  • Automated Synthesis of Symbolic Instruction Encodings from I/O Samples: Paper
  • Stochastic Superoptimization: Paper

TODO

  • x86_64 support
  • ARM support (synthir_execute)
  • Mips support (synthir_execute)
  • Finish Floating point support (SMT and emulator)
  • Add back mixed approach
  • Extend available templates
  • Transform our IR to LLVM (synthir_llvm)
  • Clean