remill

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

Github星跟蹤圖

Remill Slack Chat

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

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, 16.04, and 18.04. Remill also works on macOS, and has experimental support for Windows.

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, ccache, 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 \
     build-essential \
     libtinfo-dev \
     lsb-release \
     zlib1g-dev \
     ccache

# Ubuntu 14.04, 16.04
sudo apt-get install realpath

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

git clone https://github.com/lifting-bits/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 test_dependencies
make test

主要指標

概覽
名稱與所有者lifting-bits/remill
主編程語言C++
編程語言Shell (語言數: 9)
平台
許可證Apache License 2.0
所有者活动
創建於2015-10-22 13:54:19
推送於2025-05-23 18:38:59
最后一次提交2025-05-24 03:38:58
發布數49
最新版本名稱v5.0.7 (發布於 )
第一版名稱v2.0.0 (發布於 )
用户参与
星數1.4k
關注者數60
派生數150
提交數1.1k
已啟用問題?
問題數249
打開的問題數65
拉請求數426
打開的拉請求數9
關閉的拉請求數30
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?