GPU/CPU Rule Engineering Toolkit
Hashcat Rules Suite
A complete suite of specialized tools for Hashcat rule processing — deduplication, ranking, generation, benchmarking, and extraction.
OpenCL GPU
Multi-Core CPU
NumPy Optimized
Python Engine
Memory-Mapped I/O
Interactive Mode
MAB Algorithm
Signature Dedup
Efficiency Analytics
10Specialized Tools
500K+Rules Supported
50×Loading Speed
GPUAccelerated
Complete Engineering Workflow
From intelligent deduplication and statistical analysis to GPU-accelerated ranking with memory-mapped loading, performance benchmarking, and automated rule extraction.
Rulest
Concentrator
Ranker
Aether
Minimizer
Cleaner
Email Extractor
pot2dict
OpenCL
Efficiency
Kernel Builder
Unigen
pot2dict Rust · Multithreaded CLI
Core Features
∥
Parallel mmap counting
Input files are memory-mapped and chunked at newline boundaries, counted concurrently across all cores via rayon.
⇄
Sharded global counter
A DashMap-backed counter avoids single-lock contention, so processing many small files scales cleanly.
⇊
Gzip + Zstandard input
Reads .gz and .zst wordlists/pot files directly, no manual decompression step.
⊞
Memory-aware sorting
Sorts in-memory when it fits your RAM budget; otherwise spills to disk with an external k-way merge sort.
Processing Workflow
Step 1
Extract passwords
Pull the password field from pot-style hash:password lines or plain wordlists.
Step 2
Count in parallel
Per-chunk local maps are built lock-free, then folded into a sharded global counter.
Step 3
Sort
Alphabetical (unique) or by frequency, in-memory or via external merge sort once RAM budget is exceeded.
Step 4
Write output
Buffered or, for very large outputs, mmap-based parallel write straight into the destination file.
Minimizer Pure Python · CPU-only
Core Features
∑
Signature-based dedup
Computes output tuple across all probes. Rules with identical signatures are functionally equivalent and removed.
⌗
Built-in 30-word probe set
Covers short/long words, mixed-case, digits, specials, repeated chars. No external wordlist needed.
+
Extensible probes
Add words via --extra-probes or sample from a wordlist with --probe-file.
Processing Workflow
Step 1
Assemble probe set
Built-in words + extra-probes + sampled from probe-file, deduplicated.
Step 2
Apply rules
Pure-Python interpreter applies each rule to every probe word.
Step 3
Compute signatures
Collect all transformed outputs into a tuple per rule.
Step 4
Deduplicate
Dict maps signature → first rule seen. Duplicates discarded, order preserved.
Concentrator v3.0 GPU · OpenCL
Core Features
⚡
OpenCL GPU acceleration
Massively parallel rule processing for fast generation and validation.
~
Markov chain modeling
Statistical n-gram analysis for high-probability rule synthesis.
⤳
Interactive mode
Live session for iterative rule exploration and real-time feedback.
∏
Combinatorial math
Pareto Curve Analysis
Processing ruleflow
Step 1
Load wordlist & rules
Memory-mapped loading for maximum throughput.
Step 2
Markov analysis
Build n-gram model of character transitions.
Step 3
GPU rule generation
OpenCL kernel applies and validates candidate rules in parallel.
Step 4
Score & filter
Rank by hit rate, filter by threshold, export ranked ruleset.
Ranker v5.0 GPU · MAB
Core Features
∞
Multi-Armed Bandit ranking
MAB with Early Elimination allocates compute to top performers, converging fast.
⚡
Memory-mapped loading
50× faster rule file loading via OS-level mmap. Handles 16,000+ rules.
↑
NumPy-optimized scoring
Vectorized hit counting and confidence interval computation.
Ranking Workflow
Step 1
mmap rule files
Load thousands of rules into virtual memory instantly.
Step 2
GPU batch test
OpenCL evaluates each rule against hash corpus in parallel.
Step 3
MAB exploration
Bandit allocates more trials to high-confidence rules.
Step 4
Ranked export
Output sorted by hit rate. Compatible with all Hashcat modes.
Rulest GPU · Statistical
Core Features
∫
Statistical analysis
Character frequency, bigram, and transformation analysis across corpora.
↑
Frequency-based ranking
Rules ordered by coverage probability from real-world data.
⚙
Automated ruleflow
End-to-end from raw wordlist to optimized, ready-to-use ruleset.
Generation ruleflow
Step 1
Corpus analysis
Extract statistical patterns from training wordlist.
Step 2
Rule candidate synthesis
Generate candidates from patterns with leetspeak and chaining.
Step 3
GPU scoring
Evaluate candidates against held-out corpus via OpenCL.
Step 4
Export ranked rules
Produce final .rule file sorted by coverage.
Rule Cleaner Browser · Client-side
Core Features
🔒
Client-side processing
All parsing happens in your browser — no server uploads, full privacy.
↑
100MB file support
Handles large log and rule files efficiently in-browser memory.
✓
Simulate mode
Preview which rules would be removed before downloading cleaned file.
Cleaning Workflow
Step 1
Upload files
Upload Hashcat log file + the rule file to clean (100MB max each).
Step 2
Parse log
Extract invalid line numbers from startup error messages.
Step 3
Remove invalid rules
Filter rule file, keeping only lines not flagged as invalid.
Step 4
Download & auto-clean
Cleaned file downloads, memory freed automatically.
OpenCL Kernel GPU · C/OpenCL
Core Features
≡
Complete rule implementation
All Hashcat rules implemented for GPU parallel processing.
⚡
GPU optimization
Kernel code written for coalesced memory access and warp efficiency.
⊞
Production-ready
Used by Aether and Ranker — battle-tested in real cracking sessions.
Supported Rule Categories
Case modification rules
Capitalize, lowercase, uppercase, toggle, reverse-case.
Substitution & replacement
Character swap, overstrike, purge by value.
Prefix & suffix operations
Prepend, append, multi-char padding.
Position & memory ops
Extract, omit, rotate, memorize, restore.
Ruleset Efficiency Analytics Interactive Charts
Core Metrics
∑
Efficiency metric
(%Recovered ÷ Rules Count) × 1000 — find the best return per rule.
◈
Golden Zone identification
Scatter plot showing efficiency vs. rules count on log scale.
⌗
Tier leaders
Best recovery % in small, medium, large, and ultra categories.
Strategic Recommendations
⚡ Speedrun / CTF
Robot-Best10 (136k eff), conc_MT_250 (40k eff)
🛠️ Daily Workflow
HashMob.20k (31.08% rec), conc_MT_25000 (31.82% rec)
🌑 Overnight / Long
misty.rule (45.22% rec), Fordyv4a (56.94% rec)
📊 Full interactive dashboard
View scatter plots, bar charts, and balanced pick tables.
KernelBuilder PHP-like Expression Parser
Core Features
⚡
PHP-like expression parser
Intuitive syntax like md5($plain.$salt) or sha1(md5($plain)) — no OpenCL knowledge required.
🔗
Nested hash chaining
Arbitrarily deep nesting of MD5, SHA1, SHA224, and SHA256, flattened into optimized instruction sequences.
🎯
Three attack modes
Generates pure kernels for -a 0 (rules), -a 1 (combinator), and -a 3 (mask/brute-force) automatically.
Supported Hash Algorithms
MD5
16-byte digest, little-endian, 80-bit padding, 14-bit length counter.
SHA1
20-byte digest, big-endian, 80-bit padding, 15-bit length counter.
SHA224 / SHA256
28- and 32-byte digests, big-endian, shared padding scheme.
UNIGEN Unicode Password Generator
Core Features
∞
400+ Unicode character pool
Seven distinct sets — Latin, Cyrillic, CJK & Kana, Greek, Math/Symbols, Dingbats — plus a live "Source Code" set.
📊
Live entropy feedback
Pool size, Shannon entropy, and strength rating update in real time as you toggle character sets.
🔐
AES-256-GCM encrypt & shred
PBKDF2-HMAC-SHA256 @ 600K iterations, then multi-pass secure shred of the plaintext.
Password Generator Workflow
Step 1
Configure parameters
Set length (8–128) and count (1–10,000). Toggle character sets — entropy updates live.
Step 2
Generate passwords
Uses Python's secrets module for cryptographically secure random selection.
Step 3
Copy, save, or encrypt
Clipboard-manager-safe copy, plaintext save, or one-click encrypt & shred archival.
About This Project
This entire project — rulest, concentrator, and all the tooling around it — was built
purely as a hobby and learning exercise. There was no grand plan, just
curiosity about whether frequency analysis on debug output could produce better rules
than manual curation or purely random generation. Turns out: yes, noticeably so.
If you find the tools or the methodology useful, great. If you have ideas for improvement,
the repos are open. And if you just enjoy poking at this kind of thing for the same
reason — have fun.