Files
sabia/README.md
T
Lucas df27974359 App desktop (Tauri), GitHub Actions de CI/release, elevação automática
- Move a UI de crates/sabia-cli/src/web/ para apps/gui/ui/: fonte única
  servida tanto pelo `sabia ui` quanto pelo app desktop.
- sabia-core::engine::Engine centraliza sessões de scan/monitor/update —
  usado pelo servidor local da CLI e pelo app Tauri, sem duplicar lógica.
- apps/gui/src-tauri: app desktop Tauri 2, mesma interface, comandos IPC
  espelhando a API HTTP. Pede elevação de administrador/root
  automaticamente ao abrir (modo monitor e captura crua exigem):
  manifesto requireAdministrator no Windows (UAC antes mesmo do app
  abrir), pkexec no Linux e osascript no macOS, com reinício automático
  e aviso + botão de nova tentativa na interface se for negada.
- Ícone gerado a partir do logo (apps/gui/src-tauri/icons/source.png).
- .github/workflows/ci.yml: fmt, clippy, testes (Linux/Windows/macOS),
  auditoria de dependências, compilação do app desktop.
- .github/workflows/release.yml: ao empurrar uma tag vX.Y.Z, builda a
  CLI (Linux x86_64/aarch64, macOS x86_64/aarch64, Windows x86_64) e o
  app desktop pras mesmas plataformas, publica tudo numa release do
  GitHub com checksums SHA-256.
- sabia-core::update: corrige o nome do asset esperado (casava pelo
  nome fixo, mas o release empacota com a versão no nome) e a extração
  (tar.gz no Linux/macOS, zip no Windows).
- LICENSE-MIT, LICENSE-APACHE, CHANGELOG.md com a entrada 0.1.0.
- cargo fmt + clippy (-D warnings) limpos em todo o workspace.
2026-10-23 08:56:08 -03:00

2.1 KiB

Sabiá

Auditoria, monitoramento e pentest de redes Wi-Fi — terminal e interface gráfica sobre o mesmo núcleo, com foco na interface gráfica e uso intuitivo: a parte complexa (netlink, radiotap, parsing de quadro 802.11) fica escondida em sabia-core; CLI e GUI só consomem.

Use apenas em redes próprias ou com autorização explícita do responsável pela rede (engajamento de pentest formal). Toda ativação de modo monitor e sessão de captura é registrada numa trilha de auditoria local encadeada por hash (.sabia-audit.log).

Estrutura

crates/sabia-core   biblioteca: netlink (iw), radiotap, parsing 802.11,
                     captura crua (AF_PACKET), auditoria, auto-atualização
crates/sabia-cli     binário `sabia`: comandos de terminal + servidor
                     local da interface (`sabia ui`)
apps/gui/ui          mesma página HTML/JS servida pelo `sabia ui` e pelo app desktop
apps/gui/src-tauri   app desktop (Tauri) — pede administrador/root ao abrir

Uso

sabia iface list                        # lista interfaces, marca as Wi-Fi
sabia iface monitor <if> on             # liga modo monitor (precisa root)
sabia scan <if> --out captura.pcap      # varre canais, mostra APs/clientes
sabia ui                                # abre a interface gráfica local
sabia update                            # verifica atualização
sabia update --apply                    # baixa e aplica a atualização

Ou baixe o app desktop em Releases — ele pede elevação de administrador/root automaticamente ao abrir, já que modo monitor e captura crua exigem esse privilégio em qualquer sistema.

Pela CLI, capturar quadros 802.11 exige CAP_NET_RAW/CAP_NET_ADMIN — normalmente root (sudo sabia ...).

Dependências externas

iw e ip (iproute2) para controlar modo monitor e canal — é uma ponte deliberada até existir uma implementação nl80211 nativa. A captura em si (AF_PACKET) e todo o parsing de quadro são Rust puro, sem libpcap.

Hardware testado

Adaptador USB RTL8812AU (driver rtw88_8812au), suporta modo monitor e injeção.