Files
Lucas Rayan 659701b2d4
CI / Formatação e clippy (push) Successful in 1m9s
CI / Auditoria de dependências (push) Successful in 12s
CI / Testes (Linux) (push) Successful in 1m34s
Release / Cria a release (push) Successful in 5s
CI / Compila o app desktop (Linux) (push) Successful in 1m36s
Release / CLI (linux-aarch64) (push) Successful in 1m23s
Release / CLI (linux-x86_64) (push) Successful in 1m40s
Release / App desktop (linux-aarch64) (push) Successful in 7m32s
Release / App desktop (linux-x86_64) (push) Failing after 9m5s
Release / App desktop (windows) (push) Failing after 6m20s
chore: padroniza arquitetura Ciberfauna, logo na raiz, hooks de verificação e CI multi-arch no runner ARM
2026-10-30 17:38:58 -03:00

2.0 KiB

Arquitetura

English · Português

Dois crates e um app:

crates/sabia-core   toda a lógica (biblioteca)
crates/sabia-cli    binário `sabia` (CLI + servidor local da UI)
apps/gui            interface (ui/ = HTML/CSS/JS; src-tauri/ = app desktop)

A CLI e o app desktop são clientes finos: ambos chamam o Engine do núcleo. A UI do navegador (sabia ui) e a do Tauri carregam o mesmo apps/gui/ui/.

sabia-core

Módulo Papel
engine.rs Orquestra tudo e expõe a API que CLI e GUI consomem.
iface.rs, netlink.rs Descobre interfaces e canais; liga/desliga modo monitor por netlink/iw.
radiotap.rs Parsing do cabeçalho radiotap; banda e canal.
dot11.rs Parsing de quadros 802.11 (gerenciamento: beacon, probe).
eapol.rs Parsing do EAPOL e dos campos do 4-way handshake.
handshake.rs Monta o handshake (ANonce, SNonce, MIC, PMKID) a partir dos quadros.
crack.rs Deriva PMK (PBKDF2-HMAC-SHA1) e PTK, confere MIC e PMKID.
scan.rs Percorre canais e agrega APs e clientes vistos.
capture.rs, inject.rs Captura crua por AF_PACKET; injeção de quadros (deauth).
pcapreader.rs, pcapwriter.rs Leitura e escrita de .pcap.
audit.rs Trilha de auditoria local encadeada por hash.
doctor.rs Diagnóstico de privilégios, ferramentas e interfaces.
update.rs Auto-atualização por releases do Gitea (curl + SHA-256).
error.rs, testutil.rs Tipo de erro compartilhado; ajudantes de teste.

Plataforma

Captura e modo monitor são Linux (AF_PACKET + netlink). Parsing (radiotap, dot11, eapol, handshake), quebra (crack) e .pcap são multiplataforma, por serem offline — por isso os testes rodam em Linux no CI.

Transporte da UI

sabia ui sobe um servidor em 127.0.0.1 protegido por um token gerado na hora; serve index.html/app.css/app.js/logo.png embutidos no binário e uma API JSON. O app Tauri usa os mesmos arquivos, chamando o Engine direto por comandos Tauri em vez de HTTP.