Giter Site home page Giter Site logo

tonyle9 / reopt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from galoisinc/reopt

0.0 1.0 0.0 4.93 MB

A tool for analyzing x86-64 binaries.

License: BSD 3-Clause "New" or "Revised" License

Makefile 0.15% C 1.04% LLVM 67.79% Assembly 10.73% Shell 0.79% Haskell 19.38% Python 0.13%

reopt's Introduction

reopt

Reopt is a tool for recompiling compiled code to do enhanced optimizations. It works by mapping binaries into LLVM byte code, using the LLVM optimization passes to optimize the LLVM, and then combining the newly generated into the binary to generate a new executable.

It currently supports only the x86_64 instruction set, but efforts are underway to add support for additional executables.

Usage

Scenarios:

Recompile an application

Pretty print an intermediate format:

Target Selection options:

** Whitelist ** Blacklist

Logging options:

Debugging:

** Objdump-style dump ** Discovered functions ** Recovered functions ** Generated LLVM ** Object file

** Relink existing object and code.

Dependencies

In addition to Hackage dependencies, Reopt has the following dependencies:

Installation

Assuming you have modern git, GHC, and cabal-install you should be able to install with:

git submodule update --init
cabal new-build exe:reopt

And a first run with:

cabal new-run reopt -- --help

reopt's People

Contributors

simonjwinwood avatar ntc2 avatar thebendavis avatar benjaminselfridge avatar travitch avatar dagit avatar joehendrix avatar mhuesch avatar ericson2314 avatar smagill avatar

Watchers

Hung Le  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.