Remill项目安装与配置指南

Remill项目安装与配置指南

remill Library for lifting machine code to LLVM bitcode remill 项目地址: https://gitcode.com/gh_mirrors/re/remill

1. 项目基础介绍

Remill 是一个静态二进制翻译器,它能将机器代码指令转换为 LLVM 位码。支持的架构包括 AArch64(64位ARMv8)、SPARC32(SPARCv8)、SPARC64(SPARCv9)、x86 以及 amd64(包括 AVX 和 AVX512)。AArch32(32位ARMv8/ARMv7)的支持也在开发中。Remill 的重点是准确地进行指令提升,旨在作为其他工具的库使用,例如 McSema。

主要编程语言:C++。

2. 项目使用的关键技术和框架

  • LLVM:一个强大的编译器基础设施项目,用于优化和编译代码。
  • Clang:基于 LLVM 的 C/C++ 编译器。
  • Intel XED:用于处理 x86/x86-64 指令的解码库。

3. 项目安装和配置的准备工作

在开始安装之前,请确保您的系统中已经安装了以下依赖:

  • CMake(版本 3.14 或更高)
  • Google Flags
  • Google Log
  • Google Test
  • Python(版本 2.7)
  • Unzip
  • ccache
  • 32位版的 libc6-dev 和 libstdc++-dev(对于某些架构)

此外,Remill 支持在 Linux 平台上运行,并且在 Ubuntu 22.04 上进行了测试。它也可以在 macOS 上运行,对 Windows 的支持则是实验性的。

安装步骤

使用 Docker 进行快速测试
  1. 克隆 Remill 仓库:

    git clone https://github.com/lifting-bits/remill.git
    cd remill
    
  2. 构建 Remill Docker 容器:

    docker build -t remill -f Dockerfile --build-arg UBUNTU_VERSION=22.04 --build-arg LLVM_VERSION=17 .
    
  3. 确认 Remill 正常工作:

    使用 Docker 运行 Remill 并解码一些 AMD64 指令到 LLVM:

    docker run --rm -it remill --arch amd64 --ir_out /dev/stdout --bytes c704ba01000000
    

    或者解码一些 AArch64 指令到 LLVM:

    docker run --rm -it remill --arch aarch64 --address 0x400544 --ir_out /dev/stdout --bytes FD7BBFA90000009000601891FD030091B7FFFF97E0031F2AFD7BC1A8C0035FD6
    
在 Linux 上手动安装
  1. 更新系统并安装基础依赖:

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install git python3 wget curl build-essential lsb-release ccache libc6-dev:i386 libstdc++-10-dev:i386 g++-multilib rpm
    
  2. 克隆 Remill 仓库:

    git clone https://github.com/lifting-bits/remill.git
    
  3. 构建 Remill:

    ./remill/scripts/build.sh
    
  4. 安装 Remill:

    cd ./remill-build
    sudo make install
    
  5. 运行 Remill 的测试套件:

    cd ./remill-build
    make test_dependencies
    make test
    

请注意,如果在构建过程中遇到错误,可能需要根据错误消息调整安装步骤或安装额外的依赖项。

remill Library for lifting machine code to LLVM bitcode remill 项目地址: https://gitcode.com/gh_mirrors/re/remill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荣正青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值