How strongwind1/wpawolf works
WPAWolf is a Rust command-line extractor that turns packet captures into WPA-family handshake and PMKID hashes for hashcat, plus optional auxiliary lists and logs. Its main workflow ingests pcap, pcapng, and gzip inputs, decodes supported link headers and 802.11 frames, collects messages and PMKIDs, pairs EAPOL messages across files, and emits configured sinks. The README documents broad phases and capabilities; some handler and output internals are unsampled, so those relationships are shown only where documented or indexed.
Main entry points: extract/mod.rs Frame extraction · output/mod.rs Hash emission · pair/mod.rs Pairing orchestrator · main.rs CLI orchestration
Components 23
Capture ingest
- CLI orchestration
src/main.rs - Capture readers
src/input/mod.rs
Frame decoding
- Link decoding
src/link/mod.rs - 802.11 parsing
src/ieee80211/frame.rs - EAPOL parsing
src/ieee80211/eapol.rs - IE and RSN parsing
src/ieee80211/rsn.rs
Extraction and stores
- Frame extraction
src/extract/mod.rs - Auth PMKID extraction
src/extract/auth.rs - EAPOL message store
src/store/messages.rs - PMKID store
src/store/pmkid.rs - Auxiliary stores
src/store/auxiliary.rs - ESSID history
src/store/essid.rs
Pairing and output
- Pairing orchestrator
src/pair/mod.rs - Combo generation
src/pair/combos.rs - Hash emission
src/output/mod.rs - Hashcat formats
src/output/hashcat.rs - Auxiliary outputs
src/output/wordlists.rs
Run operations
- Disk-backed fallback
src/store/disk_messages.rs - Run statistics
src/stats.rs - Processing log
src/log.rs
Other components
- Operator
- Capture files
- hashcat
Connections 23
- Operator → CLI orchestration: configures run
README.md - Capture files → Capture readers: reads captures
README.md - CLI orchestration → Capture readers: selects inputs
src/main.rs - Capture readers → Link decoding: provides packets
README.md - Link decoding → 802.11 parsing: strips headers
src/link/mod.rs - 802.11 parsing → Frame extraction: dispatches frames
README.md - Frame extraction → EAPOL parsing: parses EAPOL
- Frame extraction → IE and RSN parsing: reads RSN data
- Frame extraction → EAPOL message store: collects messages
README.md - Auth PMKID extraction → PMKID store: stores PMKIDs
src/extract/auth.rs - Frame extraction → Auxiliary stores: collects auxiliary data
README.md - Frame extraction → ESSID history: records ESSIDs
- Pairing orchestrator → EAPOL message store: reads messages
src/pair/mod.rs - Pairing orchestrator → Combo generation: generates pairs
src/pair/mod.rs - Pairing orchestrator → Hash emission: delivers pairs
README.md - Hash emission → PMKID store: emits PMKIDs
src/output/mod.rs - Hash emission → ESSID history: resolves ESSIDs
src/output/mod.rs - Hash emission → Hashcat formats: formats hashes
src/output/mod.rs - Hash emission → Auxiliary outputs: writes lists
README.md - Hash emission → hashcat: writes crackable hashes
README.md - EAPOL message store → Disk-backed fallback: spills under pressure
src/store/messages.rs - CLI orchestration → Run statistics: reports run
README.md - Frame extraction → Processing log: logs anomalies