{"adoption": {"forks": 120, "observed_at": "2026-08-28T04:03:34.204648+00:00", "stars": 1095}, "canonical_url": "https://ross.abutalabs.com/products/esp32-wifi-hash-monster", "card": {"archived": false, "artifact_type": "application", "description": "WiFi Hash Purple Monster, store EAPOL & PMKID packets in an SD CARD using a M5STACK / ESP32 device", "domain": ["security", "penetration-testing", "hardware"], "enriched": true, "function": ["security", "monitoring", "embedded"], "health_score": 20, "homepage": null, "language": "C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["G4lile0/ESP32-WiFi-Hash-Monster"], "name": "G4lile0/ESP32-WiFi-Hash-Monster", "platform": ["embedded", "iot", "cpp"], "pushed_at": "2023-11-25T16:16:24+00:00", "repo": "G4lile0/ESP32-WiFi-Hash-Monster", "stars": 1095, "tags": ["wifi", "esp32", "m5stack", "eapol", "pmkid", "wpa2-handshake-capture", "sd-card", "packet-sniffer", "pwnagotchi-like"], "topics": [], "urls": [], "use_cases": ["capture wpa2 handshake hashes on esp32", "store eapol and pmkid packets to sd card", "wifi pentesting handheld device", "pwnagotchi alternative on m5stack", "sniff wifi handshakes for hashcat cracking", "monitor deauth and handshake activity on wifi channels"], "what_it_is": "A firmware for M5Stack/ESP32 devices that captures WPA2 EAPOL handshake and PMKID packets over WiFi and stores them on an SD card for later password-cracking analysis. It is a pwnagotchi-inspired packet monitor with channel hopping, deauth detection, and LED/display feedback.", "when_to_avoid": ["you need a general-purpose WiFi scanner or network monitor without hash capture", "you require support for WPA3 or enterprise (non-PSK) handshakes", "you want an actively developed tool - the last release was in 2023"], "when_to_choose": ["you own an M5Stack or ESP32 with SD card and want a portable WiFi handshake capture tool", "you want a pwnagotchi-like device without a Raspberry Pi", "you need EAPOL/PMKID captures for offline dictionary or brute-force attacks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/esp32-wifi-hash-monster", "repo": "G4lile0/ESP32-WiFi-Hash-Monster", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.204648+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:47:13.597352+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "72a73eebbe918fa48e3ebcb1ff6e894f849bf91a425f551dc7282865ab4dc45b", "fetched_at": "2026-08-28T04:03:34.204648+00:00", "kind": "readme", "missing": false, "url": "https://github.com/G4lile0/ESP32-WiFi-Hash-Monster"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2482, "days_push": 1012, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}