mrkeyoor.com_
Sun 27 Sept 08:39 UTC
AI Toolsevaluationupdated 27 Sept 2026

reverify review

Reverify is a Python CLI and MCP server that checks an AI agent's claims about binaries against bytes, parsers, disassemblers, emulators, or proof tools. It also keeps verified findings in a ledger and can hand long agent sessions into a fresh context without treating the model's own summary as fact.

Verdict

Our Reverify install took 23 seconds and pip-audit found 0 known vulnerabilities, but an open issue reproduces a false VERIFIED result in the claim path. Use it to make agent output inspectable and replayable, especially for authorized binary analysis, while a human or second tool reviews consequential findings. Do not make it the sole gate for security conclusions until malformed claim fields fail closed.

We ran it

Lab card: what happened when we ran reverifyScreenshot of reverify (github.com/2akouwu/reverify)
Install✓ · 23s36 packages · 37 MB
Build✓ · 1s
Testsn/ano test script
Known vulns0(pip-audit)
Repo109 files~17,503 lines of source · 1.5 MB · 7 CI workflows

Answers from our run

Does reverify build from source?

Dependencies installed in 23 seconds (36 packages), and the build succeeded in 1 seconds. We cloned commit f32ea84 into a clean Debian container with 3 CPUs and no project-specific setup.

Does reverify have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does reverify have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use reverify?

Teams that need a verifier to be the final authority today: open issue 23 reproduces a false VERIFIED result when an agent sends symbol instead of the supported function field.

What are the alternatives to reverify?

Ghidra, angr, radare2. Our Reverify install took 23 seconds and pip-audit found 0 known vulnerabilities, but an open issue reproduces a false VERIFIED result in the claim path.

Setup4/523-second install; optional engines and hooks add choices
Docs4/5Detailed examples, but README and release packaging disagree
Community3/51,245 stars and recent issues; code last pushed September 7
Maturity2/5Alpha label and an open false-VERIFIED report limit trust

Who it’s for

Reverse engineers who want an agent to produce checkable claims about PE, ELF, or Mach-O files.
Malware analysts, CTF players, and interoperability researchers working on binaries they are authorized to inspect.
Agent developers who want verification receipts and a durable ledger behind MCP calls.
Claude Code, Codex, Gemini CLI, or OpenCode users willing to launch sessions through Reverify for controlled rollover.

Who it’s NOT for

Teams that need a verifier to be the final authority today: open issue 23 reproduces a false VERIFIED result when an agent sends symbol instead of the supported function field.
Developers seeking a general fact checker for arbitrary model prose: the implemented checks center on binaries, constrained code equivalence, and structured claim kinds.
Analysts who need full program semantics from the base install: call graphs and cross-references require the separate angr extra, which is excluded from the full extra.
Claude Code or Codex users who start the CLI directly and expect automatic fresh sessions: the README says their hooks can write a hand-off but cannot end the current session.
Anyone needing the newest GitHub release from PyPI immediately: GitHub labels v0.11.0 latest, while PyPI currently serves 0.10.0.

Setup reality

Our sandbox install at commit f32ea84 succeeded in 23 seconds, adding 36 packages and using 37 MB. The build passed in 1 second. We skipped tests because the checkout exposed no test script or target; pip-audit found 0 known vulnerabilities.

The basic Python package needs no hosted service or API key for local inspection. Model-driven reconstruction needs a supported agent driver or an OpenAI-compatible endpoint. Capstone, Unicorn, LIEF, Z3, and angr are optional installs rather than part of the zero-dependency core.

Our 1.5 MB checkout held 109 files and about 17,503 source lines. It had 7 CI workflow files, no Dockerfile, and no tests directory. The full extra omits angr, rollover installation edits agent configuration files, and v0.11.0 is on GitHub while PyPI reports 0.10.0.

Reverify turns binary claims into structured checks

Reverify accepts a claim such as a byte sequence at an offset, an imported function, or an expected register value, then asks a deterministic tool to judge it. The result is VERIFIED, REFUTED, or INCONCLUSIVE, accompanied by observed evidence. That is a better contract than asking a language model to sound certain about a PE, ELF, or Mach-O file. The model chooses what to investigate, while parsers and execution tools decide whether a specific statement survives.

The useful part is the boundary. Reverify does not promise that model prose becomes true. It defines structured claim kinds that software can check. Its ledger keeps verified, observed, proved, and refuted results across restarts, while leaving unverified notes labelled as such. Through MCP, an agent can call the same verifier without scraping terminal text. This is most convincing for reverse engineering, where an invented offset can send an analyst down the wrong branch for hours.

The zero-dependency core is smaller than the full analysis stack

The package metadata requires Python 3.8 or newer and declares 0 base dependencies. That core includes pure-Python readers and fallbacks. Higher-fidelity disassembly, emulation, parsing, and proofs come from optional Capstone, Unicorn, LIEF, and Z3 extras. Function boundaries, call graphs, cross-references, and reachability use angr through another extra that the project deliberately leaves out of full.

