• v1.0.5 7e01e599fd

    Sabiá 1.0.5
    Release / Create release (push) Successful in 7s
    CI / Format and clippy (push) Successful in 1m25s
    CI / Tests (Linux) (push) Successful in 1m57s
    CI / Check desktop app (Linux) (push) Successful in 3m43s
    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
    CI / Dependency audit (push) Successful in 11s
    Release / CLI (linux-aarch64) (push) Successful in 45s
    Release / Desktop app (windows) (push) Successful in 3m12s
    Stable

    gitea-actions released this 2026-10-31 13:20:50 +00:00 | 0 commits to main since this release

    Added

    • One-click desktop update. The update button actually downloads, verifies (SHA-256) and installs the new version now, instead of only changing its own label. Works for all three desktop packages: AppImage (atomic self-replace), .deb (dpkg -i, no new password prompt — the app is already running as root by the time you click it), and the Windows installer (silent install). On Linux, the app restarts itself automatically; on Windows, the installer runs silently but the app does not reopen on its own yet — start it again once the install finishes.

    Changed

    • The repository moved to the Ciberfauna organization (ciberfauna/sabia, was lucasrguerra/sabia). Important notice for existing installations: versions up to 1.0.4 have the old location baked into their update check; they will not find this release automatically. Download 1.0.5 once manually from the new Releases page, and future update checks will work through the new location.
    Downloads
  • v1.0.4 7d69f2e4b2

    Sabiá 1.0.4
    CI / Format and clippy (push) Successful in 17s
    CI / Tests (Linux) (push) Successful in 27s
    CI / Dependency audit (push) Successful in 10s
    CI / Check desktop app (Linux) (push) Successful in 1m47s
    Release / Create release (push) Successful in 6s
    Release / CLI (linux-aarch64) (push) Successful in 49s
    Release / Desktop app (linux-aarch64) (push) Successful in 4m22s
    Release / CLI (linux-x86_64) (push) Successful in 50s
    Release / Desktop app (linux-x86_64) (push) Successful in 4m4s
    Release / Desktop app (windows) (push) Successful in 3m8s
    Stable

    gitea-actions released this 2026-10-31 10:13:27 +00:00 | 2 commits to main since this release

    Changes since v1.0.3

    • ci: pin CI jobs to the arm64 runners, not the shared ubuntu-latest alias (7d69f2e)
    • chore(release): bump version to 1.0.4 (ba0c99d)
    • ci(release): build linux-x86_64 natively on the new amd64 runner (476e27e)
    Downloads
  • v1.0.3 55e19a8e5b

    Sabiá 1.0.3
    CI / Format and clippy (push) Successful in 1m13s
    CI / Dependency audit (push) Successful in 13s
    CI / Tests (Linux) (push) Successful in 1m35s
    Release / Create release (push) Successful in 7s
    CI / Check desktop app (Linux) (push) Successful in 3m19s
    Release / CLI (linux-aarch64) (push) Successful in 1m3s
    Release / CLI (linux-x86_64) (push) Successful in 1m28s
    Release / Desktop app (linux-aarch64) (push) Successful in 7m16s
    Release / Desktop app (linux-x86_64) (push) Successful in 10m17s
    Release / Desktop app (windows) (push) Successful in 4m54s
    Stable

    lucasrguerra released this 2026-10-30 17:42:10 +00:00 | 10 commits to main since this release

    Fixed

    • deauth_directional had no #[cfg(target_os = "linux")] of its own; every
      non-Linux build failed with a duplicate-definition error and unresolved
      Linux-only imports. v1.0.1 and v1.0.2 never got a working Windows
      desktop app for this reason, and v1.0.2's Linux package was mislabeled
      1.0.1 (the version in Cargo.toml was not bumped). Use v1.0.3.
    Downloads
  • v1.0.2 3fc3febff3

    Sabiá 1.0.2
    Release / App desktop (linux) (push) Successful in 4m48s
    Release / CLI (linux-aarch64) (push) Successful in 1m4s
    Release / CLI (linux-x86_64) (push) Successful in 1m6s
    Release / App desktop (windows) (push) Failing after 3m7s
    Release / Cria a release (push) Successful in 4s
    Stable

    gitea-actions released this 2026-10-30 17:31:56 +00:00 | 12 commits to main since this release

    Fixed

    • The desktop app build on CI looked for its bundle under target/, but the
      runner's Cargo target directory is elsewhere and persists between runs; the
      Linux and Windows jobs failed before publishing anything. v1.0.1's desktop
      app was never published for this reason — use v1.0.2.
    Downloads
  • v1.0.1 c7638a2f4e

    Sabiá 1.0.1
    Release / Cria a release (push) Successful in 4s
    Release / App desktop (linux) (push) Failing after 8m1s
    Release / CLI (linux-aarch64) (push) Successful in 51s
    Release / CLI (linux-x86_64) (push) Successful in 1m13s
    Release / App desktop (windows) (push) Failing after 7m15s
    Stable

    gitea-actions released this 2026-10-30 16:45:15 +00:00 | 14 commits to main since this release

    The project moved from GitHub to Gitea, and the update check followed it.

    Changed

    • Updates now come from Gitea. sabia update and the desktop app's "Update now"
      read the latest release from git.lucasrguerra.dev.br instead of the GitHub API.
      Versions up to 1.0.0 still look at GitHub, which is no longer reachable, so they
      cannot find this release: download 1.0.1 once, and later updates are automatic.
    • Release packages: the CLI for Linux x86_64 and aarch64 (built by the Gitea CI when
      a v* tag is pushed, with a .sha256 next to each package), and the desktop app
      for Linux (.AppImage, .deb) and Windows (NSIS .exe installer, cross-compiled
      from Linux by scripts/build-gui.sh). There is no Windows CLI and no macOS build
      any more
      : the CLI is Linux-only, and macOS needs Apple's SDK and code signing,
      which this project's CI cannot provide.

    Fixed

    • sabia update refuses to run from the desktop app's executable (sabia-gui).
      The release package contains the CLI, and replacing the app with it would have
      broken the app; the app now points to the downloads page instead.
    Downloads
  • v1.0.0 f62e7fd0a1

    Sabiá 1.0.0
    Release / Cria a release (push) Canceled after 0s
    Release / CLI (linux-aarch64) (push) Canceled after 0s
    Release / CLI (linux-x86_64) (push) Canceled after 0s
    Release / CLI (macos-aarch64) (push) Canceled after 0s
    Release / CLI (macos-x86_64) (push) Canceled after 0s
    Release / CLI (windows-x86_64) (push) Canceled after 0s
    Release / App desktop (linux-x86_64) (push) Canceled after 0s
    Release / App desktop (macos-aarch64) (push) Canceled after 0s
    Release / App desktop (macos-x86_64) (push) Canceled after 0s
    Release / App desktop (windows-x86_64) (push) Canceled after 0s
    Release / Publica a release (push) Canceled after 0s
    Stable

    lucasrguerra released this 2026-10-30 15:38:25 +00:00 | 18 commits to main since this release

    First stable release: real-hardware validation across the whole attack surface, a much more complete cracking pipeline, two new attacks (WPS, Evil Twin), a redesigned report, and several reliability fixes found only by testing against live Wi-Fi networks.

    Added

    • Cracking: default dictionary replaced by a 9.7M-password list (rockyou +
      Probable-Wordlists, deduplicated, gzip-embedded); hashcat-style mutation
      rules
      (uppercase, numeric/symbol suffixes, simple leet); mask brute
      force
      (?d?l?u?s?a syntax); .hc22000 export (single or batch) to
      hand a handshake to hashcat/John.
    • WPS attack: PIN/Pixie Dust via a bundled reaver (extracted at
      runtime), or bully when installed on the system.
    • Evil Twin: clones an already-seen AP (open SSID) on a second interface
      with a captive portal, for WPA/WPA2-PSK — the submitted password is only
      accepted after being verified against the real captured handshake, never
      "accepts anything". An Enterprise (802.1X/EAP) variant captures
      credentials automatically via hostapd-wpe, no portal or human action
      needed, since the credential travels in the EAP handshake itself.
    • CCMP traffic decryption for a client once its handshake's password is
      known (Temporal Key derived from the cracked PMK).
    • Channel-interference scoring per band and security findings (open
      network, missing PMF, WPS exposed, possible evil twin by duplicate SSID).
    • Redesigned audit report: full-page cover with embedded logo, table of
      contents, running header/footer via @page margin boxes (current
      section, page numbers), KPI and findings cards with severity colors —
      still paginated by Paged.js in the browser, printable to PDF.
    • ScanSnapshot.warning: tells you when a capture has been running for a
      while without receiving a single frame — a card that accepts turning
      monitor mode on without actually delivering capture (common with
      built-in laptop Wi-Fi) now says so, instead of silently "listening".

    Fixed

    • Handshake capture never completed on real networks: eapol.rs read
      key_info/replay_counter/key_data_len as little-endian; those
      802.1X fields are big-endian. Deauth worked, EAPOL frames were seen, but
      HandshakeTracker silently discarded every one — 0 handshakes no matter
      how much traffic was generated. The project's own synthetic test frames
      made the same mistake symmetrically, so round-trip tests never caught
      it; verified live against a real AP after the fix.
    • Monitor mode fighting NetworkManager: set_monitor() now releases
      the interface from NetworkManager before switching modes and returns it
      afterward — without this, NM reasserted its own connection within
      seconds and capture died with "is in managed mode".
    • Evil Twin left the system half-configured if the process died mid-run
      (Ctrl+C, kill -9, power loss): both interfaces stuck managed=no
      forever, Wi-Fi gone from the system panel. A state file plus a
      self-healing pass on every engine start now undoes this automatically;
      sabia ui also handles SIGINT gracefully.
    • Repeated deauth/disassoc frames were dropped as duplicates after the
      first send — the same Sequence Control was reused on every injection;
      now increments per frame.
    • Network list reordered under the cursor during capture, as signal-based
      sorting reacted to every 1-2 dBm fluctuation; order is now stable
      (arrival order, signal rounded to 4 dBm buckets).
    • "Force handshake" failed if capture had been stopped: it now resumes
      capture automatically and waits for the target to reappear with a known
      channel before starting the job, instead of locking onto whatever
      channel the scanner happened to be hopping through.
    • Attacks tab layout left large empty gaps when two cards of very
      different heights shared a grid row; switched to a masonry-style column
      layout.

    Changed

    • crack_reader/crack_mask parallelize across available cores and reuse
      the HMAC base per iteration instead of reconstructing it — roughly 640x
      faster in release builds versus the original debug/single-thread path.
    Downloads
  • v0.1.0 dab86d1fa7

    Sabiá 0.1.0
    Release / Cria a release (push) Canceled after 0s
    Release / CLI (linux-aarch64) (push) Canceled after 0s
    Release / CLI (linux-x86_64) (push) Canceled after 0s
    Release / CLI (macos-aarch64) (push) Canceled after 0s
    Release / CLI (macos-x86_64) (push) Canceled after 0s
    Release / CLI (windows-x86_64) (push) Canceled after 0s
    Release / App desktop (linux-x86_64) (push) Canceled after 0s
    Release / App desktop (macos-aarch64) (push) Canceled after 0s
    Release / App desktop (macos-x86_64) (push) Canceled after 0s
    Release / App desktop (windows-x86_64) (push) Canceled after 0s
    Release / Publica a release (push) Canceled after 0s
    Stable

    lucasrguerra released this 2026-10-30 15:38:24 +00:00 | 27 commits to main since this release

    First release: CLI, desktop app and shared core.

    Added

    • sabia-core: Wi-Fi interface discovery, monitor mode and channel control
      (via netlink/iw), scanning of 2.4, 5 and 6 GHz, raw 802.11 frame capture
      via AF_PACKET (no libpcap), radiotap and management-frame parsing
      (beacon, probe, EAPOL), aggregation of APs and clients, capture of the
      4-way handshake and PMKID, offline dictionary cracking
      (PBKDF2-HMAC-SHA1, MIC and PMKID) for WPA/WPA2-PSK, .pcap read and write,
      frame injection, a local hash-chained audit trail, and self-update
      from GitHub releases.
    • sabia: CLI with iface (list/channels/monitor), scan, analyze, crack,
      deauth (with --yes), doctor, audit (verify/show), update and ui
      (local interface server).
    • Desktop app (Tauri) with the same interface served by sabia ui, elevating to
      administrator automatically on startup — monitor mode and raw capture require
      root/admin.
    • Interface: interface sidebar, capture panel with an animated signal line,
      networks table with signal bars and color-coded security badges, an
      authorized-use notice, a one-click update button, Auto/Light/Dark
      themes and Portuguese and English language.
    • CI with caches (rust-cache, cached Tauri .deb) and a cross-platform release
      pipeline (CLI on 5 targets and desktop app via tauri-action).
    Downloads