feat: add hashtag channel discovery tool#603
Open
Kpa-clawbot wants to merge 1 commit intomasterfrom
Open
Conversation
Adds cmd/channel-discover, a CLI tool that discovers MeshCore hashtag channel names by brute-forcing SHA256-derived keys against captured GRP_TXT packets. How it works: 1. Extracts undecrypted GRP_TXT packets from CoreScope SQLite DB 2. Generates candidate #channel names from a 480+ word default wordlist 3. Filters by 1-byte channelHash match (1/256 false positive rate) 4. Verifies via full HMAC + AES-128-ECB decryption 5. Reports discovered channels with sample decrypted messages CLI: channel-discover -db <path> [-wordlist file] [-name '#guess'] [-verbose] [-json] Reuses the same crypto from cmd/ingestor/decoder.go (HMAC-SHA256 MAC + AES-128-ECB). Includes tests for key derivation, hash computation, and decryption validation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Channel Discovery Tool
Brute-force discovery of MeshCore hashtag channel names from captured GRP_TXT packets.
How it works
MeshCore hashtag channels derive encryption keys from
SHA256("#channelname")[:16]. ThechannelHashin each packet isSHA256(key)[0]— a 1-byte fingerprint. This tool exploits this by:#channelnames from a 480+ word built-in wordlistCLI
Sample output
(No channels discovered against the fixture DB since those use custom names not in the default wordlist — the tool is designed to work against real-world deployments where common names like
#general,#cascadia, etc. are likely.)Performance
~680K candidates/sec on ARM. SHA256 + AES for each candidate is extremely cheap. A million-word wordlist would complete in ~1.5 seconds.
Built-in wordlist categories (480+ words)
Implementation notes
cmd/ingestor/decoder.gogo-sqlite3Implements channel discovery tool.