Voltar às atualizações
New releaseSep 6, 2026

Crow-Eye v0.13.0

Motor de forense digital para Windows de código aberto que adquire, processa e correlaciona artefatos (MFT, USN, Registry, etc.) para reconstruir linhas do tempo com análise assistida por IA e selagem de evidências com padrão judicial.

Compartilhar

Crow-Eye — Motor de Forense para Windows

Crow-Eye Logo

Uma máquina do tempo forense para Windows.
O Crow-Eye não apenas detecta — ele reconstrói o que realmente aconteceu na linha do tempo, desde a aquisição até um veredito rastreável até os seus registros de origem.

License: GPL v3 Version Correlation Engine Platform Python Discord GitHub stars GitHub issues Last commit

Índice

Visão Geral

O Crow-Eye é um motor de forense para Windows de código aberto (GPL-3.0) que unifica aquisição, análise, verificação, inteligência e IA. A maioria das ferramentas de segurança pergunta "isto é mau?" e descarta tudo o que parece legítimo. O Crow-Eye faz uma pergunta diferente: "o que aconteceu?" Ele correlaciona toda a atividade — suspeita ou não — e reconstrói a sequência real de eventos num sistema, para que a verdade de uma investigação seja reconstruída a partir de evidências em vez de adivinhada a partir de alertas.

Esse design centrado na reconstrução é exatamente o que é preciso para caçar ameaças APT e de estados-nação: adversários sofisticados vivem dentro de ferramentas legítimas (powershell.exe, PsExec, certutil) e na sequência de ações — invisíveis para ferramentas que descartam tudo o que parece normal. Como o Crow-Eye nunca descarta nada e raciocina sobre artefatos de execução (que sobrevivem à adulteração de logs e à anti-forense), o ataque não consegue se esconder. O mesmo motor continua acessível para o trabalho diário de DFIR e para não especialistas que simplesmente querem saber o que aconteceu num computador.

  • 🕰️ Reconstrua, não apenas detecte — reconstrua a linha do tempo do que realmente ocorreu.
  • 🖥️ Multiplataforma — análise completa ao vivo + offline em Windows; análise offline e análise de imagens forenses em Linux (os analisadores ao vivo são exclusivos do Windows).
  • 🔒 Privado por conceção0 ms de dados enviados para fora do dispositivo; o assistente de IA Eye pode funcionar totalmente isolado (air-gapped).
  • 🧾 Nível judicial — as evidências são seladas criptograficamente e cada passo é auditável.
  • 📦 Versão atual: 0.13.0 · Motor de Correlação: 1.7.0 · Licença: GPL-3.0.

✨ Destaques

  • Reconstrução em vez de deteção. Correlaciona cada artefato numa história única e navegável por entidade, em vez de uma pilha de alertas.
  • Integrado de ponta a ponta — aquisição → correlação → linha do tempo → análise comportamental → IA → memória de caso selada: um pipeline completo que nenhuma ferramenta estabelecida cobre.
  • Profundo em artefatos, não raso em logs. Prefetch, Amcache, ShimCache, SRUM, MFT, USN, LNK/JumpLists e mais sobrevivem à limpeza de logs e aos truques de "living-off-the-land" que cegam ferramentas baseadas apenas em logs.
  • O assistente de IA Eye — investigação forense em linguagem natural com uma cadeia de custódia auditável e à prova de adulteração, executável na nuvem, num servidor privado ou totalmente offline.
  • Análise de Comportamento do Usuário (UBA) — transforma artefatos brutos numa história de atividade em inglês simples, legível por RH/examinadores.
  • Gratuito e de código aberto (GPL-3.0) — auditável por qualquer pessoa, com um esforço ativo de pesquisa e documentação.

👥 Para Quem é o Crow-Eye

O Crow-Eye é usado em fluxos de trabalho muito diferentes. Cada um entra no motor por uma porta diferente:

Você éSua entrada típicaPor onde começar
IR corporativo / MSSP / MDRColetas direcionadas de Velociraptor, KAPE ou coleta nativa de EDRImportador OfflineMotor de CorrelaçãoUBA
Aplicação da lei / laboratórios forensesImagens forenses completas (E01, VHDX, VMDK, Raw) com requisitos de cadeia de custódiaAnálise de imagensMotor de CorrelaçãoMapa Narrativo
Segurança interna / investigações de ameaça interna e RHSistemas ao vivo ou artefatos coletadosAnálise ao vivo → história de atividade do UBA
Estudantes, educadores e pesquisadoresImagens de exemplo e dados de laboratórioEye-DescribeInício Rápido

Qualquer coletor funciona. O Crow-Eye não exige a sua própria ferramenta de aquisição. Aponte o Importador Offline para uma pasta de artefatos brutos produzidos por Velociraptor, KAPE, um pacote de coleta de EDR ou qualquer outro coletor — ele indexa os artefatos suportados e executa os analisadores offline sobre eles. Separadamente, a saída de Plaso, Autopsy, Volatility ou qualquer outra ferramenta pode ser trazida como CSV, JSON ou SQLite via Importar Evidências e correlacionada juntamente com artefatos nativos.

🧭 Subsistemas de Relance

O Crow-Eye é construído como um ciclo integrado — cada etapa alimenta a seguinte, do disco bruto a um veredito defensável.

SubsistemaO que fazEtapa
Crow-ClawAquisição de alta velocidade de sistemas ao vivo e imagens de máquinas mortas.Aquisição
Importador OfflineSCAN → COLLECT → PARSE de artefatos de qualquer fonte para a base de dados do caso.Aquisição
Motor de CorrelaçãoReconstrução de motor duplo (Identidade + Janela de Tempo) via Feathers · Wings · Engines · Pipelines.Análise
Linha do Tempo InterativaLinha do tempo com fios de identidade e rastreável em tribunal (vistas de Mapa de Calor / Semana / Dia), lida diretamente das bases de dados do caso.Verificação
Análise de Comportamento do Usuário (UBA)História de atividade orientada por regras, em inglês simples, de "o que este usuário fez".Inteligência
Eye — Assistente de IAInvestigação em linguagem natural + a memória de caso selada do Mapa Narrativo.IA
Forense de ArmazenamentoAnálise de disco físico e partições (deteção de ocultos/não montados, avisos de inicialização).Análise

🏗️ Arquitetura

