Skip to content

Code and binary analysis

This inventory describes the implemented paths reviewed on October 28, 2026. An implemented analyzer, an installed dependency and a reproduced finding are three separate things. Check the selected runtime and the individual result.

ComponentRole
0Source/package review, agent investigation, tool execution, findings, verification and fixes
0verseSeparate Python engine for reverse engineering and evidence from compiled programs
GhidraPreferred 0verse decompiler/lifter; produces decompiled code and High P-Code SSA
FoxguardExternal static-analysis pass; source findings can also supplement decompiled-code analysis
0cloudSeparate private runner and agent-core; public-engine capabilities are not automatically deployed cloud capabilities

For a source repository, start with source review. For an executable or library without source, use 0verse. When both are available, correlate their evidence using the exact artifact, build and source revision.

CapabilityImplemented pathWhat the result establishes
Repository review0 review; unified source pipelineStatic and agent-investigated findings with supporting source locations
Static scanningFoxguard by default; Semgrep selectable with ZERO_STATIC=semgrepCandidate patterns/data-flow evidence; not proof that an exploit ran. Diff-scoped review skips the whole-tree Foxguard prepass.
Package analysis0 audit; npm, PyPI, Cargo and OCI preparation pathsAnalysis of available package content and relevant dependency/advisory evidence; ecosystem setup varies
Focused researchdeep-review, variant hunt, assumption and specialized source profilesLeads or hypotheses for follow-up; profiles guide investigation rather than independently proving a bug
Independent verificationBlind source verifier and evidence-kind classificationIndependent source assessment, or reproduced evidence when a supported replay actually ran
Reproductionverify_finding and deterministic replay runnersreproduced, not_reproduced, skipped or error, with the applicable evidence
Source fixesSource-fix workflow and generate_fixCandidate patches checked against required reproduction/verification specifications and regression commands; application is a separate action
HTTP protocol checksprotocol_conformance and HTTP oracleConcrete request/response differences against a modeled expectation; divergence alone does not establish exploit impact

Agent investigation can read files, follow source relationships, run available tools and delegate work. Results depend on source visibility, model/runtime configuration, budgets and the actual tools that ran. Source review does not require Ghidra or Binary Ninja.

See scan workflows, white-box analysis, research workflows and verification results.

The browser can start a structured source assessment; the CLI is not required. Ask the chat to run the built-in Whitebox pentest workflow for the authorized repository. Its template ID is repository-review, with dependency exposure, trust-boundary and configuration/secrets phases.

The agent can inspect list_templates / get_template and request start_run. The request stays queued until the chat turn finishes and the operator approves the launch and target. A queued request is not yet a running review. The workflow then calls the same runUnified assessment runner used by 0 review; the built-in template supplies its own multi-phase plan rather than necessarily reproducing the CLI’s default options. get_run and get_run_results expose status/results.

An ordinary conversational code inspection can also use file tools and agents directly. Asking a question about code does not automatically start the structured assessment workflow or all its phases. Inspect the recorded workflow run and evidence to tell which path actually ran.

0verse does not require Binary Ninja. Its current backend registry contains:

BackendStatus and roleDependencies and limits
ghidraImplemented; preferred by autoGhidra installation, matching PyGhidra/JPype bridge and compatible JDK; recovers High P-Code SSA
rizinImplemented fallback under this backend nameCurrently drives r2/radare2 and r2pipe, preferring r2ghidra pdg; pseudo-C-derived IL has lower fidelity
angrImplemented fallbackangr/CLE and decompiler support; its pseudo-C analysis adapter has lower fidelity than the Ghidra SSA path
Binary NinjaDeferred; not registered or implementedAn external Mole worker would separately require an appropriate Binary Ninja license

auto tries Ghidra, then the rizin backend, then angr. Explicitly requesting an unavailable backend is an error; it must not silently become a successful empty analysis. Installing the JavaScript CLI does not install these engines.

