- Logo oficial (sabia.png) e conjunto de ícones do app desktop. - Interface em português e inglês: tradutor por observação do DOM, seletor de idioma e checagem de cobertura de tradução no CI. - CI/CD com caches (rust-cache, .deb do Tauri em cache) e pipeline de release multiplataforma (CLI em 5 alvos + app desktop via tauri-action), templates de issue/PR. - Suíte de testes de integração do sabia-core (scan e2e, handshake/crack 4-way e PMKID, pcap, trilha de auditoria) — 46 testes verdes. - Documentação completa pt/en: README, ROADMAP, SECURITY, CONTRIBUTING, CHANGELOG e docs/ (cli, interface, arquitetura), com enquadramento de uso autorizado. - Correções de clippy (-D warnings) e formatação em toda a árvore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.1 KiB
2.1 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 GitHub (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, Windows e macOS 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/sabia.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.