O Crow-Eye é um pipeline integrado, não um saco de analisadores. As evidências fluem numa única direção, e cada etapa mantém o seu vínculo de volta ao registro de origem.```mermaid %%{init: {"flowchart": {"nodeSpacing": 60, "rankSpacing": 70, "curve": "basis"}, "themeVariables": {"fontSize": "17px", "fontFamily": "system-ui, sans-serif"}} }%% flowchart TB

%% ═══════════ 1. EVIDENCE SOURCE ═══════════ S1["Live Windows system"] S2["Forensic image
E01 · VHDX · VMDK · Raw"] S3["Collected artifacts
Velociraptor · KAPE · EDR"] S4["Third-party output
Plaso · Autopsy · Volatility"]

%% ═══════════ 2. INGEST ═══════════ I1["CROW-CLAW
live acquisition"] I2["IMAGE PARSING
direct, no mounting"] I3["OFFLINE IMPORTER
SCAN → COLLECT → PARSE"] I4["IMPORT EVIDENCE
CSV · JSON · SQLite"]

REPLAY["DIRTY-HIVE REPLAY<br/>transaction logs applied to a working copy"]
PARSERS["ARTIFACT PARSERS<br/>18 artifact types · live and offline"]

%% ═══════════ 3. CASE ═══════════ CASE[("CASE DATABASES
Target_Artifacts/
Imported_Evidence/")]

%% ═══════════ 4. ANALYSIS ═══════════ TL["INTERACTIVE TIMELINE
heat map · week · day"] UB["USER BEHAVIOR ANALYTICS
40 detections · plain-English story"] CE["CORRELATION ENGINE
Feathers → Wings → Engines → Pipelines"] RES[("Correlation results")] DL["DYNAMIC LINKING
non-destructive enrichment overlay"] INTEL[("Crow_Intelligence.db
SID · MAC · hash · GUID → name")]

%% ═══════════ 5. AI LAYER ═══════════ EYE["EYE
GEP-governed AI assistant"] NM["NARRATIVE MAP
hash-chained case memory"] COMP["COMPLIANCE
live GEP status · EvidenceSeal audit"]

OUT["LIVING REPORT<br/>CSV · JSON · HTML"]

%% ═══════════ FLOW ═══════════ S1 --> I1 S2 --> I2 S3 --> I3 S4 --> I4

I1 --> PARSERS
I2 --> PARSERS
I3 --> PARSERS

PARSERS -- "every registry hive,<br/>evidence never written to" --> REPLAY
REPLAY -- "the state Windows<br/>had not finished writing" --> PARSERS

PARSERS -- "parsed artifacts" --> CASE
I4 -- "verbatim copy or<br/>converted to feather" --> CASE

CASE -- "read-only" --> TL
CASE -- "read-only" --> UB
CASE -- "read-only" --> CE
CASE -- "read-only" --> DL
CE --> RES
DL --> INTEL

CASE -- "read-only queries" --> EYE
RES -. "queried on demand" .-> EYE
EYE <== "verdict · narrative · evidence" ==> NM

EYE -- "audited by" --> COMP

EYE -- "report_* tools" --> OUT

%% ═══════════ STYLE ═══════════ classDef src fill:#334155,stroke:#94a3b8,stroke-width:2px,color:#f1f5f9 classDef ing fill:#0f766e,stroke:#2dd4bf,stroke-width:2px,color:#f0fdfa classDef store fill:#92400e,stroke:#fbbf24,stroke-width:3px,color:#fffbeb classDef ana fill:#1e40af,stroke:#60a5fa,stroke-width:2px,color:#eff6ff classDef ai fill:#6b21a8,stroke:#c084fc,stroke-width:2px,color:#faf5ff classDef out fill:#166534,stroke:#4ade80,stroke-width:2px,color:#f0fdf4

class S1,S2,S3,S4 src
class I1,I2,I3,I4,PARSERS ing
class CASE,RES,INTEL store
class TL,UB,CE,DL ana
class EYE,NM,COMP ai
class OUT out

linkStyle default stroke-width:2px
*Fonte de evidência → Ingestão → Bancos de dados do caso → Análise → Camada de IA → Relatório*


**Como ler:**

| Etapa | O que importa |
|---|---|
| ① → ② | **Quatro portas independentes para um caso.** Você nunca precisa do coletor próprio do Crow-Eye — uma pasta do Velociraptor, KAPE ou um pacote de EDR passa pelo Importador Offline, e CSV/JSON/SQLite de terceiros passa pelo Importar Evidência. |
| ② → ③ | Tudo converge para um único lugar: **os bancos de dados do caso**. Artefatos analisados vão para `Target_Artifacts/`; evidências importadas de terceiros vão para `Imported_Evidence/` e são descobertas automaticamente. |
| ③ → ④ | **Os três caminhos de análise são independentes entre si.** A Linha do Tempo e a UBA leem os bancos de dados do caso diretamente — nenhuma exige uma execução de correlação. O Mecanismo de Correlação é uma camada *adicional*, não um pré-requisito. |
| ③ → ④ | **A Vinculação Dinâmica fica ao lado da Linha do Tempo e da UBA** — um quarto leitor independente dos bancos de dados do caso (não tem relação com a visualização da Linha do Tempo). Ela reúne mapeamentos de identidade (SID → nome de usuário, MAC → rede, hash/GUID → aplicativo) em um `Crow_Intelligence.db` por caso e, em seguida, sobrepõe esse contexto **inline nas tabelas de dados de artefatos** por meio de `ATTACH` + `LEFT JOIN` não destrutivos. Ela muda como os registros *são lidos*, nunca a evidência. |
| ④ → ⑤ | O Eye consulta os bancos de dados do caso diretamente e pode buscar resultados de correlação **sob demanda**. Ele nunca toca na evidência em si — ele emite chamadas de ferramenta que o Crow-Eye executa e registra. |
| ⑤ → Relatório | O **Relatório Vivo é construído apenas pelo Eye**, por meio de suas ferramentas `report_*`. A Linha do Tempo e a UBA são superfícies de análise — elas não escrevem no relatório. Descobertas em nível de caso ainda podem ser exportadas separadamente via [Pesquisar e Exportar](#-pesquisar-e-exportar). |
| ⑤ ↔ | O **Mapa Narrativo é bidirecional**: o Eye escreve nele, você escreve nele, e seu conteúdo é injetado no prompt do Eye a cada turno. É a memória, e você pode comandá-lo. |
| ⑤ ⟳ | A página de **Conformidade audita o Eye.** Cada chamada de ferramenta feita pelo Eye é ancorada à cadeia de hash **EvidenceSeal**; a página renderiza o status **GEP** por regra em tempo real (10 princípios) verificado a partir dessa cadeia e de `EYE_Logs/`, exportável como `audit_trail.json`. |

**Etapas independentes.** A Linha do Tempo e a UBA leem os bancos de dados de artefatos do caso **diretamente** — nenhuma exige uma execução de correlação, e a Linha do Tempo não depende do Mecanismo de Correlação (ela aplica seu próprio agrupamento temporal leve). A correlação é uma camada de análise adicional cujos resultados o Eye pode consultar.

**Somente leitura por design.** A análise grava no banco de dados do caso; toda etapa posterior (UBA, Linha do Tempo, visualizadores de correlação, Eye) abre esses bancos de dados **somente leitura**. A evidência original nunca é modificada — a [Vinculação Dinâmica](#-modos-de-análise) lê os bancos de dados do caso para construir um `Crow_Intelligence.db` por caso com mapeamentos de identidade e enriquece as tabelas de dados de artefatos inline por meio de consultas `ATTACH` + `LEFT JOIN` não destrutivas, em vez de reescrever linhas.

**Governado por design.** Cada ação que o Eye toma é ancorada à cadeia de hash **EvidenceSeal** à prova de adulteração, e a página de **Conformidade** verifica continuamente o Eye contra o [Protocolo Ghassan Elsman (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — status por regra em tempo real, exportável para `EYE_Logs/audit_trail.json`.

## 📥 Baixar e Instalar

> **Recomendado:** obtenha o build Windows empacotado (**instalador MSI / EXE**) no site oficial — sem configuração de Python, funciona imediatamente.

### ▶️ [Baixar Crow-Eye para Windows → crow-eye.com/download](https://crow-eye.com/download)

O **build MSI/EXE instalado é a forma recomendada de executar o Crow-Eye**, e é a nossa **maior prioridade para atualizações**:

- 🛡️ **Correções mais rápidas.** Quando um problema é encontrado ou um bug é relatado, lançamos um EXE atualizado **o mais rápido possível** — o build empacotado é onde as correções chegam primeiro.
- 🔄 **Atualização automática integrada.** No aplicativo instalado, abra **Configurações → Atualizações** para **verificar atualizações e instalá-las automaticamente** — sem reinstalação manual.
- 📦 **Zero configuração.** Sem necessidade de instalar Python, Node ou dependências.

> Prefere executar a partir do código-fonte? Veja **[Início Rápido](#-início-rápido)** abaixo. O build a partir do código-fonte é destinado a colaboradores e **não inclui o atualizador automático** — use o MSI/EXE para atualizações automáticas.

## 🚀 Início Rápido

### Opção A — Build instalado (recomendado)
Baixe o **MSI/EXE** em [crow-eye.com/download](https://crow-eye.com/download), instale e inicie o **Crow-Eye** como Administrador. Crie um caso e comece a analisar.

### Opção B — Executar a partir do código-fonte (desenvolvedores)

> Para colaboradores e usuários avançados. Este caminho **não inclui o atualizador automático** — use o MSI/EXE para atualizações automáticas.

**Requisitos** (instalados automaticamente na primeira execução):
- Python 3.12.4
- **Node.js e npm** — necessários para a **Visualização da Linha do Tempo**
- Pacotes principais: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools

**Hardware recomendado**

| | Mínimo | Recomendado para casos grandes |
|---|---|---|
| **RAM** | 8 GB | 16 GB+ (conjuntos de MFT/USN com milhões de registros) |
| **Disco** | 5 GB livres | Espaço livre ≥ 2× o tamanho da evidência sendo analisada |
| **CPU** | 4 núcleos | 8+ núcleos |
| **SO** | Windows 10/11 (completo) · Linux (análise offline e de imagens) | — |

> A correlação faz streaming em memória constante para conjuntos de dados muito grandes, então a RAM raramente é o limite rígido — a taxa de transferência do disco e o espaço livre geralmente são.

**Iniciar** (execute como Administrador para que o Crow-Eye possa acessar artefatos do sistema):```bash
python "Crow Eye.py"

A interface principal abre, você cria um caso e toda a saída da análise é organizada sob esse diretório de caso para revisão e relatórios posteriores.

🖥️ Nota multiplataforma: no Linux, os parsers ao vivo são desativados automaticamente e o Crow-Eye executa em modo offline / imagem forense. A aquisição ao vivo completa é exclusiva do Windows.

📂 Artefatos Suportados

O Crow-Eye analisa um amplo conjunto de artefatos de execução, sistema de arquivos e atividade do usuário do Windows, tanto de um sistema ao vivo quanto de fontes offline (pastas coletadas ou imagens forenses).

ArtefatoAo vivoOfflineDados Extraídos
PrefetchHistórico de execução, contagem de execuções, carimbos de data/hora por execução
Registry (AutoRun, UserAssist, BAM/DAM, ShimCache, redes, fuso horário e mais de 80 chaves no total)Persistência, uso de programas, atividade em segundo plano, configuração de rede, estado de aprovação de inicialização
Registry — chaves e valores excluídosRegistros recuperados do espaço livre do hive, marcados como tal (record_state)
Registry — nomes de classe e segurança de chavesNomes de classe nk (onde Control\Lsa mantém a chave de inicialização), proprietário/grupo/DACL de descritores de segurança compartilhados
Registry — logs de transação.LOG1/.LOG2 reproduzidos em uma cópia de trabalho, de modo que um hive sujo seja lido no estado em que a máquina estava
Amcache (29 tabelas)Execução de aplicativos, hora de instalação, SHA-1, caminhos de arquivo, drivers, dispositivos PnP, censo de dispositivos
ShimCacheAplicativos executados, última modificação, tamanho e o blob final decodificado (tipo de máquina PE, sinalizador de binário do SO)
MUICachePresença de programas e nomes de exibição
Jump Lists e LNKAcesso a arquivos, caminhos, carimbos de data/hora, metadados
ShellBagsHistórico de acesso a pastas e navegação
MRU e RecentDocs / Caminhos digitadosHistórico de Abrir/Salvar, arquivos recentes, locais digitados
Histórico de navegador / sitesSites visitados e horários de acesso
Logs de Eventos (Sistema / Segurança / Aplicação)Logons, criação de processos (4688), alterações de contas e serviços, limpeza de logs
MFTMetadados de arquivos, arquivos excluídos, carimbos de data/hora (NTFS, Win 7/10/11)
USN JournalCriar/modificar/excluir/renomear arquivos com histórico completo de nomes
LixeiraNomes de arquivos excluídos, caminhos, hora da exclusão, tamanho
SRUMUso de recursos/rede/energia por aplicativo, dados transferidos por aplicativo
USB e dispositivos conectadosConexão e presença de dispositivos
Lista de redes e conexõesRedes conhecidas e atividade de conexão
AutoStart / Serviços e DriversPersistência, instalações de serviços e alterações de estado
Discos e Partições (Forense de Armazenamento)Árvore de discos físicos, layout de partições, detecção de ocultas/desmontadas

Jump Lists e LNK são analisados pelo parser LNK / Jump List dedicado do próprio Crow-Eye — não por um módulo de terceiros.

Registry personalizado / arquivos bloqueados: o Windows bloqueia hives de registro ao vivo (NTUSER.DAT, SOFTWARE, SYSTEM) durante a operação. Para análise personalizada de um sistema ao vivo, inicialize a partir de mídia externa (WinPE/Live CD), use ferramentas de aquisição forense ou analise uma imagem de disco.

