Skip to content
/ synthir Public

IR Transformation Synthesis for Assembly Instructions

License

Notifications You must be signed in to change notification settings

snf/synthir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages