Skip to content

Installation

assafcarlsbad edited this page Dec 17, 2020 · 2 revisions

Installation

Installation of efi_fuzz can be done either manually or via Docker.

Manual installation

  1. If running on Windows, install WSL. We recommend WSL2 as opposed to the original WSL, which tends to be slow sometimes. The full installation instructions for Windows 10 can be found here: https://docs.microsoft.com/en-us/windows/wsl/install-win10

  2. Inside the WSL distribution, install some necessary packages that will allow us to compile C source code: sudo apt install build-essential automake

  3. Install AFL++ with Unicorn mode support.
    3.1 Clone the repository:
    git clone https://github.com/AFLplusplus/AFLplusplus
    cd AFLplusplus
    3.2. Build core AFL++ binaries:
    make
    3.3. Build the Unicorn support feature:
    cd unicorn_mode
    ./build_unicorn_support.sh
    3.4. Install everything:
    make install

  4. Clone efi_fuzz and install the required dependencies:
    git clone https://github.com/Sentinel-One/efi_fuzz
    pip install -r efi_fuzz/requirements.txt

Triton is required for taint propagation. Instructions for installing Triton can be found here:
https://triton.quarkslab.com/documentation/doxygen/#install_sec

Docker-based installation

  1. If running on Windows, install WSL. We recommend WSL2 as opposed to the original WSL, which tends to be slow sometimes. The full installation instructions for Windows 10 can be found here: https://docs.microsoft.com/en-us/windows/wsl/install-win10

  2. Build the Docker image:
    docker build -t efi_fuzz .

  3. Use the environment:
    docker run -v $PWD:/efi_fuzz -it efi_fuzz sh -c "cd /efi_fuzz ; bash"

Post-installation

After installation is complete, it's recommended to run the provided tests to make sure efi_fuzz functions properly:
cd tests && pytest -s -v -W ignore::DeprecationWarning

Clone this wiki locally