Detalhes por Artefato

  • Jump Lists e LNK — analisados automaticamente a partir de locais padrão do sistema pelo parser dedicado do próprio Crow-Eye (acesso a arquivos, caminhos de destino, carimbos de data/hora e metadados).
  • Registry — analisa automaticamente os hives do sistema. Para análise personalizada de registro, copie os arquivos de hive para CrowEye/Artifacts Collectors/Target Artifacts (ou a pasta registry/ do seu caso):
    • NTUSER.DAT de C:\Users\<Username>\NTUSER.DAT
    • SOFTWARE de C:\Windows\System32\config\SOFTWARE
    • SYSTEM de C:\Windows\System32\config\SYSTEM
    • O Windows os bloqueia durante a operação — para um sistema ao vivo, inicialize a partir de mídia externa (WinPE/Live CD), use ferramentas de aquisição forense ou analise uma imagem de disco.
  • Prefetch — analisa C:\Windows\Prefetch, extraindo histórico de execução e metadados forenses (incluindo carimbos de data/hora por execução).
  • Logs de Eventos — análise automática dos logs de Sistema/Segurança/Aplicação em um banco de dados para análise abrangente.
  • Profundidade do Registry (0.13.0) — o parser lê o arquivo do hive, bem como o registro ao vivo, de modo que alcança o que o winreg nega até mesmo a um administrador (cada subchave Properties de dispositivo e, com ela, os horários de conexão USB), percorre o alocador do hive para recuperar chaves e valores excluídos e lê nomes de classe e descritores de segurança de chaves. Dezenove chaves que continham dados reais e não eram lidas por nada agora são analisadas — incluindo o StartupApproved do Explorer, que indica se cada entrada de inicialização automática tem permissão real para ser executada.
  • ShellBags — revela o histórico de acesso a pastas e os padrões de navegação do usuário.
  • Lixeira — analisa $RECYCLE.BIN para recuperar nomes de arquivos excluídos, caminhos originais, horários de exclusão e tamanhos (sistemas ao vivo e imagens de disco).
  • MFT — analisa a Master File Table para metadados de arquivos, atributos, carimbos de data/hora e informações de arquivos excluídos (NTFS, Windows 7/10/11).
  • USN Journal — rastreia eventos de criar/modificar/excluir/renomear arquivos com carimbos de data/hora e histórico completo de nomes, para reconstrução de linha do tempo.
  • SRUM — visualiza o uso de recursos por aplicativo (barras de duração para tempo em primeiro/segundo plano) e a atividade de rede por aplicação.
  • Analisador de Forense de Armazenamento — visão em árvore completa de cada disco físico e suas partições; tipos de partição codificados por cores (EFI, Linux, Recovery, Ocultas/swap, …); avisos para USBs inicializáveis, raízes Linux ocultas e Intel Rapid Start; fallback de varredura mágica de setores brutos.

🔧 Modos de Análise

🦅 Aquisição Crow-Claw

O Crow-Claw é o mecanismo de aquisição especializado do Crow-Eye para coletar e preservar artefatos de sistemas ao vivo ou imagens montadas.

  • Coleta seletiva — escolha categorias específicas de artefatos (Registry, Logs de Eventos, Sistema de Arquivos) ou colete tudo.
  • Varredura profunda — percorre diretórios e subdiretórios para encontrar vestígios forenses.
  • Preservação segura — os artefatos são organizados em um diretório de caso estruturado que mantém a integridade forense.

🔍 Análise Offline (Importador Offline)

Analise artefatos coletados de qualquer fonte sem uma conexão ao vivo com o alvo — três operações claras:

  • SCAN (descoberta) — percorre a fonte e indexa cada artefato suportado por padrão de nome de arquivo e extensão (rápido, somente leitura; nenhum conteúdo de arquivo é lido e nenhuma verificação de byte mágico é realizada nesta etapa). Nada é movido.
  • COLLECT (aquisição) — copia fisicamente os arquivos identificados para a pasta live_acquisition do caso, organizados por tipo.
  • PARSE (granular) — revisa itens identificados por tipo (AMCACHE, EVTX, PREFETCH, …) e analisa arquivos selecionados (ou todos) no banco de dados forense.
🔍 SCAN📦 COLLECT
AçãoDescoberta — identifica artefatos em seu local originalAquisição — copia e preserva artefatos na pasta do caso
Impacto de E/SSomente leitura; nenhum arquivo movidoLeitura + escrita; duplica fisicamente artefatos
OrganizaçãoAtualiza metadados .artifact_scan_index.jsonOrganiza arquivos em pastas específicas por tipo
Caso de usoTriagem rápida para ver se a fonte tem dados relevantesPreservação forense completa para análise de longo prazo

A análise é tratada pelos parsers offline dedicados do Crow-Eye — a mesma lógica de artefatos do modo ao vivo, operando em arquivos coletados: Prefetch, Registry, MFT, USN (mais o correlacionador MFT/USN), AmCache, ShimCache, SRUM, Logs de Eventos, LNK/JumpLists e Lixeira.

📎 Importar Evidências (dados de terceiros)

Além de artefatos brutos, o Crow-Eye pode receber saída forense de terceiros diretamente em um caso — Plaso, Autopsy, Volatility ou qualquer exportação personalizada — e torná-la utilizável pelo Eye e pela Linha do Tempo sem exigir uma execução de correlação primeiro.

EntradaO que acontece
.db / .sqliteValidado e copiado verbatim para a pasta Imported_Evidence/ do caso. O esquema é deixado intacto.
.csv / .jsonConvertido automaticamente em um banco de dados SQLite em formato feather por meio do FeatherWriter canônico, carregando feather_metadata que declara o carimbo de data/hora primário da tabela — detectado automaticamente a partir dos nomes das colunas — exatamente como um feather coletado nativamente.

Como o gerenciador de banco de dados do caso descobre automaticamente qualquer .db sob a árvore do caso, as evidências importadas ficam imediatamente disponíveis para:

  • O Eye — consultável em linguagem natural junto com artefatos nativos (o manifesto de esquema é atualizado na importação).
  • A Linha do Tempo Interativa — servida como o tipo de artefato imported, com filtragem funcional de janela de tempo e limites de tempo.
  • O Mecanismo de Correlação — utilizável como um Feather para correlação entre ferramentas contra artefatos nativos.

O importador usa apenas a biblioteca padrão (sqlite3 / csv / json) e é executado em um worker em segundo plano, de modo que importações grandes não bloqueiam a interface.

⚡ Análise ao Vivo

Analisa artefatos diretamente do sistema Windows em execução, extraindo-os automaticamente de seus locais padrão para análise forense em tempo real.

🗂️ Gerenciamento de Casos

Toda investigação é um caso: um diretório autocontido que organiza bancos de dados de artefatos e saída de análise. O Crow-Eye rastreia casos recentes (com favoritos, tags e status), valida um caso ao abrir, grava configuração atomicamente (à prova de falhas) e suporta importação/exportação de configuração de caso e modelos com mapeamentos semânticos prontos.

🕰️ Visualização Interativa da Linha do Tempo

Correlacione eventos entre artefatos em uma grade temporal unificada, com visualizações de Mapa de Calor, Semana e Dia — uma história rastreável em tribunal e encadeada por identidade, em vez de uma super-linha do tempo plana.

A Linha do Tempo lê os bancos de dados de artefatos analisados do caso diretamente e é independente do Mecanismo de Correlação — você não precisa construir feathers, criar wings ou executar um pipeline para usá-la. Ela aplica seu próprio agrupamento temporal leve (correlação por carimbo de data/hora exato e janela de tempo, agrupamento por aplicação, caminho ou usuário) para relacionar eventos na grade. Evidências trazidas por meio de Importar Evidências também aparecem na linha do tempo como o tipo de artefato imported, com filtragem funcional de janela de tempo e limites de tempo.

🔎 Pesquisa e Exportação

Pesquisa de texto completo em todo o banco de dados do caso, além de exportação para CSV (planilhas), JSON (integração com outras ferramentas) e relatórios HTML detalhados (dossiês completos consolidando todos os artefatos vinculados a um termo de pesquisa).

🔗 Vinculação Dinâmica

Traduza identificadores técnicos brutos — SIDs, endereços MAC, hashes — em contexto legível por humanos em tempo real. A Vinculação Dinâmica enriquece a visualização usando consultas SQL ATTACH não destrutivas, de modo que a evidência original nunca é modificada, e pode ingerir feeds de IOC em massa para sinalizar indicadores conhecidamente maliciosos inline.

🧠 Análise de Comportamento do Usuário (UBA)

Transforme artefatos brutos em uma história de atividade em inglês simples — um relato legível por gerentes/RH do que um usuário e seus aplicativos realmente fizeram, com cada afirmação rastreável até a evidência de origem exata.

A Análise de Comportamento do Usuário (UBA) lê os bancos de dados de artefatos analisados na pasta Target_Artifacts/ do seu caso (estritamente somente leitura) e os reproduz por meio de um conjunto de regras declarativas para produzir uma História de Atividade clara e cronológica. Abra-a pelo botão da barra de ferramentas "User Behavior" ou com Ctrl+Shift+B (um caso deve estar carregado).

  • 🧩 40 detecções de comportamento declarativas (uba/config/behavior_rules.json) — ajustáveis sem código — cada uma classificada por severidade: rotineiro · notável · suspeito · crítico.
  • 🕵️ Detecta comportamentos que importam: entrada / saída / desbloqueio de sessão, execução · inicialização · instalação de programa, abertura / exclusão / cópia inferida de arquivo, conexão de dispositivo USB, acesso a compartilhamentos de rede, persistência e inicialização automática, uso de credenciais explícitas (runas), alterações de contas e grupos, alterações de serviços, adulteração do relógio do sistema (suspeito) e limpeza de logs de eventos (crítico).
  • 🗺️ Três visualizações — um feed de História de Atividade, um mapa de calor de Mapa de Atividade (dia × hora) e um relatório de honestidade "O que podemos ver" que rotula cada detecção como Funcionando / Limitado / Sem dados / Por design para este caso.
  • 🔗 Toda atividade é respaldada por evidências. Clique em qualquer item para abrir o registro de origem exato (database : table : rowid) — nada é afirmado sem uma fonte.
  • 👤 Atribuição honesta. Os atores são resolvidos como Usuário / Aplicação / Sistema (ou ficam vazios) — a UBA nunca adivinha quem fez o quê.

Cobertura de Detecção

As 40 detecções abrangem quatro classes de severidade e toda a amplitude do conjunto de artefatos analisados:

