v0.1.0: logo, i18n pt/en, CI com caches, testes e documentação
- 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>
This commit is contained in:
1 parent
df27974359
commit
791538c9d9
112 files changed
+15620
-494
No files matched your search
@@ -0,0 +1,40 @@
|
||||
# Arquitetura
|
||||
|
||||
[English](../architecture.md) · **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.
|
||||
Reference in new issue
Block a user