# leadrogue/wiflux architecture

> Architecture diagram of the GitHub repository leadrogue/wiflux, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/leadrogue/wiflux
- Repository: https://github.com/leadrogue/wiflux

## Overview

Wiflux is a Linux wireless security auditor: a user configures and starts a scan, reviews prioritized access points in the live terminal UI, selects targets, and runs applicable capture and cracking attacks. Distinct paths cover network discovery, attack selection, handshake/PMKID/WEP/WPS capture, hash validation and cracking, and durable results. The graph preserves README-documented radio-band, deauth, transition, WPS, and crack-ladder capabilities; those details are documented but their full implementation wiring was not sampled.

Main entry points: [`wiflux/attacks/base.py`](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/base.py) (Attack base), [`wiflux/cli.py`](https://github.com/leadrogue/wiflux/blob/main/wiflux/cli.py) (CLI), [`wiflux/orchestrator.py`](https://github.com/leadrogue/wiflux/blob/main/wiflux/orchestrator.py) (Attack planner), [`wiflux/attacks/handshake.py`](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/handshake.py) (Handshake capture)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["CLI and interface"]
  node_cli["CLI<br/>[cli.py]"]
  node_config["Configuration<br/>[config.py]"]
  node_ui["Live terminal UI<br/>[display.py]"]
  node_progress["Progress controls<br/>[progress.py]"]
end

subgraph group_discovery["Discovery and targets"]
  node_scanner["Wireless scanner<br/>[scanner.py]"]
  node_models["AP and scan models<br/>[models.py]"]
end

subgraph group_attacks["Attack workflows"]
  node_orchestrator["Attack planner<br/>[orchestrator.py]"]
  node_handshake["Handshake capture<br/>[handshake.py]"]
  node_pmkid["PMKID capture<br/>[pmkid.py]"]
  node_wep["WEP attack<br/>[wep.py]"]
  node_wps["WPS attacks<br/>[wps.py]"]
  node_attackbase["Attack base<br/>[base.py]"]
  node_adaptive["Adaptive deauth<br/>[adaptive_deauth.py]"]
  node_deauth["Deauth dispatch<br/>[deauth_backends.py]"]
  node_radio["Radio and capture tools"]
end

subgraph group_cracking["Cracking and results"]
  node_hashcat["Hashcat integration<br/>[hashcat.py]"]
  node_checkpoint["Crack checkpoints"]
  node_ladder["Crack stages<br/>[crack_ladder.py]"]
  node_store[("Results store<br/>[results.py]")]
end

subgraph group_runtime["Runtime support"]
  node_dependencies["Dependency check<br/>[dependencies.py]"]
end

node_user(("Auditor"))
node_wireless{{"Wireless adapter"}}
node_attacktools{{"Wireless attack tools"}}
node_wordlist["Wordlists"]

node_user -->|"sets options"| node_cli
node_cli -->|"builds config"| node_config
node_cli -->|"checks tools"| node_dependencies
node_cli -->|"renders screens"| node_ui
node_cli -->|"starts scan"| node_scanner
node_scanner -->|"scans bands"| node_wireless
node_scanner -->|"builds APs"| node_models
node_scanner -->|"reports targets"| node_progress
node_progress -->|"updates display"| node_ui
node_user -->|"selects targets"| node_progress
node_cli -->|"starts attacks"| node_orchestrator
node_orchestrator -->|"checks results"| node_store
node_orchestrator -->|"runs applicable"| node_handshake
node_orchestrator -->|"runs applicable"| node_pmkid
node_orchestrator -->|"runs applicable"| node_wep
node_orchestrator -->|"runs applicable"| node_wps
node_handshake -->|"uses cracking"| node_attackbase
node_pmkid -->|"uses cracking"| node_attackbase
node_wep -->|"uses cracking"| node_attackbase
node_wps -->|"uses cracking"| node_attackbase
node_handshake -->|"tunes cycles"| node_adaptive
node_handshake -->|"dispatches deauth"| node_deauth
node_handshake -->|"captures traffic"| node_radio
node_pmkid -->|"captures PMKID"| node_radio
node_wps -->|"runs WPS tools"| node_radio
node_wep -->|"runs WEP tools"| node_radio
node_deauth -->|"runs backend"| node_attacktools
node_radio -->|"invokes tools"| node_attacktools
node_attackbase -->|"builds crack stages"| node_ladder
node_attackbase -->|"resumes or saves"| node_checkpoint
node_attackbase -->|"runs cracking"| node_hashcat
node_attackbase -->|"reads candidates"| node_wordlist
node_hashcat -->|"invokes hashcat"| node_attacktools
node_attackbase -->|"records results"| node_store
node_cli -->|"queries or exports"| node_store

click node_cli "https://github.com/leadrogue/wiflux/blob/main/wiflux/cli.py"
click node_config "https://github.com/leadrogue/wiflux/blob/main/wiflux/config.py"
click node_ui "https://github.com/leadrogue/wiflux/blob/main/wiflux/display.py"
click node_progress "https://github.com/leadrogue/wiflux/blob/main/wiflux/progress.py"
click node_scanner "https://github.com/leadrogue/wiflux/blob/main/wiflux/scanner.py"
click node_models "https://github.com/leadrogue/wiflux/blob/main/wiflux/models.py"
click node_orchestrator "https://github.com/leadrogue/wiflux/blob/main/wiflux/orchestrator.py"
click node_handshake "https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/handshake.py"
click node_pmkid "https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/pmkid.py"
click node_wep "https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/wep.py"
click node_wps "https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/wps.py"
click node_attackbase "https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/base.py"
click node_adaptive "https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/adaptive_deauth.py"
click node_deauth "https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/deauth_backends.py"
click node_radio "https://github.com/leadrogue/wiflux/tree/main/wiflux/tools"
click node_hashcat "https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/hashcat.py"
click node_checkpoint "https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/crack_checkpoint.py"
click node_ladder "https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/crack_ladder.py"
click node_store "https://github.com/leadrogue/wiflux/blob/main/wiflux/results.py"
click node_dependencies "https://github.com/leadrogue/wiflux/blob/main/wiflux/dependencies.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_config,node_ui,node_progress toneBlue
class node_scanner,node_models toneAmber
class node_orchestrator,node_handshake,node_pmkid,node_wep,node_wps,node_attackbase,node_adaptive,node_deauth,node_radio toneMint
class node_hashcat,node_checkpoint,node_ladder,node_store toneRose
class node_dependencies,node_user,node_wireless,node_attacktools,node_wordlist toneIndigo
```

## Components

### CLI and interface

- [CLI](https://github.com/leadrogue/wiflux/blob/main/wiflux/cli.py): `wiflux/cli.py`
- [Configuration](https://github.com/leadrogue/wiflux/blob/main/wiflux/config.py): `wiflux/config.py`
- [Live terminal UI](https://github.com/leadrogue/wiflux/blob/main/wiflux/display.py): `wiflux/display.py`
- [Progress controls](https://github.com/leadrogue/wiflux/blob/main/wiflux/progress.py): `wiflux/progress.py`

### Discovery and targets

- [Wireless scanner](https://github.com/leadrogue/wiflux/blob/main/wiflux/scanner.py): `wiflux/scanner.py`
- [AP and scan models](https://github.com/leadrogue/wiflux/blob/main/wiflux/models.py): `wiflux/models.py`

### Attack workflows

- [Attack planner](https://github.com/leadrogue/wiflux/blob/main/wiflux/orchestrator.py): `wiflux/orchestrator.py`
- [Handshake capture](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/handshake.py): `wiflux/attacks/handshake.py`
- [PMKID capture](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/pmkid.py): `wiflux/attacks/pmkid.py`
- [WEP attack](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/wep.py): `wiflux/attacks/wep.py`
- [WPS attacks](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/wps.py): `wiflux/attacks/wps.py`
- [Attack base](https://github.com/leadrogue/wiflux/blob/main/wiflux/attacks/base.py): `wiflux/attacks/base.py`
- [Adaptive deauth](https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/adaptive_deauth.py): `wiflux/tools/adaptive_deauth.py`
- [Deauth dispatch](https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/deauth_backends.py): `wiflux/tools/deauth_backends.py`
- [Radio and capture tools](https://github.com/leadrogue/wiflux/tree/main/wiflux/tools): `wiflux/tools`

### Cracking and results

- [Hashcat integration](https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/hashcat.py): `wiflux/tools/hashcat.py`
- [Crack checkpoints](https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/crack_checkpoint.py): `wiflux/tools/crack_checkpoint.py`
- [Crack stages](https://github.com/leadrogue/wiflux/blob/main/wiflux/tools/crack_ladder.py): `wiflux/tools/crack_ladder.py`
- [Results store](https://github.com/leadrogue/wiflux/blob/main/wiflux/results.py): `wiflux/results.py`

### Runtime support

- [Dependency check](https://github.com/leadrogue/wiflux/blob/main/wiflux/dependencies.py): `wiflux/dependencies.py`

### Other components

- **Auditor**
- **Wireless adapter**
- **Wireless attack tools**
- **Wordlists**

## Connections

- Auditor → CLI: sets options
- CLI → Configuration: builds config
- CLI → Dependency check: checks tools
- CLI → Live terminal UI: renders screens
- CLI → Wireless scanner: starts scan
- Wireless scanner → Wireless adapter: scans bands
- Wireless scanner → AP and scan models: builds APs
- Wireless scanner → Progress controls: reports targets
- Progress controls → Live terminal UI: updates display
- Auditor → Progress controls: selects targets
- CLI → Attack planner: starts attacks
- Attack planner → Results store: checks results
- Attack planner → Handshake capture: runs applicable
- Attack planner → PMKID capture: runs applicable
- Attack planner → WEP attack: runs applicable
- Attack planner → WPS attacks: runs applicable
- Handshake capture → Attack base: uses cracking
- PMKID capture → Attack base: uses cracking
- WEP attack → Attack base: uses cracking
- WPS attacks → Attack base: uses cracking
- Handshake capture → Adaptive deauth: tunes cycles
- Handshake capture → Deauth dispatch: dispatches deauth
- Handshake capture → Radio and capture tools: captures traffic
- PMKID capture → Radio and capture tools: captures PMKID
- WPS attacks → Radio and capture tools: runs WPS tools
- WEP attack → Radio and capture tools: runs WEP tools
- Deauth dispatch → Wireless attack tools: runs backend
- Radio and capture tools → Wireless attack tools: invokes tools
- Attack base → Crack stages: builds crack stages
- Attack base → Crack checkpoints: resumes or saves
- Attack base → Hashcat integration: runs cracking
- Attack base → Wordlists: reads candidates
- Hashcat integration → Wireless attack tools: invokes hashcat
- Attack base → Results store: records results
- CLI → Results store: queries or exports