Ghidra recovers program structure. 0verse then normalizes it into its analysis representation, follows bounded source-to-sink backward slices, applies bug-class lenses, and produces candidates. Depending on configuration, later stages add LLM triage, angr reachability checks, harness synthesis, fuzzing and replay/oracle confirmation. These stages have separate dependencies and execution requirements. Pointer recovery, indirect calls and backend fidelity limit completeness.

Mole’s source/sink schema and slicing approach are already acknowledged prior art in 0verse’s design notes. An external Mole artifact importer would be an additional comparison/evidence source, not a prerequisite for this pipeline.

CapabilityImplemented boundary
Format and architecture triageELF, PE/PE32+, thin/FAT Mach-O, mitigation metadata and kernel-module recognition
Decompilation and static candidatesAvailable backend → normalized IL → bounded slicing and bug-class lenses
Bug-class lensesMemory safety, integer overflow, format strings, use-after-free, command injection and logic-oriented hypotheses; oracle availability varies by class
Dynamic confirmationRequires a compatible target, explicitly enabled execution route and actual replay evidence
FuzzingOptional harness/AFL++ paths; requires the corresponding toolchain, execution setup and budget
FirmwareOptional extraction and MIPS/ARM-family Qiling emulation; not universal device emulation
Mach-O / PERecognizing or statically analyzing a file does not establish generic dynamic confirmation support; broader execution expansion remains parked
Kernel / IOKitStatic leads require the appropriate separate kernel/VM proof workflow; they do not become confirmed userland findings
Windows specialist workDriver/IOCTL analysis and external evidence contracts exist; these do not establish generic Windows execution or WinAFL support
Logic/authentication bugsHypothesis generation exists; there is no generic binary confirmation oracle

The CLI delegates binary work to the separate 0verse environment:

Terminal window
0 binary ./program --mode triage
0 binary ./program --mode scan --backend ghidra

triage identifies the artifact; it does not decompile or prove vulnerabilities. Scanning may perform substantially more work. The 0verse CLI scan default is llm=mock, which is deterministic and is not real model analysis. Select and configure an actual provider when requesting model-assisted analysis.

Browser conversations can attach the local 0verse MCP server when its checkout and configured Python runtime are available. Its existing tools include:

  • get_capabilities: catalog tools, scan schema and CLI-only capabilities.
  • list_bug_classes: detection lenses and whether a generic oracle exists.
  • triage_binary: identify an artifact without establishing a vulnerability.
  • preflight_binary: check the requested artifact/profile and execution prerequisites.
  • scan_binary: bounded scan with typed backend, profile, model and budget options.
  • list_findings, get_pov, get_report: inspect retained results and evidence.

MCP scans also default to llm=mock. Choosing confirmation or fuzz does not grant execution authority or install missing dependencies. Some advanced Windows, Hyper-V, browser and firmware operations remain CLI-only.

The separate core agent tool analyze_binary is opt-in through ZERO_FEATURE_ZEROVERSE=1; its presence and permissions are independent of MCP attachment. It runs the versioned 0verse subprocess contract, not every advanced research workflow. 0 doctor checks general CLI/model prerequisites; it is not a full Ghidra/fuzzer/VM qualification.

For exact setup, dependency versions, machine contracts and specialist limits, see the repository’s 0verse README, Ghidra setup and result contract.

ResultMeaning
Static candidate / hypothesisAnalysis found a plausible issue; runtime reproduction has not been established
Source-only confirmationAn independent verifier supports the source claim; it does not imply a PoC executed
Reproduced PoC / oracle evidenceThe applicable reproducer ran and its evidence met the stated oracle
Unsupported / failed / skipped stageThe stage did not establish a result; this is not a clean bill of health

The source engine separates verdict from evidence kind. In 0verse’s machine contract, confirmed=true specifically requires an attached reproduced PoV. Keep these contracts distinct when combining results. A successful triage, available backend or empty findings list alone does not prove a program secure.