🍦
ItyFuzz
Hosted ItyFuzz on Blaz
  • Introduction
  • Installation & Building
  • Quickstart
  • Tutorials
    • [Exp] Hacking BEGO
    • [Exp] Hacking AES
    • [CTF] Verilog CTF (Onchain)
    • [CTF] Verilog CTF (Offchain)
    • [Exp] Known Working Hacks
  • Docs (EVM Contract)
    • Constructor for Offchain Fuzzing
    • Writing Invariants
    • Detecting Common Vulns
Powered by GitBook
On this page
  • ityfuzzup (Recommended)
  • Build from Source
Edit on GitHub

Installation & Building

PreviousIntroductionNextQuickstart

Last updated 1 year ago

There are several ways to install ItyFuzz. We recommend using the script.

ityfuzzup (Recommended)

ityfuzzup is a script that automatically installs all dependencies and installs ItyFuzz.

curl -L https://ity.fuzz.land/ | bash
ityfuzzup

To update ItyFuzz, run ityfuzzup again.

Build from Source

You first need to install Rust through https://rustup.rs/

You need to have libssl-dev (OpenSSL) and libz3-dev installed on your system. On Linux, you probably also need to install Clang >= 12.0.0 and use it for CC environment variables.

# Ubuntu:
sudo apt install libssl-dev libz3-dev pkg-config cmake build-essential clang
# macOS:
brew install openssl z3

Then, you can use cargo to build ItyFuzz. This can take seconds to hours depending on the amount of your CPU cores and memory.

git clone https://github.com/fuzzland/ityfuzz.git && cd ityfuzz
git submodule update --recursive --init
cargo build --release

This would create an executable at target/release/ityfuzz. This executable only supports offchain fuzzing (i.e., fuzzing without interacting with the blockchain). To build an executable for onchain fuzzing, run:

cargo build --release --features flashloan_v2

If you are developing ItyFuzz, you can create a debug build (much slower than release builds) and add the following useful features, which will enable more logs and assertions:

cargo build --features flashloan_v2,debug,flashloan_debug
ityfuzzup