File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99jobs :
1010 lint-rust :
1111 name : Rust Lint
12- runs-on : ubuntu-22.04
12+ runs-on : ubuntu-latest
1313 steps :
1414 - uses : actions/checkout@v4
1515 - uses : dtolnay/rust-toolchain@stable
2222
2323 test-rust :
2424 name : Rust Tests
25- runs-on : ubuntu-22.04
25+ runs-on : ubuntu-latest
2626 steps :
2727 - uses : actions/checkout@v4
2828 - uses : dtolnay/rust-toolchain@stable
@@ -33,28 +33,28 @@ jobs:
3333
3434 lint-python :
3535 name : Python Lint
36- runs-on : ubuntu-22.04
36+ runs-on : ubuntu-latest
3737 steps :
3838 - uses : actions/checkout@v4
3939 - uses : actions/setup-python@v5
4040 with :
4141 python-version : " 3.12"
4242 - name : Install ruff
43- run : pip install ruff mypy
43+ run : pip install ruff
4444 - name : Ruff check
45- run : ruff check rtosploit/
46- - name : Type check
47- run : mypy rtosploit/ --ignore-missing-imports || true
45+ run : ruff check .
4846
4947 test-python :
5048 name : Python Tests
51- runs-on : ubuntu-22.04
49+ runs-on : ubuntu-latest
5250 steps :
5351 - uses : actions/checkout@v4
5452 - uses : actions/setup-python@v5
5553 with :
5654 python-version : " 3.12"
57- - name : Install package
58- run : pip install -e ".[dev]"
59- - name : Run tests
60- run : pytest tests/ -v --tb=short || true
55+ - name : Install QEMU
56+ run : sudo apt-get install -y qemu-system-arm qemu-system-misc
57+ - name : Install package with dev dependencies
58+ run : pip install -e ".[dev]" unicorn
59+ - name : Run unit tests
60+ run : pytest tests/unit/ -v --tb=short --timeout=60
Original file line number Diff line number Diff line change @@ -80,24 +80,26 @@ jobs:
8080 if : always()
8181` ` `
8282
83- ### Scan with Native Fuzzer
83+ ### Scan with Unicorn Fuzzing (No QEMU Required)
8484
85- ` ` ` yaml
86- - name : Install Rust
87- uses : dtolnay/rust-toolchain@stable
85+ For real hardware firmware where QEMU machine matching is not available, use the Unicorn engine with PIP:
8886
89- - name : Build native fuzzer
90- run : cargo build --release -p rtosploit-fuzzer
87+ ` ` ` yaml
88+ - name : Install RTOSploit with Unicorn
89+ run : pip install -e . unicorn
9190
92- - name : Run scan with real fuzzing
91+ - name : Run Unicorn-based fuzz scan
9392 run : |
94- rtosploit scan \
95- --firmware firmware.bin \
96- --machine mps2-an385 \
97- --fuzz-timeout 300 \
98- --output scan-output
93+ rtosploit fuzz \
94+ --firmware firmware.elf \
95+ --engine unicorn \
96+ --auto \
97+ --timeout 300 \
98+ --output fuzz-output
9999` ` `
100100
101+ This runs at ~700 exec/sec without QEMU, using Peripheral Input Playback for model-free MMIO handling.
102+
101103### Analysis-Only (No Fuzzing)
102104
103105For fast feedback on every commit — static analysis and CVE check only:
You can’t perform that action at this time.
0 commit comments