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 develop
The tests folder contains tests that double as standalone examples. Prefix a function with test_ to automatically run it:
uv run pytest -v
Alternatively you can uv run tests/example.py to run/debug the standalone example.
uv build