Commit graph

175 commits

Author SHA1 Message Date
Fish
3333f39fff
CFGFast: Make the smart scan nodecode ratio O(log n) (#6767) 2026-08-05 01:42:45 -07:00
Fish
b9358da5da
AIL: Fix __eq__. (#6728)
* AIL: Merge likes/matches into a single mode-parameterized walk

* AIL: Make __eq__ idx-aware at every node, not just the root

* AIL: Stop hashing fields that equality does not compare

* AIL: Regression-test the hash/eq contract

* AIL: Compare bits in StringLiteral and Struct

* AIL: Replace the CMP_* constants with a CmpMode enum

* AIL: cargo fmt

* AIL: Compare and hash rounding_mode on Convert and BinaryOp

* Update comments.
2026-07-29 01:22:10 -07:00
Fish
55f059982b
UltraPage: Make the symbolic map an actual bitmap. (#6714) 2026-07-27 17:35:52 -07:00
Fish
1a5eedf622
Decompiler: Speed up AIL block simplifications. (#6712)
- Make SPropagator, SRDA, and BlockSimplifier normal classes instead of Analysis classes.

- Share peephole optimizer instances across BlockSimplifiers.

- BlockSimplifier: Skip unnecessary peephole passes; avoid block-level comparisons for fixpoint determination.

- Add a runtime-only peephole_optimized flag to AIL statements so we skip running peephole optimizations on already optimized statements.
2026-07-27 16:34:10 -07:00
Fish
91cc026062
AILVexLifter: Fix libVEX overread by padding in convert_from_lift. (#6686) 2026-07-24 01:43:20 -07:00
Yan Shoshitaishvili
cf54c35b9b
AIL: handle HAddV operations (#6680)
* AIL: handle HAddV operations

* Fix HAddV CI diagnostics
2026-07-23 21:10:10 -07:00
Fish
02c374b5b4
DecompilationCache: Serialization support. (#6624)
Also,

- Refactored variable_kb into kb.dec_variables.

- Spill decompilation cache into RuntimeDb.

- Save decompilation cache into angrDb. Decompilation results can be preserved across runs.

- No longer check in _pb2.py files; they are generated during build.
2026-07-22 03:03:40 -07:00
Fish
654fbcea8d
AIL: Port the AIL VEX lifter to Rust. (#6608)
* port the VEX->AIL converter and Manager to Rust

* allow a non-constant rounding mode on Convert/BinaryOp

* construct AilExpression/AilStatement natively in the converter

* resolve libpyvex symbols on Windows

* classify name-only VEX ops; guarantee ins_addr on every stmt

* take the Manager as a typed pyclass handle in the converter

* Lint code.

* ailment.pyi: add Manager and VEXIRSBConverter stubs
2026-07-15 01:23:34 -07:00
Kevin Phoenix
faafe65ff3
native/angr: add package metadata required by workspace cargo lints (#6591)
The clarirs workspace lints enable clippy::cargo, and CI runs clippy with
-D warnings, so the angr crate's missing description/license/readme/
keywords/categories/repository metadata failed the Rust Check job.
Inherit the shared fields from workspace.package.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:42:51 -07:00
Fish
783932a24c
Const: Fix sign_bit for wide values. (#6590) 2026-07-08 11:17:59 -07:00
Fish
f5f6667a77
StackPointerOffset: Wrap around offset according to bits. (#6589)
* StackPointerOffset: Wrap around offset according to bits.

* Format the code.

* Add test cases.
2026-07-08 10:38:03 -07:00
Fish
9235f7fd27
Migrate AIL classes to Rust (#5967)
This PR migrates AIL classes (Block, Statement, Expression, etc.) to Rust. Key changes include:

- Block, Statement, and Expression are native Rust objects. Every access to their properties will create a new Python class object. Therefore, `expr.dst is expr.dst` will always evaluate to False. You'll want to do `expr.dst == expr.dst` instead.

- However, keep in mind that `expr_0 == expr_1` can be expensive because equality checks may potentially go over two expression trees and compare every single node. In this case, you may want to resort to `expr_0.idx == expr_1.idx`. There are still a few places where `idx` is reused; we plan to remove all such cases and guarantee the uniqueness of `idx` for all Statements and Expressions during a single decompilation run.

- `type(expr) is Const` no longer works. You must use `isinstance(expr, Const)` instead. `isinstance(..., ExpressionCls/StatementCls)` is also more expensive than before due to the use of custom meta classes.

- New changes to AIL requires rebuilding the Rust component to land. You can do `python setup.py build_rust --inplace --release` to rebuild the angr Rust component in-place in an editable install.

---------

Co-authored-by: Kevin Phoenix <kevin@kphoenix.us>
2026-07-08 02:10:07 -07:00
dependabot[bot]
2e2a62b277
rust: bump pyo3 from 0.28.3 to 0.29.0 (#6494)
Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.28.3 to 0.29.0.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.28.3...v0.29.0)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.29.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-12 13:19:44 -07:00
Kevin Phoenix
01bb4c1375
Use abi3 for wheels (#6469) 2026-06-04 12:11:06 -07:00
Matt Borgerson
e2a37a4493 rust: Bump icicle-emu dep for Ghidra 12.1 thumb mode fix 2026-05-21 14:57:35 -07:00
Kevin Phoenix
465377e7aa
unicorn: Add padding to the lifting buffer in thumb mode (#6412) 2026-05-19 13:10:58 -07:00
Kevin Phoenix
d2dab9b3c9
unicorn: Remove redundant PC overwrite in State::commit (#6411) 2026-05-19 10:54:14 -07:00
Kevin Phoenix
85678cac76
Icicle: use snapshot mode unconditionally (#6366)
* Icicle: auto-invalidate code cache on memory mutations.

Before this change, calling mem_write/mem_unmap/mem_protect from Python
on an address whose page had been executed would raise SelfModifyingCode
(from the VM's SMC detection) or silently leave a stale lifted/JIT
block in place, so subsequent runs executed the old code.

mem_write/mem_unmap/mem_protect now call an internal invalidate_code_range
that drops any BlockGroup, JIT compilation, and cached disassembly
overlapping the written range. SMC detection is disabled at construction
since explicit invalidation replaces it for our sync writes. restore_snapshot
additionally calls Vm::reset before Vm::restore so lifted code, JIT cache,
and prev_isa_mode — none of which the snapshot covers — are discarded.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* IcicleEngine: re-sync simproc breakpoints on every run.

SimProcedure.call() creates new extern hooks on demand (for instance, the
continuation targets of __libc_start_main), so the simproc set grows
during execution. IcicleEngine's full-init path seeded the emu's
breakpoint table once, but neither the continuation nor the snapshot-
restore paths re-synced new entries.

Before this, a main() return landing on a dynamically-created
after_main extern silently fell through to zero bytes in the extern
region (SIGSEGV in fauxware fully- or partly-snapshot-mode runs).

add_breakpoint is idempotent so iterating over project._sim_procedures
before each run is cheap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* IcicleEngine: fix continuation sync for BV addresses and stale path tracer.

Two related fixes uncovered while chasing fauxware failures when snapshot
mode is forced on:

1. The SimInspect mem_write hook only recorded dirty pages when
   `mem_write_address` and `mem_write_length` were Python ints. In
   practice both are typically claripy BitVectors (concrete addresses
   wrapped), and `state.memory.store(addr, bvv)` is commonly called
   without an explicit size, so `length` arrives as None. Normalise BV
   args to int via `.concrete_value`, and fall back to
   `mem_write_expr.size() // 8` when length is absent. Without this,
   data written by SimProcedures between icicle runs (e.g. `read`
   writing into the stack password buffer) never made it into
   dirty_pages, so the next continuation-sync run left the emu holding
   pre-read zeros and comparisons downstream took the wrong branch.

2. The path tracer isn't cleared on continuation, so
   `emu.recent_blocks` accumulates blocks across every reused run.
   `__convert_icicle_state_to_angr` then re-appends the whole list each
   time, duplicating prior blocks in `state.history.bbl_addrs`. Call
   `emu.clear_path_tracer()` at the start of a continuation run so
   recent_blocks reflects only this run's blocks.

With these two fixes plus the earlier simproc-breakpoint re-sync, all
61 icicle/emulator/fuzzer tests pass with `_snapshot_mode` forced True,
matching the snapshot-off baseline.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* IcicleEngine: make snapshot mode the default; remove the opt-in.

The first call always saves a snapshot of the fresh VM; subsequent calls
either continue with the cached emu or restore the snapshot and
delta-sync. Dropped `enable_snapshot_mode()` and the `_snapshot_mode`
flag — with the earlier sync fixes on this branch, the restore-based
path passes the same tests as the prior full-init-each-call behaviour
and runs roughly 3x faster on the fauxware suite.

- Removes the `enable_snapshot_mode()` method and its callers in three
  tests (now redundant) and in the Rust fuzzer executor.
- Updates the class docstring.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-04-27 11:09:03 -07:00
rileyseefeldt
0942e66ec9
Fuzzer infrastructure: engine caching, custom breakpoints, icicle bump (#6346)
* Fuzzer infrastructure: engine caching, custom breakpoints, deterministic mutations

- Cache UberIcicleEngine across fuzzer iterations with snapshot mode
- Support state.globals['_fuzzer_breakpoints'] for user-controlled breakpoints
- Add DeterministicMutator for predictable test mutations
- Add max_mutations parameter and executions getter
- Handle EMULATION_GAP as ExitKind::Ok
- Update to libafl 0.15.4, pyo3 0.28.2, Rust 1.94
- Rewrite fuzzer tests with shellcode-based harness

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* lint

* use angr icicle fork, get rid of unused emulator_gap

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 15:22:31 -07:00
dependabot[bot]
191826377e
rust: bump indexmap from 2.13.1 to 2.14.0 (#6343)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.13.1 to 2.14.0.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.13.1...2.14.0)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 11:37:26 -07:00
dependabot[bot]
700344a275
rust: bump indexmap from 2.13.0 to 2.13.1 (#6317)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.13.0 to 2.13.1.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.13.0...2.13.1)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-version: 2.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-06 13:34:49 -07:00
dependabot[bot]
cf10a0ff08
rust: bump pyo3 from 0.28.2 to 0.28.3 (#6318)
Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.28.2 to 0.28.3.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.28.2...v0.28.3)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.28.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-06 13:34:26 -07:00
Kevin Phoenix
d9e0aa6bbf
Update rust-toolchain.toml to 1.94 (#6289)
* Update rust-toolchain.toml to 1.94

* Fix clippy

* Cargo fmt
2026-03-27 09:54:54 -07:00
dependabot[bot]
b566d4e4fc
rust: bump tempfile from 3.26.0 to 3.27.0 (#6236)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.26.0 to 3.27.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.26.0...v3.27.0)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-16 10:48:29 -07:00
dependabot[bot]
d8637f3b12
rust: bump target-lexicon from 0.13.4 to 0.13.5 (#6235)
Bumps [target-lexicon](https://github.com/bytecodealliance/target-lexicon) from 0.13.4 to 0.13.5.
- [Commits](https://github.com/bytecodealliance/target-lexicon/compare/v0.13.4...v0.13.5)

---
updated-dependencies:
- dependency-name: target-lexicon
  dependency-version: 0.13.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-16 10:47:24 -07:00
rileyseefeldt
d3dcb26db1
Dirty Page Tracking for Icicle Engine (#6227)
* faster

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: rileyseefeldt <riley@evilcomputer2.localdomain>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-16 08:52:33 -07:00
Kevin Phoenix
28978dabb2
Add deterministic mutator to fuzzer for easier testing (#6223)
* Add determininstic mutator to fuzzer for easier testing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-12 09:20:29 -07:00
Kevin Phoenix
4a9787d708
Update libafl to 0.15.4 (#6217) 2026-03-09 14:59:07 -07:00
Kevin Phoenix
22ac6f9fd3
Upgrade icicle-emu to 6040b08d and bump target-lexicon to 0.13.4 (#6216) 2026-03-09 13:48:38 -07:00
Kevin Phoenix
be6ac006cb
Improve fuzzer test time (#6215) 2026-03-09 12:04:16 -07:00
rileyseefeldt
21f8254125
Cache Icicle State (#6202)
* adds checkpoint for converting angr state to icicle

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix ruff errors

* sync snapshot mapping/perms and added test

* lint fix

* changed test to use angr engine

* ruff

---------

Co-authored-by: rileyseefeldt <riley@evilcomputer2.localdomain>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: rileyseefeldt <seatbeltman@evilcomputer.localdomain>
2026-03-09 09:26:45 -07:00
dependabot[bot]
ec93a3fb2e
rust: bump tempfile from 3.25.0 to 3.26.0 (#6195)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.25.0 to 3.26.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/commits/v3.26.0)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 12:26:44 -07:00
dependabot[bot]
5594d4b558
rust: bump pyo3 from 0.28.1 to 0.28.2 (#6165)
Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.28.1 to 0.28.2.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.28.1...v0.28.2)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.28.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 10:26:47 -07:00
dependabot[bot]
57c3aa465b
rust: bump pyo3 from 0.28.0 to 0.28.1 (#6126)
Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.28.0 to 0.28.1.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.28.0...v0.28.1)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.28.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 14:43:51 -07:00
dependabot[bot]
dbc613424d
rust: bump tempfile from 3.24.0 to 3.25.0 (#6127)
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.24.0 to 3.25.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/commits)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-version: 3.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 12:11:32 -07:00
Fish
1f4c279548
Typehoon: Drop pyformlang (and numpy) dependency. (#6096)
* Typehoon: Drop pyformlang (and numpy) dependency.

* Fix clippy complaints.

* Run cargo fmt.

* Add pyi files.

* Rename formlang to automaton.

* Format code.
2026-02-05 18:30:20 -07:00
Kevin Phoenix
ae829f491d
Refactor coverage to use a dedicated state plugin (#6098) 2026-02-05 13:34:49 -07:00
dependabot[bot]
7bfcbbc2f6
rust: bump pyo3 from 0.27.2 to 0.28.0 (#6088)
* rust: bump pyo3 from 0.27.2 to 0.28.0

Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pyo3/pyo3/compare/v0.27.2...v0.28.0)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply migrations

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kevin Phoenix <kevin@kphoenix.us>
2026-02-03 10:10:42 -07:00
Kevin Phoenix
9297bdae70
Update vendored unicorn headers to 2.1.4 (#6070) 2026-01-30 10:30:03 -07:00
Kevin Phoenix
5e3cc18a91
Revert "Update libafl to 0.15.4 (#6038)" (#6062)
This reverts commit c116e5e9b2.
2026-01-28 12:43:23 -07:00
Kevin Phoenix
7804c7db80
Revert "Update icicle and target-lexicon (#6019)" (#6059)
This reverts commit 977a8ff943.
2026-01-27 14:27:40 -07:00
Kevin Phoenix
96ce6e3c22
Load inputs for OnDiskCorpus entries if necessary (#6042)
* Load inputs for OnDiskCorpus entries if necessary

* Cargo fmt
2026-01-21 17:42:44 +00:00
Kevin Phoenix
3c6db0c9e4
Update icicle revision (#6039) 2026-01-20 23:26:21 +00:00
Kevin Phoenix
c116e5e9b2
Update libafl to 0.15.4 (#6038) 2026-01-20 23:23:06 +00:00
dependabot[bot]
60da9cc3c3
rust: bump serde from 1.0.219 to 1.0.228 (#6028)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.219 to 1.0.228.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.219...v1.0.228)

---
updated-dependencies:
- dependency-name: serde
  dependency-version: 1.0.228
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 00:12:27 +00:00
dependabot[bot]
f59e5cbef8
rust: bump backtrace from 0.3.75 to 0.3.76 (#6027)
Bumps [backtrace](https://github.com/rust-lang/backtrace-rs) from 0.3.75 to 0.3.76.
- [Release notes](https://github.com/rust-lang/backtrace-rs/releases)
- [Changelog](https://github.com/rust-lang/backtrace-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/backtrace-rs/compare/0.3.75...backtrace-v0.3.76)

---
updated-dependencies:
- dependency-name: backtrace
  dependency-version: 0.3.76
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 00:11:53 +00:00
Kevin Phoenix
977a8ff943
Update icicle and target-lexicon (#6019) 2026-01-15 11:51:14 -07:00
Kevin Phoenix
836a265484
Add a LibAFL-based Fuzzer (#5616)
* WIP Fuzzer

* Cargo fmt

* Set breakpoint at return address

* Add basic monitor support

* Add some access parameters

* Remove print message

* Update to pyo3 0.26

* Fix deprecations

* Remove commented cargo entries

* Improve pyi file coverage

* Fix linter and type checker issues

* Properly get return address register from calling convention

* Improve test

* Refactor monitors into more flexible callback

* Add run method to run fuzzer on loop

* Fix Fuzzer init arg in pyi file

* FCP: Get default cc from project factory

* Make PyInMemoryCorpus Sendable

* Use an on-disk corpus

* Add submodule imports to rustylib pyi

* Dynamic Corpus that allows for OnDiskCorpus and InMemoryCorpus

* Run formatters

* Add some type asserts

* Refactor test_fuzzer.py to be unittest

* Add pylint ignore

* Add tests for serialization

---------

Co-authored-by: rileyseefeldt <riley@evilcomputer2>
2026-01-14 13:29:36 -07:00
dependabot[bot]
d8aa8a343b rust: bump rangemap from 1.7.0 to 1.7.1
Bumps [rangemap](https://github.com/jeffparsons/rangemap) from 1.7.0 to 1.7.1.
- [Changelog](https://github.com/jeffparsons/rangemap/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jeffparsons/rangemap/commits/v1.7.1)

---
updated-dependencies:
- dependency-name: rangemap
  dependency-version: 1.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 14:18:59 -07:00
Audrey Dutcher
402a657928
Hash lookup api deobfuscator (#5862)
* Hash lookup api deobfuscator

* unicorn: add 'UcProcedures' to keep simple functions inside unicorn

* whack

* lint and whack

* WHACK
2025-12-02 11:30:33 -07:00