Coder Social home page Coder Social logo

joshpoll / remill Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lifting-bits/remill

0.0 1.0 0.0 7.98 MB

Library for lifting of x86, amd64, and aarch64 machine code to LLVM bitcode

License: Apache License 2.0

CMake 0.46% Shell 0.23% Assembly 29.08% C++ 68.80% Python 0.45% C 0.93% Objective-C 0.02% GDB 0.02%

remill's Introduction

Remill

Remill is a static binary translator that translates machine code instructions into LLVM bitcode. It translates x86 and amd64 machine code (including AVX and AVX512) into LLVM bitcode. AArch64 support is underway.

Remill focuses on accurately lifting instructions. It is meant to be used as a library for other tools, e.g. McSema.

Build Status

master
Linux Build Status

Additional Documentation

Getting Help

If you are experiencing undocumented problems with Remill then ask for help in the #binary-lifting channel of the Empire Hacking Slack.

Supported Platforms

Remill is supported on Linux platforms and has been tested on Ubuntu 14.04 and 16.04.

We are actively working on porting Remill to macOS.

Dependencies

Most of Remill's dependencies can be provided by the cxx-common repository. Trail of Bits hosts downloadable, pre-built versions of cxx-common, which makes it substantially easier to get up and running with Remill. Nonetheless, the following table represents most of Remill's dependencies.

Name Version
Git Latest
CMake 3.2+
Google Flags Latest
Google Log Latest
Google Test Latest
LLVM 3.5+
Clang 3.5+
Intel XED Latest
Python 2.7
Unzip Latest

Getting and Building the Code

On Linux

First, update aptitude and get install the baseline dependencies.

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install \
     git \
     python2.7 \
     wget \
     curl \
     realpath \
     build-essential \
     libtinfo-dev \
     lsb-release \
     zlib1g-dev

Next, clone the repository. This will clone the code into the remill directory.

git clone [email protected]:trailofbits/remill.git

Next, we build Remill. This script will create another directory, remill-build, in the current working directory. All remaining dependencies needed by Remill will be built in the remill-build directory.

./remill/scripts/build.sh

Next, we can install Remill. Remill itself is a library, and so there is no real way to try it. However, you can head on over to the McSema repository, which uses Remill for lifting instructions.

cd ./remill-build
sudo make install

We can also build and run Remill's test suite.

cd ./remill-build
make build_x86_tests
make test

remill's People

Contributors

pgoodman avatar mike-myers-tob avatar roachspray avatar kumarak avatar krx avatar dguido avatar withzombies avatar garretreece avatar perks avatar artemdinaburg avatar alessandrogario avatar surovic avatar tathanhdinh avatar rgov avatar ranweiler avatar japesinator avatar erhlee-bird avatar esultanik avatar mewmew avatar alberdingk-thijm avatar hugin avatar evil-e avatar bdlmt avatar yan avatar

Watchers

James Cloos 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.