CategoriaDetecções incluem
Identidade e acessoEntrada / saída de sessão, desbloqueio de estação de trabalho, logons de área de trabalho remota, logons de administrador, uso de credenciais explícitas (runas), criação e alterações de contas, adições a grupos de administradores
ExecuçãoProgramas abertos (UserAssist), programas executados (Prefetch, expandido para eventos por execução), criação de processos (4688), presença de programas (ShimCache / AmCache / MUICache), instalações de aplicativos, falhas de aplicativos (de registros 1001 do Log de Eventos de Aplicação)
Atividade de arquivosAbrir / criar / excluir / copiar / renomear arquivos — renomeações mostram o histórico completo de nomes (antigo → … → atual) reconstruído a partir do USN Journal, com resolução de exclusão suave ($R/$I)
NavegaçãoNavegação em pastas (ShellBags), documentos recentes, locais digitados, visitas a sites
Dispositivos e redeConexão de dispositivo USB, presença de dispositivos, compartilhamentos de rede, conexões de rede, dados transferidos por aplicativo (SRUM)
Persistência e sistemaPersistência de inicialização automática (chaves Run + serviços, escalada quando o alvo é executado de um caminho gravável pelo usuário), instalações de serviços e drivers, alterações de estado de serviços, inicialização/desligamento do sistema, alterações de relógio, limpeza de logs de eventos

Filtros: pesquisa de texto livre · usuário/ator (incluindo "Não atribuído" e uma alternância de sessão conectada) · classe de comportamento (usuário / aplicação / sistema) · severidade · aplicação (seleção múltipla pesquisável em mais de 200 programas) · intervalo de data/hora com predefinições rápidas (todo o tempo / primeiro dia / último dia / última hora de atividade).

Fontes de dados: Logs de Eventos de Segurança, Sistema e Aplicação · USN Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Lixeira · SRUM (aplicação, rede, conectividade) · hives de registro.

Garantias Forenses

  • Somente leitura. Os bancos de dados de origem são abertos somente leitura; a análise nunca toca nas evidências.
  • Proveniência completa. Todo evento carrega database → table → rowid e abre as linhas de origem reais sob demanda.
  • A atribuição nunca adivinha. Um evento é atribuído a um Usuário, uma Aplicação, o Sistema — ou fica vazio. Sessões de logon interativas são usadas apenas como rótulos de contexto ("durante a sessão de <usuário>"), nunca para atribuir uma ação.
  • Redação honesta. A formulação distingue interação deliberada (UserAssist, SRUM em primeiro plano) de artefatos que um aplicativo também pode gerar (ShellBags, LNK, JumpLists), com ressalvas explícitas mostradas no cartão.
  • A ausência é declarada, não implícita. O relatório O que podemos ver rotula cada detecção para este caso específico, de modo que dados ausentes nunca são lidos silenciosamente como "nada aconteceu".

A UBA é correlação e classificação comportamental orientada por regras, não pontuação de anomalia estatística/ML — cada descoberta mapeia para uma regra explícita e auditável. Consulte RELEASE_NOTES.md para o catálogo completo de detecções.

🧩 Mecanismo de Correlação

Mecanismo de Correlação v1.7.0 — o núcleo de reconstrução. Consulte RELEASE_NOTES.md para o histórico de versões.

O Mecanismo de Correlação do Crow-Eye é um sistema de correlação forense de nível de produção. Ele ingere artefatos do Windows de qualquer fonte, os normaliza e revela as relações temporais e de identidade que transformam registros isolados em uma narrativa coerente do que aconteceu em um sistema, quando e quem esteve envolvido. Ele funciona prontamente com regras de correlação integradas (Wings) para as perguntas de investigação mais comuns, permite que analistas criem regras personalizadas sem tocar em código e adia o significado para regras autoráveis e para o investigador — nunca para uma pontuação de caixa-preta.

🎥 Guia do Usuário

Guia do Usuário do Mecanismo de Correlação

Importação Universal de Dados: O Mecanismo de Correlação pode receber saída de qualquer ferramenta forense em formato CSV, JSON ou SQLite e convertê-la em um banco de dados Feather. Isso significa que você pode correlacionar dados de ferramentas de terceiros (Plaso, Autopsy, Volatility etc.) com os artefatos nativos do Crow-Eye, criando uma análise de correlação unificada em todas as suas fontes de dados forenses.

🎯 Precisão e Completude de Evidências

Uma passagem de precisão focada do ciclo 0.11.0, validada de ponta a ponta contra um caso real do Windows com ~700 mil registros e sobreposta a trabalhos anteriores de confiabilidade. Cada correção abaixo é garantida pela suíte de regressão pytest e verificada por um harness de validação holístico; ele exercitou os sete wings padrão que existiam na época — onze são fornecidos hoje. As contagens de correspondência citadas abaixo foram medidas sob as regras daquela versão: 0.13.0 mudou o que conta como correspondência (uma correspondência agora deve abranger mais de um feather) e o que uma pontuação de confiança significa, portanto, trate-as como um registro daquela passagem, e não como números atuais.

O mecanismo de identidade captura todas as evidências

  • Corrigido: o mecanismo de identidade iterava apenas a PRIMEIRA linha de cada feather quando um filtro de tempo estava ativo (uma comparação de datetime ciente de fuso horário vs ingênuo gerava TypeError e abortava o loop por linha). Os registros vistos saltaram de 3.558 → 745.615 no caso de validação.
  • Corrigido: os registros de log colapsavam cada evento para o PROVEDOR do evento como identidade (todos os 33.855 registros de SecurityLogs compartilhavam uma identidade). O mapeamento por artefato agora prioriza entidades reais por linha (User, ComputerName, NewProcessName, TargetUserName) antes dos metadados de canal/provedor.
  • Corrigido: o mapeamento de campos ciente de artefato nunca era acionado porque os parsers não carimbam uma coluna artifact em cada linha. O mecanismo agora recorre a feather_metadata.artifact_type, de modo que SecurityLogs / SystemLogs / ApplicationLogs usam sua prioridade de identidade específica do artefato.
  • Corrigido: strings de espaço reservado se tornavam identidades falsas ('N/A', 'Unknown', '-', GUIDs nulos agrupavam registros não relacionados). O validador agora rejeita mais de 30 variantes de espaço reservado.
  • Resultado líquido em uma janela de intervalo completo, medido na época: o wing de Prova de Execução revelou 2.856 correspondências entre feathers (Alta) no mecanismo de identidade e 643 correspondências entre feathers no mecanismo de tempo, com 24–118 correspondências entre feathers por wing nos outros seis wings daquela versão.

Chega de "tudo é Baixo — algo está errado"

  • Corrigido: correspondências de feather único eram marcadas como Alta. Correspondências com feather_count == 1 agora recebem confidence_category="Baixa - feather único", de modo que a visualização Alta se concentra na correlação real entre feathers.
  • Corrigido: uma chave composta ciente de caminho estava dividindo a mesma identidade entre feathers (cada feather armazena caminhos de forma diferente, então chrome tinha mais de 10 chaves e nunca correlacionava). A chave agora é apenas por nome — a correlação entre feathers funciona novamente.

Detecção de impersonação por classificação de caminho — após uma correspondência ser formada, o mecanismo classifica o caminho de cada registro como CONFIÁVEL (Program Files, System32, WinSxS, as formas /device/harddiskvolumeN/... do BAM/SRUM, …) ou SUSPEITO (Temp, Downloads, Public, AppData\Local\Temp, Lixeira, raízes removíveis, compartilhamentos de rede). Uma correspondência que abrange ambas as classificações gera impersonation_alert (taxa de ≈0,05%, cada uma um candidato real).Registo honesto de evidências — um registo de descartes por janela com categorias nomeadas (no_identity_field, normalize_failure, below_threshold_skipped, …) mais um resumo por pipeline (registos vistos, alta/baixa confiança emitidos, sem identidade, categorias de descarte, junções timeless-feather). Cada registo ou cai numa correspondência ou numa categoria de descarte nomeada — "nenhuma evidência sobra" é verificável a partir do log. low_confidence_review_mode está ATIVADO por predefinição, pelo que grupos abaixo do limiar se tornam correspondências de Baixa confiança em vez de desaparecerem silenciosamente.

Enriquecimento de identidade timeless-feather — feathers sem carimbos de tempo por linha (AutoStartPrograms, MUICache, SystemServices, TypedPaths) deixam de receber um carimbo de tempo de geração falso em cada linha; em vez disso, após as correspondências temporais se formarem, o motor junta registos correspondentes de cada feather timeless por identidade como evidência suplementar.

Registo de identidade consolidadoconfig/standard_fields/identities.json é a fonte única de verdade para cada coluna que os motores + Eye devem consultar: 98 categorias, 1.146 sinónimos de colunas (app/processo, ficheiro, hash, utilizador, anfitrião/dispositivo, rede, registo, serviço/tarefa, evento, email, navegador, cloud, internals do Windows, certificado, contentor, objetos de SO). Adicionar um novo sinónimo de coluna é uma edição de JSON, não uma alteração de código.

Correções de falsos positivos de mapeamento semântico — a aplicação de múltiplos indicadores agora é realmente imposta (data-exfiltration-pattern exige ≥2 indicadores); regras AND impossíveis (4625 AND 4624) reescritas como OR; regras de wiper/ferramentas remotas usam regex real em vez de dispararem em cada entrada de Prefetch; regras de atividade de linha de base rebaixadas de high/critical para info/low (a pontuação ponderada da wing escala ameaças reais).

✅ Estado de Produção

O Correlation Engine está pronto para produção e é ativamente utilizado em investigações (Correlation Engine v1.7.0):

  • Motor de Análise por Janela Temporal — pronto para produção, recomendado para análise baseada no tempo (O(N log N))
  • Motor Baseado em Identidade — pronto para produção, recomendado para rastreio de identidade (O(N log N))
  • Feather Builder / FeatherWriter — importa CSV/JSON/SQLite de qualquer ferramenta; agrupamento transacional + metadados de esquema
  • Sistema de Wings e Orquestração de Pipeline — criar/gerir regras de correlação e automatizar fluxos de trabalho
  • Agrupamento de Identidade — unificado entre motor, visualizadores e a fase semântica
  • Registo de Campos Padrão — fonte centralizada de verdade para sinónimos de campos
  • Fan-Out Multi-Timestamp — cada timestamp de lista JSON correlacionado
  • 🔄 Correlação Paralela — base implementada; criação de perfis + despacho de process-pool a seguir
  • 🔄 Mapeamento Semântico e Pontuação de Correlação — melhorias ativas

