Skip to content
  • Categories
  • Recent
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Slate)
  • No Skin
Collapse
Brand Logo

hashpwn

  1. Home
  2. Tools
  3. Hash Cracking
  4. yescrypt_crack - Yescrypt Hash Cracker

yescrypt_crack - Yescrypt Hash Cracker

Scheduled Pinned Locked Moved Hash Cracking
6 Posts 2 Posters 1.2k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • cycloneC Online
    cycloneC Online
    cyclone
    Admin Trusted
    wrote on last edited by cyclone
    #1

    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_trainer are compatible with hashcat's new PCFG -a 4 attack 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@main
    

    pcfg_guesser:

    go install -ldflags="-s -w" github.com/cyclone-github/pcfg-go/cmd/pcfg_guesser@main
    

    Additions & improvements

    • Performance — ~53.94× faster pcfg_trainer and ~12.16× faster pcfg_guesser vs Python 3 (see Benchmarks below)
    • $HEX[] input — Trainer accepts $HEX encoded 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_guesser is 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.txt

    • Python3 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.5s
    • Go pcfg_guesser: 16.08s
    • Speedup: ~12.16×

    Usage

    pcfg_trainer

    Train a new ruleset from wordlist:

    pcfg_trainer -r rule_name -t wordlist.txt
    

    pcfg_guesser

    Generate guesses from a trained ruleset:

    pcfg_guesser -r rule_name
    

    Session 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 resume
    

    Press 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_guesser
    

    Install to $GOPATH/bin:

    go install -ldflags="-s -w" ./cmd/pcfg_trainer
    go install -ldflags="-s -w" ./cmd/pcfg_guesser
    

    Sysadmin by day | Ethical hacker by night | Go Dev | hashpwn
    3x RTX 4090 3x RTX 2080ti
    Forum Rules

    1 Reply Last reply
    👍
    2
    • cycloneC Online
      cycloneC Online
      cyclone
      Admin Trusted
      wrote on last edited by
      #2

      Source code v0.2.0; 2025-03-06 uploaded to GitHub.
      https://github.com/cyclone-github/yescrypt_crack

      Sysadmin by day | Ethical hacker by night | Go Dev | hashpwn
      3x RTX 4090 3x RTX 2080ti
      Forum Rules

      1 Reply Last reply
      👍
      0
      • cycloneC Online
        cycloneC Online
        cyclone
        Admin Trusted
        wrote last edited by
        #3

        Release v0.3.1; 2026-08-08
        https://github.com/cyclone-github/yescrypt_crack/releases/tag/v0.3.1

        add gost-yescrypt support
        

        Sysadmin by day | Ethical hacker by night | Go Dev | hashpwn
        3x RTX 4090 3x RTX 2080ti
        Forum Rules

        1 Reply Last reply
        👍
        1
        • cycloneC Online
          cycloneC Online
          cyclone
          Admin Trusted
          wrote last edited by
          #4

          v0.4.0-dev adds OpenCL support. Thanks to @64nickel for testing on his 12x 4090 cluster.
          https://infosec.exchange/@cyclone/117134021102477783

          c2891126-3725-40c2-af3e-788417c25351-image.jpeg

          Sysadmin by day | Ethical hacker by night | Go Dev | hashpwn
          3x RTX 4090 3x RTX 2080ti
          Forum Rules

          1 Reply Last reply
          👍
          0
          • P Offline
            P Offline
            Partly9642
            wrote last edited by
            #5

            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...
            
            1 Reply Last reply
            0
            • cycloneC Online
              cycloneC Online
              cyclone
              Admin Trusted
              wrote last edited by
              #6

              @partly9642
              This is a GPU sanity-check failure. When this happens, yescrypt_crack falls 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_crack on 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/issues

              Please include:

              • GPU model and VRAM
              • AMD driver/OpenCL/ROCm version
              • Host OS/version
              • Full yescrypt_crack error/output

              Sysadmin by day | Ethical hacker by night | Go Dev | hashpwn
              3x RTX 4090 3x RTX 2080ti
              Forum Rules

              1 Reply Last reply
              0

              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
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              homogenous-expeditionary
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent