snf / synthir

IR Transformation Synthesis for Assembly Instructions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

IR Transformation Synthesis for Assembly Instructions

License:MIT License


Languages

Language:Rust 100.0%