You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: remove Rust dependency — tool is pure Python
- Remove Rust lint and test jobs from CI (were failing)
- Remove maturin from dev dependencies
- Remove Rust fuzzer section from installation docs
- Simplify Dockerfile to single-stage Python install
- Update architecture docs to reflect QEMU + Unicorn (no Rust)
- Fix license classifier in pyproject.toml (Apache-2.0)
- Add pytest-timeout to dev dependencies
The Rust crates (rtosploit-fuzzer, rtosploit-svd, rtosploit-payloads)
remain in the repo but are not built, tested, or required. The Python
Unicorn fuzzer at 700+ exec/sec replaced the Rust fuzzer.
Copy file name to clipboardExpand all lines: docs/architecture.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Architecture
2
2
3
-
RTOSploit is organized as a layered Python package with an optional native Rust component for performance-critical fuzzing. The system is designed around three entry points — interactive mode, CLI subcommands, and a programmatic Python API — all sharing the same core analysis and emulation engine.
3
+
RTOSploit is a Python package with two emulation engines (QEMU for interactive debugging, Unicorn for high-speed fuzzing). The system is designed around three entry points — interactive mode, CLI subcommands, and a programmatic Python API — all sharing the same core analysis and emulation engine.
Copy file name to clipboardExpand all lines: docs/installation.md
+4-20Lines changed: 4 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,31 +95,15 @@ If you see a version below 9.0, RTOSploit will print an error and refuse to star
95
95
96
96
---
97
97
98
-
## Native Rust Fuzzer (Optional)
98
+
## Optional: Unicorn Engine
99
99
100
-
Without the native fuzzer, RTOSploit runs in **simulation mode** — the dashboard and full pipeline work, but coverage is not driven by real mutation. Simulation mode is useful for:
101
-
- Testing the pipeline and report generation
102
-
- Demonstrating the interactive dashboard
103
-
- CI dry-runs without fuzzing infrastructure
104
-
105
-
To build the real fuzzer:
106
-
107
-
### Prerequisites
108
-
109
-
```bash
110
-
# Install Rust toolchain
111
-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
112
-
source~/.cargo/env
113
-
```
114
-
115
-
### Build
100
+
For high-speed fuzzing of real hardware firmware (no QEMU machine required):
116
101
117
102
```bash
118
-
cd rtosploit # project root (contains Cargo.toml)
119
-
cargo build --release -p rtosploit-fuzzer
103
+
pip install unicorn
120
104
```
121
105
122
-
The built binary is automatically detected when it is in `PATH` or in the Cargo output directory. RTOSploit checks for `rtosploit-fuzzer` at fuzz startup and falls back to simulation if not found.
106
+
This enables the `--engine unicorn` option on `fuzz` and `rehost` commands, providing ~700 exec/sec with Peripheral Input Playback (PIP).
0 commit comments