yescrypt_crack - Yescrypt Hash Cracker
-
Title: Yescrypt Hash Cracker
Author: cyclone
URL: https://github.com/cyclone-github/yescrypt_crack
Description:pcfg-go - The Fast PCFG
- Probabilistic Context-Free Grammar (PCFG) password generator - Pure Go Edition
- pcfg-go is a Pure Go rewrite of the Python3 pcfg_cracker
- The goal of this Go implementation is to provide a substantial performance improvement for both trainer and guesser over the original Python3 version, while also adding features such as supporting
$HEX[]input and multi-byte character support — which is not implemented in the Pure C pcfg_guesser - Credits for the original python3 pcfg_cracker belong to the author @lakiw
- Rules trained by
pcfg_trainerare compatible with hashcat's new PCFG-a 4attack mode. See the hashcat PCFG implementation commit for details.
Install
pcfg_trainer:
go install -ldflags="-s -w" github.com/cyclone-github/pcfg-go/cmd/pcfg_trainer@mainpcfg_guesser:
go install -ldflags="-s -w" github.com/cyclone-github/pcfg-go/cmd/pcfg_guesser@main
Additions & improvements
- Performance — ~53.94× faster
pcfg_trainerand ~12.16× fasterpcfg_guesservs Python 3 (see Benchmarks below) - $HEX[] input — Trainer accepts
$HEXencoded passwords in the training wordlist (multi-byte support) - Ctrl+C handling — Pressing Ctrl+C auto-saves the session in
pcfg_guesser - Multi-keyboard layouts — QWERTY, AZERTY, QWERTZ, Dvorak, JCUKEN (Russian Cyrillic)
- Expanded TLD list — Legacy TLDs, ccTLDs, gTLDs (
.info,.xyz,.app,.dev, etc.), and short TLDs (.co,.io,.ai,.me,.gg); improves both website and email detection - Improved website detection — Broader URL/prefix detection (
http://,https://,www., etc.) and host extraction - Multi-threaded architecture —
pcfg_guesseris multi-threaded for increased performance - Compiled binary — No fuss; pcfg-go uses compiled binaries for speed and easy deployment
Benchmarks on rockyou training set
pcfg_trainer -r rockyou -t rockyou.txtPython3 trainer: 13m21s (801s)Go pcfg_trainer: 14.85s- Speedup: ~53.94×
pcfg_guesser -r rockyou -n 100000000(100 million guesses written to stdout)Python3 pcfg_guesser: 195.5sGo pcfg_guesser: 16.08s- Speedup: ~12.16×
Usage
pcfg_trainer
Train a new ruleset from wordlist:
pcfg_trainer -r rule_name -t wordlist.txtpcfg_guesser
Generate guesses from a trained ruleset:
pcfg_guesser -r rule_nameSession save/restore:
pcfg_guesser -r rule_name -s my_session # save to my_session.sav on exit pcfg_guesser -r rule_name -s my_session -l # load and resumePress Ctrl+C to save session and exit.
Piping into hashcat
pcfg_guesser -r rule_name -s my_session | hashcat -m 0 hashes.txt...Using trained rules with hashcat -a 4 PCFG mode
hashcat -m 0 -a 4 hashes.txt path_to_pcfg_rule_dir ...
Flags
pcfg_trainer
pcfg-go vs pcfg-python3 flags
Go Python3 Description -r --rule Ruleset name -t --training Training wordlist (required) -e --encoding File encoding -C --comments Config comments -S --save_sensitive Save emails, URLs -p --prefixcount Lines prefixed with count -n --ngram OMEN ngram size (2-5) -a --alphabet Alphabet size for Markov -c --coverage PCFG vs OMEN coverage -m --multiword Pre-train multiword file -h --help Help -version --version Version info pcfg_guesser
pcfg-go vs pcfg-python3 flags
Go Python3 Description -r --rule Ruleset name -s --session Session name -l --load Load previous session -n --limit Max guesses -b --skip_brute Skip OMEN/Markov -a --all_lower No case mangling -d --debug Debug output -h --help Help -version --version Version info
Compile from source (linux)
Requires Go and Git.
git clone https://github.com/cyclone-github/pcfg-go.git cd pcfg-go go mod tidy mkdir -p bin go build -ldflags="-s -w" -o bin/pcfg_trainer ./cmd/pcfg_trainer go build -ldflags="-s -w" -o bin/pcfg_guesser ./cmd/pcfg_guesserInstall to $GOPATH/bin:
go install -ldflags="-s -w" ./cmd/pcfg_trainer go install -ldflags="-s -w" ./cmd/pcfg_guesser - Probabilistic Context-Free Grammar (PCFG) password generator - Pure Go Edition
-
Hi @cyclone . When trying to install the tool either with go install or build it, i got the binary, which gives errors for my AMD GPUS:
❯ yescrypt_crack -h 2507_yescrypt.hash -w ~/org/11_total.txt -------------------------------------------------- | Cyclone's Yescrypt Cracker | | https://github.com/cyclone-github/yescrypt_crack | -------------------------------------------------- Hash file: 2507_yescrypt.hash Total Hashes: 2 CPU Threads: 16 Wordlist: /home/otto/org/11_total.txt Backend: GPU GPU selection: all GPU batch: 864 2026/08/31 09:14:01 Counting wordlist lines... 2026/08/31 09:14:01 Tuning GPU... 2026/08/31 09:14:02 OpenCL GPU 1 (gfx1101) self-test failed: GPU self-test configure failed: OpenCL kernel build failed (-11) [-cl-std=CL1.2 -DYC_N=4096 -DYC_R=32]: ld.lld: error: undefined hidden symbol: block_mix_classic >>> referenced by /tmp/comgr-818210-13-4404ef/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-13-4404ef/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-13-4404ef/input/linked.o:(yescrypt_init) >>> referenced 1 more times ld.lld: error: undefined hidden symbol: smix_rw >>> referenced by /tmp/comgr-818210-13-4404ef/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-13-4404ef/input/linked.o:(yescrypt_init) Error: Creating the executable from LLVM IRs failed. 2026/08/31 09:14:02 OpenCL GPU 0 (gfx1201) self-test failed: GPU self-test configure failed: OpenCL kernel build failed (-11) [-cl-std=CL1.2 -DYC_N=4096 -DYC_R=32]: ld.lld: error: undefined hidden symbol: block_mix_classic >>> referenced by /tmp/comgr-818210-15-ce2159/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-15-ce2159/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-15-ce2159/input/linked.o:(yescrypt_init) >>> referenced 1 more times ld.lld: error: undefined hidden symbol: smix_rw >>> referenced by /tmp/comgr-818210-15-ce2159/input/linked.o:(yescrypt_init) >>> referenced by /tmp/comgr-818210-15-ce2159/input/linked.o:(yescrypt_init) Error: Creating the executable from LLVM IRs failed. 2026/08/31 09:14:02 GPU tuning failed; falling back to CPU 2026/08/31 09:14:02 Working... -
@partly9642
This is a GPU sanity-check failure. When this happens,yescrypt_crackfalls back to CPU mode. The error may indicate an issue with the AMD OpenCL implementation or local OpenCL environment, but further testing is needed to confirm what's actually going on.Please verify that:
- You are running
yescrypt_crackon native Linux or Windows, not WSL or another emulated environment - Your AMD GPU and OpenCL drivers are up to date and working correctly
- The GPU has sufficient VRAM, since yescrypt is memory intensive
If everything checks out and the error persists, please open a GitHub issue:
https://github.com/cyclone-github/yescrypt_crack/issuesPlease include:
- GPU model and VRAM
- AMD driver/OpenCL/ROCm version
- Host OS/version
- Full
yescrypt_crackerror/output
- You are running
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
