BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Local, deterministic DFIR investigation tool — a sealed math engine decides, a local LLM only narrates. Built for Hackathon CyberAr 2026.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Investigación forense asistida por IA sin delegarle a la IA la decisión final. Investigar un incidente implica reconstruir qué ocurrió a partir de evidencia incompleta, contradictoria y potencialmente manipulada. Un modelo de IA puede ayudar mucho: correlacionar artefactos, encontrar inconsistencias, formular hipótesis y decidir qué conviene investigar después. Pero un LLM también puede equivocarse.檢視完整 README ↗
English · Español · Technical README
ZAYNOR is a local AI-assisted forensic investigation platform that separates investigative autonomy from authority over conclusions.
It can ingest forensic bundles and raw evidence, work with postmortem evidence, or receive observations from bounded local collectors such as Velociraptor. Evidence is normalized, frozen, and analyzed by the deterministic mathematical engine of VIGÍA before an authoritative sealed result is produced.
After analysis, local Ollama models may explain the case, formulate discriminating questions, and propose read-only queries. The model cannot write or modify the verdict: new evidence must return to the deterministic pipeline.
The case can be processed locally. ZAYNOR exposes a CLI, OpenAI-compatible API, web interface, and MCP integrations for local analysis tools and assistants.
Try ZAYNOR on Vercel · Reproduce a case · ZAYNOR architecture · VIGÍA mathematical decisions · Install
Interactive diagram — explore it live, with guided views for the authority path, bounded investigation, and analyst audience.
DFIR investigations combine logs, memory, filesystem, network, browser artifacts, tickets, and operator notes. Sources may be incomplete, contradictory, or controlled by an attacker. Manual correlation is slow; delegating the conclusion to an LLM is unsafe.
ZAYNOR addresses this with two explicit separations:
Local AI helps investigate and explain. It does not calculate, replace, or negotiate the verdict.
result_sha256 and a
timestamped report_hash, safe narration, API, CLI, web, and capability
boundaries.result.json and
result.seal.json.flowchart LR
A[Bundles / raw evidence / local collectors] --> B[Normalization and provenance]
B --> C[Case freeze]
C --> D[Deterministic VIGÍA]
D --> E[result.json + result.seal.json]
E --> F[CLI / API / Web / OpenWebUI]
E --> G[Ollama: local narration]
G --> H[Hallucination guard]
H --> F
I[MCP: VIGÍA / CRONOS / MNEME / ZAYNOR] --> B
I -. never decides .-> E
result.json together with result.seal.json remains authoritative. The UI,
Ollama, and MCP cannot mutate them. New evidence must be frozen and analyzed by
the deterministic engine again.
ZAYNOR supports forensic bundles, raw evidence, postmortem evidence, bounded
Velociraptor acquisition, local AIOps/OTel observations, and reproducible case
replays. Offline FreeBSD evidence and chkrootkit/rkhunter scanner reports can
also be staged through bounded, digest-verified importers
(tools/freebsd_evidence/, tools/rootkit_scanner_reports/) that cross the
same case-freeze boundary; the result is analysis_unsupported until a
calibrated VIGÍA adapter exists (ADR 0004).
Acquired FreeBSD, Linux and Windows binaries get static, read-only triage on
the same contract (tools/binary_static/: hashes, strings, ELF/PE structures,
optional YARA), and reports
from an upstream binary-analysis pipeline can be imported as tool-reported
evidence (tools/binary_analysis_reports/); nothing is executed or
disassembled inside ZAYNOR (ADR 0005).
Evaluation uses the reusable VIGÍA Intent Analysis corpus. It includes malicious, real and publicly documented, benign, false-positive, false-negative, adversarial, and BREAK cases. The corpus uses public and authorized sources including Digital Corpora and SANS forensic material, alongside the canonical intentionality corpus.
Synthetic fixtures in this repository support deterministic demos and regression tests; they are not the only evaluation source.
zaynor serve exposes the local API for tools and
OpenWebUI.The chat path is:
OpenWebUI → ZAYNOR API → verified sealed result → local Ollama → guard → safe response
MCP details: docs/mcp-locales.md.
Generative inference uses Ollama or another compatible local backend, with host, model, and timeout configurable. Freeze, analysis, sealing, and verification do not require an LLM.
MENTOR explains sealed results; INVESTIGATOR proposes read-only investigation; FLEET_COMMANDER records hypotheses and tasks; DETECTION_ENGINEER prepares candidates; and DFIR collectors produce evidence and provenance. No agent assigns the verdict.
git clone https://github.com/annatchijova/zaynor.git
cd zaynor
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[api]"
zaynor analyze --help
zaynor chat --help
zaynor serve --output-root ./outputs --cases-root ./casos --port 8420
Full installation, Ollama, Velociraptor, OpenWebUI, and lab instructions:
The catalog includes real, adversarial, BREAK, benign, and reproducible fixture cases. Nitroba includes its artifacts and downloadable MD, HTML, and PDF reports.
casos/README.md — case corpus and provenance.results/ — generated results and reports.frontend/ — visual interface and public replay.docs/architecture-for-frontend.md — view contract.The repository contains 27 numbered or related red-team round documents covering authority boundaries, the CLI, path traversal, TOCTOU, seals, MCP, Ollama, OpenWebUI, prompt injection, and agent contracts.
Backend: PYTHONPATH=src pytest -q --ignore=tests/test_real_forensic_image_evidence.py
produces 432 passed, 1 skipped (the one excluded test is a preexisting,
documented hang under separate investigation — not counted as passed).
Frontend: npm test in frontend/ produces 19 passed. No run is
presented as green if it wasn't: a failing test gets documented, not
silently excluded.
Security does not depend on model obedience. The result is cryptographically verified before narration; contradictory claims are rejected or removed; and evidence controlled by a possible adversary remains data, unable to expand capabilities or write authoritative state.
ZAYNOR does not claim to replace a continuous SIEM or EDR or to perform autonomous remediation. External threat-intelligence integrations are optional and are not part of the default local runtime.
Report vulnerabilities privately according to SEGURIDAD.md.
docs/technical-details.mddocs/mcp-locales.mdAGENTS.mddocs/architecture.htmlLIMITACIONES_CONOCIDAS.mdAUTHORS.mdCONTRIBUTING.mdZAYNOR
├── Deterministic forensic authority
│ └── VIGÍA
│ ├── abductive and inductive reasoning
│ ├── likelihood + ENFSI
│ ├── causal closure and graph stability
│ ├── risk-bounded decision
│ ├── quadripartite verdict
│ ├── exact arithmetic
│ └── deterministic scoring
│
├── Forensic acquisition and analysis
│ ├── Velociraptor
│ ├── memory, disk, and network
│ ├── MFT, Prefetch, Registry, and Shellbags
│ ├── PCAP
│ ├── browser, Android, iOS, and macOS
│ ├── timeline reconstruction
│ ├── artifact normalization
│ └── offline FreeBSD evidence + chkrootkit/rkhunter report importers
│
├── Evidence integrity
│ ├── freeze and canonicalization
│ ├── provenance
│ ├── SHA-256 seals
│ ├── case-bound audit hash chain
│ ├── timestamps in hashed entries
│ ├── optional HMAC
│ ├── custody verification
│ └── deterministic replay
│
├── Agentic investigation
│ ├── Ollama
│ ├── capability policy: READ / DERIVE / ACQUIRE / MUTATE / AUTHORIZE
│ ├── MENTOR
│ ├── INVESTIGATOR
│ ├── DISPATCHER
│ ├── DETECTION_ENGINEER
│ └── hallucination and authority guards
│
├── MCP
│ ├── VIGÍA
│ ├── CRONOS
│ ├── MNEME
│ └── ZAYNOR MCP
│
├── Observability and LIVE laboratory
│ ├── OpenTelemetry
│ ├── Prometheus
│ ├── Loki
│ ├── Tempo
│ └── Grafana
│
├── Interfaces
│ ├── CLI
│ ├── OpenAI-compatible API
│ ├── OpenWebUI
│ ├── Web UI
│ └── MD / HTML / PDF reports
│
└── Verification
├── test suite
├── adversarial corpus
├── Red Team rounds
├── determinism tests
├── authority-boundary tests
└── reproducible forensic cases
Python 3.12
├── ZAYNOR
│ ├── vendored VIGÍA engine
│ ├── Ollama
│ ├── MCP
│ ├── Velociraptor
│ └── ReportLab / reporting
├── DFIR
│ └── SIFT-style analysis modules
└── Observability
└── OpenTelemetry → Prometheus / Loki / Tempo / Grafana
Frontend
└── Next.js / TypeScript → ZAYNOR API
The physical tree includes source code, cases, tests, documentation, and
generated artifacts. build/, caches, and installed dependencies are not part
of the documented source surface.
These screenshots document a reproducible local run of
case_026_ventrilocuo_process_hollowing:
The important points:
MALICE;overall: VERIFIED;chain_valid: true;UNKNOWN as a verdict/confidence claim;claims_total: 4;claims_verified: 3;claims_hallucinated: 1;suspicious: true;UNKNOWN.The authoritative verdict remained MALICE.
confidence: UNKNOWN in the audit does not mean that verification failed: it
is a result field that was not calculated or supplied for this fixture.
provenance: EMPTY is also a characteristic of this fixture, not an
integrity failure.
The visible demo sequence is:
VIGÍA: MALICE
AUDIT: VERIFIED
CHAIN: VALID
MODEL CLAIM: UNKNOWN
GUARD: REJECTED
AUTHORITATIVE VERDICT: MALICE
This demonstrates that the LLM can narrate incorrectly, but cannot change the authoritative result.
Apache License 2.0. See LICENSE.