Principais Funcionalidades

  • 🔄 Arquitetura de Motor Duplo: Escolha entre estratégias de correlação por Análise de Janela Temporal (O(N log N)) e Baseada em Identidade (O(N log N)).
  • 📊 Suporte Multi-Artefacto: Correlacione Prefetch, ShimCache, AmCache, Registos de Eventos, ficheiros LNK, Jumplists, MFT, USN, SRUM, Registo, Reciclagem e mais.
  • 🔌 Importação Universal: Importe saída CSV/JSON/SQLite de qualquer ferramenta forense e converta para bases de dados Feather.
  • 🎯 Agrupamento Inteligente de Identidade: Variantes como Chrome.exe/chrome.dll/Chrome.EXE colapsam num único balde; versões e qualificadores arquitetónicos permanecem distintos.
  • 🕒 Timestamps Tolerantes: FILETIME, ISO 8601, epoch Unix (s/ms/μs), YYYYMMDD, barras dos EUA e strings anotadas são todos analisados corretamente à primeira tentativa.
  • 📈 Fan-Out Multi-Timestamp: Listas de timestamps JSON (Prefetch run_times) expandidas para que cada execução receba o seu próprio evento de correlação.
  • 🧰 Uma Única Fonte de Verdade: Sinónimos de campos em config/standard_fields/*.json; metadados por tabela em correlation_engine/config/feather_schemas.json — estenda editando JSON, não código.
  • ⚡ Streaming + Thread-Safe: query_time_range_iter com memória O(1); caches de feather protegidas por locks; pronto para correlação paralela.
  • 🔍 Regras Flexíveis: Defina regras de correlação personalizadas (Wings) com parâmetros configuráveis.
  • 📋 Diagnóstico Honesto: Linha de estatísticas por janela (records_in / no_identity / parse_cache_hits / below_threshold / matches_emitted) para saber sempre se evidência foi descartada.
  • 🧪 Qualidade Garantida: Suíte de regressão pytest que cobre análise de timestamps, normalização de identidade, fan-out, o contrato do writer, autoria de Eye (governação GEP do lado da escrita) e o registo de campos padrão.

Arquitetura do Sistema

O Correlation Engine consiste em quatro componentes principais:

1. 🗄️ Feathers (Normalização de Dados)

Objetivo: Transformar artefactos forenses brutos num formato padronizado e consultável.

  • Bases de dados SQLite contendo dados de artefactos forenses normalizados — um feather por tipo de artefacto (Prefetch, ShimCache, Registos de Eventos, …) com um esquema padronizado e metadados para consulta eficiente.
  • Um formato universal que aceita dados de qualquer ferramenta forense.``` Any Tool Output → Feather Builder → Normalized Feather Database (CSV/JSON/SQLite) (SQLite with standard schema)

Examples:

  • Plaso CSV → Feather Builder → timeline.db
  • Autopsy JSON → Feather Builder → autopsy_artifacts.db
  • Volatility CSV → Feather Builder → memory_artifacts.db
  • Custom Output → Feather Builder → custom.db
**Formatos de importação suportados:** CSV (qualquer arquivo com cabeçalho), JSON (plano ou aninhado) e SQLite (importação direta). Mapeamento automático de colunas, detecção de tipos de dados, normalização de timestamps para ISO, validação e índices otimizados.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)

2. 🎯 Wings (Regras de Correlação)

Finalidade: Definir quais artefatos correlacionar e como.

  • Regras JSON/YAML que especificam uma janela de tempo, correspondências mínimas, prioridade de âncora e as feathers (com pesos) a correlacionar — reutilizáveis entre casos. Cada Wing é autoral e selada (registra quem a criou, por quê e a evidência que a motivou).```json { "wing_id": "execution-proof", "wing_name": "Execution Proof", "correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2, "anchor_priority": ["Prefetch", "SRUM", "AmCache"] }, "feathers": [ {"feather_id": "prefetch", "weight": 0.4}, {"feather_id": "shimcache", "weight": 0.3}, {"feather_id": "amcache", "weight": 0.3} ] }
#### 3. ⚙️ Motores (Estratégias de Correlação)

**Finalidade**: Executar a lógica de correlação para encontrar relações entre artefatos. As ligações estruturais vêm **primeiro**; uma pontuação ponderada por camadas é aplicada por cima como *interpretação/classificação*, não como base para uma correspondência.

**Motor de Varredura por Janela de Tempo** — ideal para análises baseadas em tempo e correlação temporal sistemática. Varre o tempo em intervalos fixos, coleta registros de todas as feathers por janela, aplica correspondência de campos semânticos + pontuação ponderada e evita duplicatas por meio do rastreamento de MatchSet. **O(N log N)** (consultas indexadas por timestamp); processamento em lote (~2.567 janelas/segundo).

**Motor de Correlação Baseado em Identidade** — ideal para grandes conjuntos de dados (>1.000 registros) e rastreamento de identidades. Extrai e normaliza identidades, agrupa registros por identidade, constrói âncoras temporais dentro de cada cluster, classifica evidências como primárias/secundárias/de apoio e faz streaming para conjuntos muito grandes (>5.000 âncoras) com memória constante. **O(N log N)**; 40+ padrões de campos de identidade por tipo.

**Seleção do motor:** use o motor de Janela de Tempo para análises baseadas em tempo e o motor Baseado em Identidade para rastreamento de identidades — ambos estão prontos para produção e otimizados para grandes conjuntos de dados com consultas indexadas.

#### 4. 🔄 Pipelines (Orquestração de Fluxos de Trabalho)

**Finalidade**: Automatizar fluxos de trabalho completos de análise, desde a criação de feathers até a geração de resultados. Um pipeline lê sua configuração (tipo de motor, wings, feathers), instancia o motor correto por meio do EngineSelector, executa cada wing, agrega correspondências, salva os resultados (DB + JSON) e os exibe na GUI com filtragem e visualização.```json
{
  "pipeline_name": "Investigation Pipeline",
  "engine_type": "identity_based",
  "wings": [{"wing_id": "execution-proof"}, {"wing_id": "file-access"}],
  "feathers": [
    {"feather_id": "prefetch", "database_path": "data/prefetch.db"},
    {"feather_id": "srum", "database_path": "data/srum.db"},
    {"feather_id": "eventlogs", "database_path": "data/eventlogs.db"}
  ],
  "filters": {
    "time_period_start": "2024-01-01T00:00:00",
    "time_period_end": "2024-12-31T23:59:59"
  }
}

Como Tudo Funciona em Conjunto```

  1. Data Preparation Raw Forensic Data → Feather Builder → Feather Databases
  2. Configuration Wing Configs + Feather References → Pipeline Config
  3. Execution Pipeline Executor → Engine Selector → Correlation Engine
  4. Correlation Engine loads Feathers + applies Wing rules → Correlation Results
  5. Visualization Results Database → Results Viewer GUI
### Exemplo de Caso de Uso: Encontrando Prova de Execução

**Cenário**: provar que `malware.exe` foi executado em um sistema.```json
{
  "wing_id": "malware-execution",
  "correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
  "feathers": ["prefetch", "shimcache", "amcache"]
}

Aqui está a tradução do conteúdo fornecido:

## Instalação

### Pré-requisitos

- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)
- Acesso à internet para baixar dependências

### Passos de instalação

1. Clone o repositório:

```bash
git clone https://github.com/example/repo.git
cd repo
  1. (Opcional) Crie e ative um ambiente virtual:
python -m venv venv
source venv/bin/activate  # No Windows: venv\Scripts\activate
  1. Instale as dependências necessárias:
pip install -r requirements.txt
  1. Verifique se a instalação foi bem-sucedida:
python tool.py --version

Uso

Sintaxe básica

python tool.py [opções] <alvo>

Opções disponíveis

OpçãoDescrição
-h, --helpMostra a mensagem de ajuda e sai
-v, --verboseHabilita a saída detalhada
-o, --outputEspecifica o arquivo de saída para os resultados
-t, --threadsDefine o número de threads a serem usadas (padrão: 10)
--timeoutDefine o tempo limite da solicitação em segundos (padrão: 30)

Exemplos

Execute uma verificação básica:

python tool.py https://exemplo.com

Execute com saída detalhada e salve os resultados em um arquivo:

python tool.py -v -o resultados.txt https://exemplo.com

Use um número específico de threads:

python tool.py -t 50 https://exemplo.com

Configuração

O arquivo de configuração config.yaml permite que você personalize o comportamento da ferramenta. Aqui está um exemplo:

# Configuração da ferramenta
config:
  user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
  timeout: 30
  max_retries: 3
  proxy:
    enabled: false
    url: ""
  headers:
    Accept: "*/*"
    Accept-Language: "en-US,en;q=0.9"

Opções de configuração

  • user_agent: O User-Agent a ser usado nas solicitações HTTP.
  • timeout: O tempo limite padrão da solicitação em segundos.
  • max_retries: O número máximo de tentativas para solicitações com falha.
  • proxy: Configurações de proxy. Defina enabled como true e forneça a url do proxy.
  • headers: Cabeçalhos HTTP personalizados a serem incluídos nas solicitações.

Solução de problemas

Erro: "Módulo não encontrado"

Se você encontrar um erro de ModuleNotFoundError, certifique-se de que todas as dependências estejam instaladas:

pip install -r requirements.txt

Erro: "Permissão negada"

No Linux/macOS, você pode precisar tornar o script executável:

chmod +x tool.py

Problemas de conexão

Se a ferramenta não conseguir se conectar ao alvo, verifique sua conexão de rede e as configurações de proxy no arquivo config.yaml.

Suporte

Se você tiver problemas ou dúvidas, abra um problema no repositório do GitHub.

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

