Release / Create release (push) Successful in 7s
CI / Format and clippy (push) Successful in 1m25s
CI / Dependency audit (push) Successful in 11s
CI / Tests (Linux) (push) Successful in 1m57s
CI / Check desktop app (Linux) (push) Successful in 3m43s
Release / CLI (linux-aarch64) (push) Successful in 45s
Release / Desktop app (linux-aarch64) (push) Successful in 4m22s
Release / CLI (linux-x86_64) (push) Successful in 51s
Release / Desktop app (linux-x86_64) (push) Successful in 4m20s
Release / Desktop app (windows) (push) Successful in 3m12s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
9.1 KiB
9.1 KiB
Changelog
English · Português
Formato baseado em Keep a Changelog; versões seguem SemVer.
[1.0.5] - 2026-10-31
Adicionado
- Atualização do app desktop em um clique. O botão de atualizar agora baixa, confere (SHA-256) e instala a versão nova de verdade, em vez de só mudar o próprio texto. Funciona nos três pacotes do desktop: AppImage (substituição atômica),
.deb(dpkg -i, sem pedir senha de novo — o app já roda como root quando você clica), e o instalador do Windows (instalação silenciosa). No Linux o app reabre sozinho; no Windows o instalador roda silencioso mas o app ainda não reabre por conta própria — abra de novo depois que a instalação terminar.
Alterado
- O repositório se mudou pra organização Ciberfauna (
ciberfauna/sabia, eralucasrguerra/sabia). Aviso importante pra instalações existentes: versões até a 1.0.4 têm o endereço antigo fixo na checagem de atualização e não vão encontrar esta versão sozinhas. Baixe a 1.0.5 manualmente uma vez na nova página de Releases, e as próximas verificações voltam a funcionar pelo novo endereço.
[1.0.3] - 2026-10-30
Corrigido
- O
deauth_directionalnão tinha o próprio#[cfg(target_os = "linux")]; todo build fora do Linux falhava com uma definição duplicada e imports só de Linux fora de escopo. Por isso av1.0.1e av1.0.2nunca tiveram um app desktop funcional para Windows, e o pacote Linux dav1.0.2saiu rotulado1.0.1(a versão noCargo.tomlnão tinha sido atualizada). Use av1.0.3.
[1.0.2] - 2026-10-30
Corrigido
- O build do app desktop no CI procurava o pacote em
target/, mas o diretório do Cargo no runner é outro e persiste entre execuções; os jobs de Linux e Windows falhavam antes de publicar qualquer coisa. Por isso o app desktop dav1.0.1nunca foi publicado — use av1.0.2.
[1.0.1] - 2026-10-30
O projeto saiu do GitHub para o Gitea, e a verificação de atualização foi junto.
Alterado
- As atualizações agora vêm do Gitea. O
sabia updatee o "Atualizar agora" do app desktop leem a última release emgit.lucasrguerra.dev.br, e não mais a API do GitHub. As versões até a 1.0.0 ainda olham o GitHub, que não responde mais, e por isso não enxergam esta release: baixe a 1.0.1 uma vez, e as próximas atualizações são automáticas. - Pacotes da release: o CLI para Linux x86_64 e aarch64 (compilado pelo CI do Gitea
quando uma tag
v*é enviada, com um.sha256ao lado de cada pacote) e o app desktop para Linux (.AppImage,.deb) e Windows (instalador NSIS.exe, compilado a partir do Linux peloscripts/build-gui.sh). Não há mais CLI para Windows nem build para macOS: o CLI é só para Linux, e o macOS exige o SDK e a assinatura da Apple, que o CI deste projeto não tem.
Corrigido
- O
sabia updatese recusa a rodar a partir do executável do app desktop (sabia-gui). O pacote da release contém o CLI, e trocar o app por ele o quebraria; o app passa a apontar para a página de downloads.
[1.0.0] - 2026-10-24
Primeira versão estável: validação em hardware real por toda a superfície de ataque, um pipeline de quebra bem mais completo, dois ataques novos (WPS, Evil Twin), relatório redesenhado e várias correções de confiabilidade que só apareceram testando contra redes Wi-Fi de verdade.
Adicionado
- Quebra de senha: dicionário padrão trocado por uma lista de 9,7 milhões
de senhas (rockyou + Probable-Wordlists, deduplicados, comprimida e
embutida no binário); regras de mutação estilo hashcat (maiúscula,
sufixos numéricos/símbolos, leet simples); força bruta por máscara
(sintaxe
?d?l?u?s?a); exportação.hc22000(individual ou em lote) para levar o handshake direto ao hashcat/John. - Ataque WPS: PIN/Pixie Dust via
reaverembutido (extraído em tempo de execução), oubullyquando instalado no sistema. - Evil Twin: clona um AP já visto na sessão (SSID aberto) numa segunda
interface com portal cativo, para WPA/WPA2-PSK — a senha só é aceita
depois de conferida de verdade contra o handshake real já capturado,
nunca "aceita qualquer coisa". Uma variante Enterprise (802.1X/EAP)
captura credenciais automaticamente via
hostapd-wpe, sem portal nem ação humana, já que a credencial viaja no próprio handshake EAP. - Decriptação de tráfego CCMP de um cliente assim que a senha do handshake dele é conhecida (Temporal Key derivada da PMK quebrada).
- Pontuação de interferência de canais por banda e achados de segurança (rede aberta, PMF ausente, WPS exposto, possível evil twin por SSID duplicado).
- Relatório de auditoria redesenhado: capa em página cheia com o logo
embutido, sumário com âncoras, cabeçalho/rodapé corridos via margin
boxes do
@page(seção atual, numeração de página), cards de KPI e achados com cor por severidade — a paginação continua feita pelo Paged.js no navegador, imprimível em PDF. ScanSnapshot.warning: avisa quando uma captura está rodando há um tempo sem receber nenhum quadro — uma placa que aceita ativar modo monitor sem realmente entregar captura (comum em Wi-Fi interno de notebook) agora diz isso, em vez de ficar "escutando o ar" caladinha.
Corrigido
- Captura de handshake nunca completava em rede real:
eapol.rsliakey_info/replay_counter/key_data_lencomo little-endian; esses campos do 802.1X são big-endian. O deauth funcionava, os quadros EAPOL eram vistos, mas oHandshakeTrackerdescartava todos silenciosamente — 0 handshakes não importa quanto tráfego fosse gerado. Os próprios quadros sintéticos de teste do projeto cometiam o mesmo engano simetricamente, então os testes de ida e volta nunca pegaram isso; verificado ao vivo contra um AP real depois da correção. - Modo monitor brigando com o NetworkManager:
set_monitor()agora solta a interface do NetworkManager antes de trocar de modo e devolve depois — sem isso o NM reafirmava a própria conexão em segundos e a captura caía com "está em modo managed". - Evil Twin deixava o sistema pela metade se o processo morresse no
meio (Ctrl+C,
kill -9, queda de energia): as duas interfaces ficavam presas emmanaged=nopra sempre, Wi-Fi sumia do painel do sistema. Um arquivo de estado mais uma rotina de autocura a cada início do engine desfazem isso sozinhos agora; osabia uitambém trata SIGINT graciosamente. - Quadros repetidos de deauth/disassoc eram descartados como duplicata depois do primeiro envio — o mesmo Sequence Control era reusado em toda injeção; agora incrementa por quadro.
- Lista de redes reordenava debaixo do cursor durante a captura, porque a ordenação por sinal reagia a cada oscilação de 1-2 dBm; a ordem agora é estável (ordem de chegada, sinal arredondado em buckets de 4 dBm).
- "Forçar handshake" falhava se a captura tivesse sido parada: agora religa a captura sozinho e espera o alvo reaparecer com canal conhecido antes de disparar o job, em vez de travar no canal em que o scanner por acaso estava saltando.
- Grid da aba Ataques deixava buracos vazios grandes quando dois cards de alturas muito diferentes caíam na mesma linha; trocado por um layout de colunas tipo alvenaria.
Alterado
crack_reader/crack_maskparalelizam entre os núcleos disponíveis e reaproveitam a base do HMAC por iteração em vez de reconstruí-la — cerca de 640x mais rápido em build release comparado ao caminho original debug/single-thread.
[0.1.0] - 2026-10-23
Primeira versão: CLI, app desktop e núcleo compartilhado.
Adicionado
sabia-core: descoberta de interfaces Wi-Fi, controle de modo monitor e canal (via netlink/iw), varredura de 2.4, 5 e 6 GHz, captura crua de quadros 802.11 por AF_PACKET (sem libpcap), parsing de radiotap e de quadros de gerenciamento (beacon, probe, EAPOL), agregação de APs e clientes, captura de 4-way handshake e PMKID, quebra offline por dicionário (PBKDF2-HMAC-SHA1, MIC e PMKID) para WPA/WPA2-PSK, escrita e leitura de.pcap, injeção de quadros, trilha de auditoria local encadeada por hash, auto-atualização por releases do GitHub.sabia: CLI comiface(list/channels/monitor),scan,analyze,crack,deauth(com--yes),doctor,audit(verify/show),updateeui(servidor local da interface).- App desktop (Tauri) com a mesma interface servida pelo
sabia ui, pedindo elevação de administrador automaticamente ao abrir — modo monitor e captura crua exigem root/admin. - Interface gráfica: sidebar de interfaces, painel de captura com linha de sinal animada, tabela de redes com barras de sinal e selos de segurança por cor, aviso de uso autorizado, botão de atualização em um clique, temas Auto/ Claro/Escuro e idioma português e inglês.
- CI com caches (
rust-cache,.debdo Tauri em cache) e pipeline de release multiplataforma (CLI em 5 alvos e app desktop viatauri-action).