That separation makes a first trial cheap, but backend choice changes what a verdict means. Without the semantic engine, the README says the fallback can establish entry points and exports, while other semantic questions return INCONCLUSIVE. The CLI reports active backends, so save that output with any result you intend to share. A receipt tied to a lightweight fallback should not be presented as if angr recovered and checked a control-flow graph.

What happened when we ran it

Our sandbox installed commit f32ea84 in 23 seconds, adding 36 packages and consuming 37 MB on disk. The build succeeded in 1 second. Pip-audit reported 0 known vulnerabilities in the installed environment. Those are modest costs for trying the CLI or MCP server in a disposable workspace.

We did not run tests because the checkout exposed no test script or target. That is different from a failing suite: our harness had nothing it could invoke, so it produced no passing test count. The 1.5 MB checkout contained 109 files and about 17,503 lines of source, with 7 CI workflow files but no Dockerfile or tests directory. The repository may run checks through those workflows, but our result only proves that installation and build completed in the stated Debian container.

An open false VERIFIED report cuts into the central promise

Issue 23, opened September 23, reproduces a false VERIFIED outcome on PyPI version 0.10.0. An agent supplied symbol for an imported API name instead of Reverify's supported function field. Because the same claim also contained a recognized library field, the verifier silently reduced the request to a library-only check and returned success without judging the named symbol. The reporter reproduced the behavior through MCP as well as the CLI path.

This is not a complaint about fuzzy model interpretation. It sits on the exact boundary Reverify is meant to police: model-authored JSON entering a deterministic judge. Agents will misspell fields and choose plausible synonyms. Until unknown keys are rejected or clearly surfaced, callers should validate the claim schema, inspect the evidence, and confirm that the returned receipt mentions the fact they asked about. A green label alone is not enough.

Open-ended goals can stall before reaching the right claim kind

Issue 14 reports that one open-ended import question produced 0 import claims across 2 sessions. The model fell back to raw byte guesses, collected observations, and never completed the goal. Rephrasing the task around the structured import claim made the run converge in the reporter's example. An open pull request proposes a prompt change, but it was still unmerged when we checked.

This exposes a practical split between the verifier and the orchestrator. A well-formed claim can be checked deterministically, while the model still has to select the right claim kind. For important work, define the goal narrowly and watch the first round. If an import question produces offset guesses instead of import_present, stop and correct the task rather than paying for more unproductive turns.

Automatic rollover needs the launcher on Claude Code and Codex

Version 0.11.0 adds rollover support across 4 agent CLIs: Claude Code, Codex, Gemini CLI, and OpenCode. Reverify writes a fixed-shape hand-off file, records a receipt, and starts a fresh session where the host permits it. The design is sensible because verified ledger facts remain separate from the model's own notes.

The integration is not equal on every host. The README says plain Claude Code and Codex hooks can request and record a hand-off but cannot terminate their own session. Full replacement requires starting the CLI through reverify rollover, or configuring the documented successor route. Installation also edits each agent's configuration and disables native compaction, with backups. Run reverify rollover doctor after setup and after agent upgrades.

The project is active, young, and still alpha

GitHub listed 1,245 stars, 238 forks, and 8 combined issues and pull requests when fetched on September 27, 2026. The last code push was September 7, while issue discussion continued through September 24. The package metadata labels the project alpha, which fits the rapid release history and the unresolved verification defects better than the confident README headline does.

Packaging also trails the repository. GitHub marks v0.11.0 as the latest release, while PyPI currently reports 0.10.0. The release notes say the PyPI publish depends on enabling its trusted publisher. Reverify is worth trying because it makes an agent show its work in a form another tool can inspect. Keep the human in the loop until the verifier rejects malformed claims as firmly as it rejects wrong bytes.

Alternatives

ProjectWhat it isPick it when
Ghidra gh↗A full reverse-engineering suite with a graphical interface, decompiler, and scripting APIs.pick this instead when a human-led GUI and mature decompilation workflow matter more than agent claim receipts.
angrA Python framework for binary analysis, control-flow recovery, and symbolic execution.pick this instead when you want to build your own analysis pipeline around program semantics and symbolic execution.
radare2 gh↗A command-line reverse-engineering framework with analysis, debugging, and binary editing tools.pick this instead when broad manual binary work and an established CLI matter more than an AI-specific verification loop.

What people are saying

  1. [velocity-scout] 2akouwu/reverify

Sources

  1. Reverify repository and README
  2. Reverify v0.11.0 release
  3. Issue 23: unknown claim fields can return VERIFIED
  4. Issue 14: open-ended goals can miss structured claims
  5. Reverify on PyPI
  6. Reverify security policy

More ai tools reviews

ComfyUI-H3VAE_TRT · gallery · undress-service · khazix-skills · nobodywho · desktop-cc-gui · the whole board →