from correlation_engine.pipeline import PipelineExecutor
executor = PipelineExecutor(pipeline_config)
results = executor.execute()
```
Aqui está a tradução do conteúdo fornecido:

---

## Instalação

### Requisitos

- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)

### Passos de Instalação

1. Clone o repositório:
   ```bash
   git clone https://github.com/example/tool.git
   cd tool
   ```

2. Instale as dependências:
   ```bash
   pip install -r requirements.txt
   ```

3. Execute a ferramenta:
   ```bash
   python main.py --help
   ```

## Uso

### Exemplos Básicos

Para executar uma varredura básica:

```bash
python main.py scan --target example.com
```

Para gerar um relatório detalhado:

```bash
python main.py report --format pdf
```

### Opções Avançadas

A ferramenta suporta várias opções avançadas para personalizar sua experiência:

- `--verbose`: Ativa a saída detalhada.
- `--output-dir DIR`: Especifica o diretório de saída para os resultados.
- `--config FILE`: Usa um arquivo de configuração personalizado.

## Configuração

O arquivo de configuração padrão é `config.yaml`. Você pode criar um arquivo de configuração personalizado e passá-lo com a opção `--config`.

### Exemplo de `config.yaml`

```yaml
targets:
  - example.com
  - example.org

scan_options:
  ports: [80, 443, 8080]
  timeout: 30

report:
  format: html
  output_dir: ./reports
```

## Solução de Problemas

### Erro: `ModuleNotFoundError`

Se você encontrar um erro de módulo não encontrado, certifique-se de que todas as dependências estão instaladas:

```bash
pip install -r requirements.txt
```

### Erro: `PermissionError`

Se você encontrar um erro de permissão ao executar a ferramenta, tente usar `sudo` (no Linux/macOS) ou execute o terminal como administrador (no Windows).

## Contribuindo

Aceitamos contribuições! Por favor, siga estas etapas:

1. Faça um fork do repositório.
2. Crie um novo branch para sua funcionalidade.
3. Envie um pull request com uma descrição clara das alterações.

## Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo `LICENSE` para obter mais detalhes.

---

**Aviso Legal:** Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado. O uso indevido desta ferramenta pode violar leis e regulamentos locais. O autor não se responsabiliza por qualquer uso indevido.```
Identity: malware.exe
  Anchor 1 (2024-01-15 10:30:00):
    ✓ Prefetch: malware.exe executed at 10:30:00
    ✓ ShimCache: malware.exe modified at 10:30:15
    ✓ AmCache:  malware.exe installed at 10:29:45

  Conclusion: Execution proven with 3 corroborating artifacts
