This project is an easy-to-use Python wrapper around icicle-emu. You can read more about Icicle in the paper: Icicle: A Re-designed Emulator for Grey-Box Firmware Fuzzing.
Installation
You can install the latest release from PyPI:
Development
Note: You need to install Rust 1.90 or higher to build from source.
Install uv
# On Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # On macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
Build the project
# Clone the repository with submodules git clone --recursive https://github.com/icicle-emu/icicle-python cd icicle-python # Install dependencies and build uv sync uv run maturin develop
Running tests
The tests folder contains tests that double as standalone examples. Prefix a function with test_ to automatically run it:
Alternatively you can uv run tests/example.py to run/debug the standalone example.