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.
You can install the latest release from PyPI:
pip install icicle-emu
Note: You need to install Rust 1.90 or higher to build from source.
# 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# 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 developThe tests folder contains tests that double as standalone examples. Prefix a function with test_ to automatically run it:
uv run pytest -vAlternatively you can uv run tests/example.py to run/debug the standalone example.
uv build