```
### Benchmarks de Desempenho

| Registros | Motor de Janela Temporal | Motor Baseado em Identidade |
|---|---|---|
| 1.000 | 0,5s | 2s |
| 10.000 | 5s | 15s |
| 100.000 | 50s | 2,5 min (streaming) |
| 1.000.000 | — | 25 min (streaming) |

### Introdução ao Motor de Correlação

1. **Iniciar**: `python -m correlation_engine.main`
2. **Criar Feathers**: importe seus artefatos forenses (Prefetch, ShimCache, …).
3. **Criar Wings**: defina regras de correlação para sua investigação.
4. **Criar um Pipeline**: configure quais wings e feathers usar.
5. **Executar**: execute o pipeline e visualize os resultados correlacionados.
6. **Analisar**: use o Visualizador de Resultados para explorar relações temporais.

### 📚 Documentação do Motor de Correlação

- **[Visão Geral do Motor de Correlação](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — visão geral do sistema com diagramas de arquitetura
- **[Documentação do Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md)** — arquitetura de motor duplo, seleção de motor, otimização de desempenho
- **[Arquitetura](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/ARCHITECTURE.md)** — integração de componentes e fluxo de dados
- **[Documentação de Feather](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/feather/FEATHER_DOCUMENTATION.md)** — o sistema de normalização de dados
- **[Documentação de Wings](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/wings/WINGS_DOCUMENTATION.md)** — regras de correlação
- **[Documentação de Pipeline](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/pipeline/PIPELINE_DOCUMENTATION.md)** — orquestração de fluxo de trabalho
- **[Adicionando um Artefato](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/ADDING_AN_ARTIFACT.md)** — o fluxo de trabalho para conectar um novo parser ao motor
- **[Registro de Campos Padrão](https://github.com/ghassan-elsman/crow-eye/blob/main/config/standard_fields)** — sinônimos canônicos de nomes de colunas carregados por ambos os motores e pelo Eye
- **[Guia de Contribuição](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)** — como contribuir com o motor
- Links rápidos: [Seleção de Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#engine-selection-guide) · [Solução de Problemas](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#troubleshooting) · [Otimização de Desempenho](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#performance-and-optimization)

## 👁️ Eye — O Assistente de IA Forense

> **Um assistente poderoso, não um substituto.** O Eye automatiza e *verifica* as hipóteses de um investigador — ele nunca decide por você.

**Eye** é o assistente de IA forense integrado do Crow-Eye: um investigador forense qualificado apoiado por uma base de conhecimento real de artefatos do Windows. Ele oferece uma interface em linguagem natural para consultar, correlacionar e documentar tudo em um caso — Prefetch, MFT, Registry, Event Logs, AmCache, ShimCache, SRUM e muito mais — mantendo um registro auditável e à prova de adulteração de exatamente o que fez. O Eye pode ser executado inteiramente em seu próprio hardware (incluindo **totalmente isolado da rede**), em conformidade com a postura de privacidade do Crow-Eye de **"0 ms de dados enviados para fora do dispositivo"**. Arquitetura completa: [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).

| Capacidade | O que significa para você |
|---|---|
| **Investigação em linguagem natural** | Pergunte em inglês simples; o Eye escreve o SQL e pesquisa por você. |
| **Integração de múltiplas fontes** | Acesso unificado a todos os artefatos analisados no caso. |
| **Análise aprimorada por RAG** | O Eye recupera conhecimento forense específico de artefatos antes de responder. |
| **Espaço de Trabalho de Relatório Vivo** | Descobertas, tabelas, gráficos e linhas do tempo são documentados em tempo real. |
| **Humano no circuito** | Ações críticas (ex.: exportação de relatório) exigem sua aprovação explícita. |
| **Cadeia de custódia** | Prova criptográfica de exatamente o que o modelo analisou. |

O Eye transforma perguntas conversacionais ("mostre-me o que foi executado a partir de `C:\Temp` após as 22:00") em trabalho forense real: ele planeja uma abordagem, recupera conhecimento relevante de artefatos, executa SQL e buscas entre artefatos em seus bancos de dados de caso e sintetiza uma resposta validada. Cada resposta é produzida **em dois lugares ao mesmo tempo** — uma resposta de chat para você e um bloco estruturado gravado em um **Espaço de Trabalho de Relatório Vivo**, para que o dossiê se construa sozinho à medida que a investigação avança.

### O Protocolo Ghassan Elsman (GEP)

Tudo o que o Eye faz está ancorado no **Protocolo Ghassan Elsman (GEP)** — um padrão **neutro de fornecedor e independente de ferramenta** para *como qualquer IA deve ser usada em forense digital*. São **10 princípios** que um sistema conforme deve sustentar para que as descobertas assistidas por IA permaneçam **verdadeiras, rastreáveis aos registros de origem e respaldadas por uma cadeia auditável e à prova de adulteração**, com o investigador humano no controle:

| # | Princípio | Em uma linha |
|---|---|---|
| **GEP-1** | Primazia da Evidência | Conclusões vêm apenas de artefatos realmente examinados. |
| **GEP-2** | Rastreabilidade | Cada fato está vinculado a um registro de origem específico. |
| **GEP-3** | Especificidade e Cronologia | Carimbos de data/hora UTC exatos, identificadores e caminhos, ordenados no tempo. |
| **GEP-4** | Corroboração Cruzada | Basear-se em múltiplas fontes; relatar concordância, silêncio e conflito. |
| **GEP-5** | Verificação de Premissas | Tratar alegações humanas como hipóteses a provar ou refutar. |
| **GEP-6** | Completude | Nunca descartar ou truncar evidências silenciosamente. |
| **GEP-7** | Integridade e Não Repúdio | Nunca modificar evidências; registrar o que foi visto e feito, de forma à prova de adulteração. |
| **GEP-8** | Transparência e Explicabilidade | Raciocínio, ferramentas usadas e dados vistos são visíveis e auditáveis. |
| **GEP-9** | Autoridade Humana | O investigador decide; ações duráveis são atribuíveis. |
| **GEP-10** | Defensabilidade | A saída é objetiva, precisa e estruturada para revisão independente. |

O Eye do Crow-Eye é a **implementação de referência** do GEP; os comportamentos no produto que o sustentam são **Regras Operacionais**. 📜 Leia o padrão: [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).

### Modos de Implantação

O Eye se adapta ao seu modelo de ameaça por meio de três modos de implantação:

| Modo | Melhor para | Backends |
|---|---|---|
| ☁️ **Modelos de IA em Nuvem** | Análise profunda e complexa com máximo poder computacional | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 **Servidor de IA Offline** (isolado da rede) | Investigações no local, com exposição zero | Ollama, LM Studio |
| ⚡ **Agentes de Terminal CLI** | Reutilizar um agente de terminal de IA que você já possui como modelo | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |

No **modo agente CLI**, o Crow-Eye aciona um **agente de terminal/linha de comando de IA existente como modelo** — em vez de uma API em nuvem ou um servidor offline local — para que você possa investigar com o agente que já usa.

**O ciclo de investigação:**

1. **Abra ou crie um caso** — o Eye se limita aos bancos de dados de artefatos e ao histórico desse caso.
2. **Faça uma pergunta** em linguagem natural ou inicie uma triagem abrangente com um clique.
3. **O Eye executa seu pipeline** — detectar intenção → recuperar conhecimento → executar ferramentas → sintetizar.
4. **Você obtém uma saída dupla** — uma resposta direta no chat *e* um novo bloco no Relatório Vivo.
5. **Aprove ações bloqueadas** — exportações e outras etapas críticas aguardam sua autorização.

Você pode trocar de modelo em tempo de execução com a ferramenta `switch_model`. A troca é **restrita ao mesmo backend**, para que as evidências nunca sejam enviadas silenciosamente a um provedor diferente daquele que você escolheu.

### Rastreando o Processo de Pensamento do LLM

O Eye foi construído para que você possa ver — e depois provar — *como* ele chegou a uma conclusão. Enquanto o Eye trabalha, ele transmite atualizações estruturadas de `ThinkingStep` para a interface em tempo real; cada uma carrega um `step_id`, `type`, `label` legível por humanos, `status` (`active` → `done`, ou `error`) e `tool`/`params`/`detail` opcionais.

| Tipo de etapa | O que você está vendo |
|---|---|
| `thinking` | Planejamento do Eye — detectando intenção forense, construindo o prompt do sistema, decidindo os próximos passos. |
| `rag` | O Eye recuperando conhecimento de artefatos de sua base de conhecimento para fundamentar a resposta. |
| `tool_call` | O Eye executando uma ferramenta forense (uma consulta SQL, uma busca, uma consulta de correlação). |
| `synthesis` | O Eye validando e montando a resposta final, respaldada por evidências. |

Uma consulta típica se desenrola como `thinking → rag → thinking → tool_call → synthesis`, e todo caso mantém artefatos de rastreamento em disco que você pode inspecionar depois:

| Arquivo | O que registra |
|---|---|
| `<case>/EYE_Logs/eye_payload_seal.jsonl` | Os payloads exatos enviados ao modelo, encadeados por hash. |
| `<case>/EYE_Logs/truncation_audit.log` | O que do contexto foi mantido, resumido, descartado ou fixado — e por quê. |
| `<case>/case_history.json` | O histórico completo da conversa, com contagens de tokens por mensagem. |

### Execução de Ferramentas

O Eye é **orientado por ferramentas**: o modelo nunca toca as evidências diretamente. Ele emite chamadas de ferramenta, e o Eye as executa contra os bancos de dados do caso e retorna os resultados — para que cada ação seja explícita, registrada e reproduzível. As ferramentas são definidas em `configs/llm_config.json` e despachadas por meio de `eye/services/context_manager.py`.

**Ferramentas investigativas** — leem e analisam evidências:

| Ferramenta | Finalidade |
|---|---|
| `query_database` | Executar um `SELECT` contra um banco de dados forense. |
| `search_artifacts` | Busca de texto / regex entre bancos de dados. |
| `semantic_search_artifacts` | Busca semântica em artefatos analisados. |
| `get_schema` | Inspecionar esquemas de tabelas. |
| `query_timeline` | Uma varredura cronológica única em todos os bancos de dados do caso — o que aconteceu e quando. |
| `query_correlation_results` | Consultar a saída do Motor de Correlação por tempo / identidade. |
| `read_imported_evidence` | Ler evidências de terceiros importadas para o caso na íntegra (relatórios, e-mails, saída de ferramentas de navegador). |
| `correlate_imported_evidence` | Correlacionar evidências de terceiros importadas para o caso com artefatos nativos. |
| `analyze_large_dataset` | Análise map-reduce de grandes conjuntos de resultados — **sem truncamento silencioso**. |
| `list_case_files` | Listar arquivos no diretório do caso. |
| `internet_search` / `fetch_web_content` | Pesquisar e buscar contexto externo de ameaças / técnico. |
| `query_living_off_the_land_intel` | Consultas LOLBAS / LOLDrivers. |
| `query_threat_intel` | Consultas VirusTotal / inteligência de ameaças. |
| `switch_model` | Trocar de modelo em tempo de execução (somente mesmo backend). |

**Ferramentas de relatório** constroem o Espaço de Trabalho de Relatório Vivo: `report_append_section`, `report_add_data_table`, `report_add_chart`, `report_add_timeline`, `report_add_heatmap`, `report_add_chain_of_custody`, `report_add_chat_transcript`, `report_add_image`, `report_edit_section`, `report_delete_section`, `chat_add_table` e `export_report` (a exportação exige aprovação humana).

**Ferramentas de autoria** (governadas — veja [Construindo Wings de Correlação e Mapeamentos Semânticos](#building-correlation-wings--semantic-mappings)): `correlation_create_wing`, `correlation_edit_wing`, `correlation_create_semantic_mapping`, `correlation_edit_semantic_mapping`. As chamadas de ferramenta são traduzidas para o que o backend ativo espera — chamada de função nativa para APIs em nuvem e servidores locais, ou um wrapper XML `<tool_call>` para agentes CLI.

### Construindo Wings de Correlação e Mapeamentos Semânticos

O Eye não apenas *consulta* o [Motor de Correlação](#-correlation-engine) — ele pode ajudar a **estendê-lo**. Quando o Eye detecta um padrão recorrente entre artefatos, ele pode propor novos **Wings** (regras de correlação) e **Mapeamentos Semânticos** (traduções técnico-para-humano). Isso é *autoria governada*: o Eye propõe, o analista revisa o artefato salvo, e cada mudança é justificada e respaldada por evidências.

**Um Wing** une feathers dentro de uma janela de tempo e um limite mínimo de correspondências para provar uma alegação:

| Campo | Significado |
|---|---|
| `wing_name` | Nome legível por humanos para a regra. |
| `proves` | A alegação forense que ele sustenta (ex.: *execução de programa*). |
| `feathers[]` | Artefatos a correlacionar — cada um com `artifact_type`, `weight` opcional (0–1) e `tier` (1–4). |
| `time_window_minutes` | Janela de correlação (padrão **180** = 3 horas). |
| `minimum_matches` | Quantos feathers devem corresponder dentro da janela (padrão **1**). |
| `reason` *(obrigatório)* | Justificativa forense para a regra. |
| `related_evidence` *(obrigatório)* | Uma ou mais referências `database:table:rowid` que a motivaram. |

**Um Mapeamento Semântico** traduz um valor técnico bruto em significado legível por humanos (ex.: *EventID 4624 → "Logon Bem-sucedido"*). Ele vem em duas variantes: um `mapping` simples (valor único / regex → valor semântico) ou uma `rule` de múltiplas condições (condições unidas por AND/OR). Ambos suportam `category`, `severity`, `confidence` e `scope`, e ambos exigem `reason` + `related_evidence`.

**Governança — regras do lado de escrita que sustentam o GEP:**
- **Razão Obrigatória** (sustenta **GEP-9** + **GEP-2**): toda criação *e* edição deve incluir uma `reason` forense.
- **Vínculo de Evidência** (sustenta **GEP-2**): toda criação deve citar pelo menos uma referência `database:table:rowid`.
- **Carimbado pelo Eye / somente leitura para outros** (sustenta **GEP-7** + **GEP-9**): o Eye carimba sua autoria + razão + histórico de edições e pode editar **apenas o que o Eye criou** — regras integradas e criadas por humanos permanecem **somente leitura**.

### Contexto Autocurativo

Investigações longas podem exceder a janela de contexto de um modelo — especialmente modelos offline menores. Em vez de travar ou descartar evidências silenciosamente, o Eye **compacta automaticamente seu próprio contexto** antes de cada chamada de modelo (dentro de seu caminho de geração protegido, totalmente auditado).

Antes de cada chamada, o Eye mede o payload completo e reserva espaço para a resposta (**10%** da janela, mínimo de 512 tokens, nunca mais da metade). Se ainda assim não couber, ele se cura em duas passagens ordenadas, nunca tocando mensagens **protegidas** (fixadas, evidências auto-detectadas ou um resultado de ferramenta):

1. **Passagem de resumo** *(uma vez)* — o histórico não protegido é condensado em um único resumo, registrado como `SUMMARIZED`.
2. **Passagem de descarte** — a mensagem **não protegida mais antiga** é removida uma a uma até caber, registrada como `TRUNCATED`.

Se o **núcleo de evidências** irredutível (fixado + resultados de ferramentas + a pergunta atual) *ainda* transbordar, o Eye **se recusa a prosseguir em vez de truncar evidências** (`REFUSED_OVERFLOW`) e pede que você restrinja a consulta ou use `analyze_large_dataset`. O que quer que finalmente vá para o modelo é o payload exato que é selado para a cadeia de custódia.

### 🗺️ Mapa Narrativo — A Memória Persistente do Caso do Eye

O Eye é **sem estado entre turnos** — então o **Mapa Narrativo** é onde "o que sabemos e o que concluímos" vive para um caso. Ele é a **memória de trabalho persistente, auditável e à prova de adulteração** do Eye, e seu conteúdo é **injetado no prompt do Eye a cada turno** (o mapa literalmente *é* a memória).

- 🧭 **Veredito → Narrativa → Evidência.** Uma hierarquia estrita: um **Veredito** de caso, as **Narrativas** abaixo dele (alegações, cada uma com um estado — `proven` · `open` · `negative` · `needs` · `absolute`), e as **Evidências** respaldadas por artefatos abaixo delas.
- 🪟 **Sua própria janela.** Abre pelo botão **"Narrative Map"** na janela de chat do Eye, para que você possa acompanhar o chat, o relatório vivo e a memória do caso lado a lado; ele atualiza ao vivo conforme as coisas mudam.
- ↔️ **Bidirecional — uma memória que você comanda.** Tanto as edições do Eye quanto suas próprias anotações fluem por um único **commit validado pelo GEP** e são seladas em um **log de auditoria encadeado por hash** (`narrative_map_audit.jsonl`). Você pode **adicionar, editar e remover** suas alegações e evidências, moldando diretamente como o Eye entende e interpreta o caso.
- 🚫 **Nunca afirma o não suportado.** Uma narrativa do Eye pode permanecer `open` sem evidências enquanto investiga, mas nunca pode ser `proven` sem evidências; um tema que o Eye verificou mas encontrou vazio converte-se automaticamente para **`negative`** — porque uma ausência documentada é em si uma descoberta.

### Como a Conformidade Funciona

A conformidade não é um recurso adicionado por cima — ela é aplicada no pipeline.

- **🔗 Cadeia de custódia (Selo de Evidência).** Todo payload que o Eye envia a um LLM é selado: o **SHA-256 dos bytes exatos**, a contagem de tokens, o modelo + seu limite de contexto e a proveniência de cada linha de evidência (`database:table:rowid`, além de offsets calculados para registros MFT). Os selos são **somente anexação e encadeados por hash** em `<case>/EYE_Logs/eye_payload_seal.jsonl` — um único registro alterado ou removido quebra a cadeia, então o log prova *matematicamente* quais bytes o modelo analisou.
- **🚫 Sem truncamento silencioso.** Quando o contexto fica apertado, o Eye [se autocura](#self-healing-context) e realoca orçamentos em uma ordem estrita: **Prioridade 1 (Imovível): Evidência Bruta + o Prompt do Sistema** › **Prioridade 2 (Sacrificial): Conversa Casual** › **Prioridade 3 (Flexível): Contexto RAG**. Se o núcleo de evidências ainda não couber, o Eye se recusa em vez de descartar evidências silenciosamente.
- **🧾 Trilha de auditoria de truncamento.** Toda decisão de contexto é registrada em `<case>/EYE_Logs/truncation_audit.log` (`SUMMARIZED`, `TRUNCATED`, `PRESERVED`, `PINNED`, `UNPINNED`, `BUDGET_REDUCED`), cada uma com um hash. Evidências detectadas são fixadas automaticamente acima de um limite de confiança; você também pode fixar mensagens manualmente.
- **📑 Mandato de evidência-para-relatório.** O Eye deve responder no chat **e** persistir as evidências de apoio no relatório; falhar em registrar evidências é sinalizado como violação de protocolo.
- **⚖️ Governança de correlação.** Qualquer Wing ou mapeamento que o Eye criar deve incluir uma `reason` forense e `related_evidence`; regras criadas fora do Eye são somente leitura e não podem ser reescritas silenciosamente.
- **🔐 Privacidade e isolamento de rede.** Em modos offline, o Eye faz **zero chamadas de saída**; chaves de API em nuvem vivem em chaveiros nativos do SO — nunca codificadas, nunca gravadas em logs.

📖 **Arquitetura completa do Eye:** [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).

## 📖 Eye-Describe — Base de Conhecimento de Artefatos em Nível de Byte

> 🔗 **[Explore o Eye-Describe → crow-eye.com/eye-describe](https://crow-eye.com/eye-describe)**

Historicamente, os investigadores caíam na armadilha de confiar em suas ferramentas forenses sem entender como os artefatos subjacentes se comportam ou como a ferramenta os analisou. O risco hoje é simplesmente substituir *"a ferramenta"* por *"a IA"*. Uma IA pode analisar um registro com precisão técnica perfeita e ainda assim colocá-lo no contexto errado — mudando todo o significado da evidência.

**Eye-Describe** existe para que nem o humano nem o modelo precisem adivinhar. É uma referência interativa, em nível de byte, das estruturas binárias brutas dos artefatos do Windows, e serve a dois papéis ao mesmo tempo:

| Papel | O que faz |
|---|---|
| 🧑‍🏫 **O projeto para o humano** | Uma referência educacional interativa da anatomia profunda em nível de byte dos artefatos do Windows — o que cada estrutura é, como se comporta, o que pode e o que não pode provar. Gratuito para uso, voltado a estudantes, educadores e profissionais que querem entender a evidência em vez da coluna de saída. |
| ⚖️ **A âncora de conformidade para a IA** | A visibilidade do Eye está vinculada aos comportamentos documentados de artefatos no Eye-Describe. O modelo raciocina contra uma referência codificada do que um artefato *realmente significa*, em vez de inferir semântica por conta própria. |

Ao ancorar a camada de IA ao comportamento documentado de artefatos, o Crow-Eye não está pedindo que você confie em um modelo — está restringindo o modelo a respeitar a forense bruta.

> **Não troque a confiança na ferramenta pela confiança na IA. Entenda os dados.**

## 🧪 Qualidade e Validação

Ferramentas forenses só são úteis se sua saída puder ser defendida. O trabalho de correção do Crow-Eye é deliberadamente visível:- **Suites de regressão.** O Correlation Engine é coberto por uma suite pytest que abrange parsing de timestamps, normalização de identidades, fan-out multi-timestamp, o contrato do writer, autoria Eye (governança GEP no lado de escrita) e o registo de campos padrão. O motor UBA inclui a sua própria suite, incluindo uma execução ponta a ponta contra um caso real.
- **Harness de validação.** Um harness holístico exercita todas as 7 wings padrão contra **ambos** os motores num caso Windows real de ~700K registos.
- **Histórico de defeitos publicado.** Regressões de precisão e o seu impacto medido estão documentados abertamente em [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) — incluindo casos em que uma correção alterou os registos vistos por ordens de magnitude. Saber o que estava errado, e quando, faz parte do que torna um resultado defensável.
- **Contabilidade de evidências verificável.** Cada registo ou cai numa correspondência ou num bucket de descarte nomeado, e o ledger de descarte por janela torna "sem evidências sobrantes" algo que pode verificar a partir do log em vez de aceitar por fé.
- **Logs à prova de adulteração.** `verify_chain()` re-percorre o log de auditoria do Narrative Map e a cadeia do Evidence Seal para detetar modificações — incluindo de campos legíveis por humanos.

## 🔬 Plataforma de Investigação

Crow-Eye é mais do que software — é uma **plataforma de investigação aberta** que acelera todo o campo da forense Windows. O projeto foca-se em:

- Publicar documentação detalhada sobre estruturas internas de artefactos.
- Partilhar lógica de correlação e metodologias.
- Permitir revisão por pares, transparência e colaboração académica.
- Contribuir para o conhecimento coletivo da comunidade forense.

## 🛠️ Notas Técnicas

- O parsing de registos requer ficheiros de hive de registo completos.
- Alguns artefactos requerem tratamento especial devido aos mecanismos de bloqueio de ficheiros do Windows (ver [Registos personalizados / ficheiros bloqueados](#-artefactos-suportados)).
- O parsing de LNK e Jump Lists é tratado pelo parser dedicado do próprio Crow-Eye.

## 📸 Capturas de Ecrã

Uma seleção da interface e das vistas de análise do Crow-Eye.

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/d631f2359d186d47eab815cc199d2c08c7c098cb8c64509d7c43185b6413d537.png)

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/140bd5b574f8b2d239f45be6b9d238a592da1cf3b7e6a0cf0a7450a653a75b88.png)

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/b7593c596ea437f84cdf476c147fc363a9a87fd821023b2c93559cdc56ceebee.png)

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/b67e55fc8c3bc87a5357add66c97e2b5d75310fe7ea5c1f571f5e8938c0a25ae.png)

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/8f10355f7d0f9f31e2e270ecf43fa70e94a6eda3b84b792d28479e0552eec000.png)

![Captura de ecrã Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/7bbf1b790d445d33a392b023cc14877e8ee0c72ed2aeec1aba1663da7d0419a2.png)

🎥 **Vídeo de demonstração:** [![Ver a demonstração](https://assets.kitploit.com/production/public/readmes/9931/01aa6e4b5fb8732512fe81143b1dcd87d908401369284bad8cfaf1b119fcbf41.jpg)](https://youtu.be/hbvNlBhTfdQ)

## 🚧 Roadmap

Trabalho planeado e em curso (ver [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) para alterações já lançadas):

- 📊 **Vistas GUI e relatórios avançados** — visualização e relatórios mais ricos.
- 🔄 **Diálogo de pesquisa melhorado** — filtragem avançada com suporte a linguagem natural.
- 🎯 **Mapeamento semântico melhorado** — mapeamento abrangente de campos em todos os tipos de artefactos.
- 📈 **Pontuação de correlação avançada** — pontuação de confiança refinada e explicável.
- ⚡ **Correlação paralela** — despacho por process-pool, ativado por padrão para cargas de trabalho grandes.

Tem uma ideia ou quer adicionar um artefacto? [Abra um issue](https://github.com/Ghassan-elsman/Crow-Eye/issues) ou veja [Contribuir](#-contribuir).

## 📚 Documentação

- **[TECHNICAL_DOCUMENTATION.md](https://github.com/ghassan-elsman/crow-eye/blob/main/TECHNICAL_DOCUMENTATION.md)** — arquitetura, componentes e guia de desenvolvimento.
- **[RELEASE_NOTES.md](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md)** — o que há de novo em cada lançamento (UBA, Narrative Map, backends Eye na nuvem, endurecimento de gestão de casos, …).
- **[Documentação do Correlation Engine](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — visão geral, motor, feathers, wings, pipelines.
- **[Arquitetura da timeline](https://github.com/ghassan-elsman/crow-eye/blob/main/timeline/ARCHITECTURE.md)** — internals do módulo de timeline.
- **[Arquitetura Eye](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md)** e **[padrão GEP](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md)** — o assistente de IA e o seu protocolo de governação.

## 🤝 Contribuir

Crow-Eye é construído como uma plataforma de investigação aberta, e contribuições são bem-vindas — novos parsers, regras de correlação, documentação e investigação de artefactos.

- **Contribuições gerais:** [CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/CONTRIBUTING.md)
- **Correlation Engine (área prioritária):** [correlation_engine/CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)
- **Contacto:** [[email protected]](mailto:[email protected]) · ou abra um issue / pull request.

## 🌐 Website & Comunidade

- 🌍 **Website oficial:** [crow-eye.com](https://crow-eye.com/) — recursos, documentação e downloads.
- 💬 **Discord:** [Junte-se ao Discord do Crow-Eye](https://discord.gg/2vag2Udf) — ajuda direta, investigação de artefactos e anúncios de lançamentos.

## 📄 Licença

Crow-Eye é lançado sob a **[GNU General Public License v3.0](https://github.com/ghassan-elsman/crow-eye/blob/main/LICENSE)** (GPL-3.0). É livre de usar, estudar, partilhar e modificar sob os termos dessa licença.

## 📝 Citar o Crow-Eye

Se usar o Crow-Eye em trabalho académico, investigação publicada ou um relatório de caso, por favor cite-o:```bibtex
@software{elsman_crow_eye,
  author  = {Elsman, Ghassan},
  title   = {Crow-Eye: A Windows Forensics Engine},
  url     = {https://github.com/Ghassan-elsman/Crow-Eye},
  license = {GPL-3.0},
  year    = {2026}
}
```
Elsman, G. *Crow-Eye: Um Mecanismo de Forense para Windows* (GPL-3.0). https://github.com/Ghassan-elsman/Crow-Eye

Para citações de metodologia, o Protocolo Ghassan Elsman está documentado separadamente em [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).

## 💖 Apoio

O Crow-Eye é gratuito e de código aberto, construído e mantido por uma única pessoa. Se ele ajuda no seu trabalho, considere apoiar o projeto — isso financia diretamente novos parsers e pesquisas: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/main/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.

## Créditos

Criado e mantido por **Ghassan Elsman**.

Categorias