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

Home | Donate | GitHub | Matrix Chat | PrivateBin | Rules

  1. Home
  2. Tools
  3. Text / Wordlist / Rules
  4. pcfg-go

pcfg-go

Scheduled Pinned Locked Moved Text / Wordlist / Rules
3 Posts 1 Posters 154 Views 1 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 last edited by cyclone
    #1

    Title: pcfg-go
    Author: cyclone
    URL: https://github.com/cyclone-github/pcfg-go
    Description: Probabilistic Context Free Grammar (PCFG) password generator in Pure Go

    Readme Card

    Go Report Card GitHub issues License GitHub release Go Reference

    pcfg-go

    • 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 over the original Python3 version, while also adding features such as supporting $HEX[] input/output and multi-byte character support — which is not implemented in the Pure C pcfg_guesser
      • While the general functionality of pcfg-go is tested and working, this tool is still beta, so please report any issues you run across
      • Credits for the original python3 pcfg_cracker belong to the author, lakiw

    Install

    trainer:

    go install github.com/cyclone-github/pcfg-go/cmd/trainer@main
    

    pcfg_guesser:

    go install github.com/cyclone-github/pcfg-go/cmd/pcfg_guesser@main
    

    Additions & improvements

    • Performance — ~3× faster trainer, ~40× faster pcfg_guesser (see Benchmarks)
    • $HEX[] input — Trainer accepts $HEX encoded passwords in the training wordlist (multi-byte support)
    • Ctrl+C handling — Pressing Ctrl+C auto saves session on pcfg_guesser
    • Multi-keyboard layouts — QWERTY, AZERTY, QWERTZ, Dvorak, JCUKEN (Russian Cyrillic)
    • Expanded TLD list — Legacy, 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 runtime, so fuss; pcfg-go uses statically compiled binaries for speed and easy deployment

    Benchmarks

    trainer

    • 1 million password training set
      • Python3 trainer: 97.2 seconds
      • Go trainer: ~32 seconds
      • Go trainer ~3× faster (~204% gain)

    pcfg_guesser

    • benchmark:
      • Python3 pcfg_guesser ~280 K/s
      • Go pcfg_guesser ~11.4 M/s
      • Go pcfg_guesser ~40× faster (~3970% gain)

    Usage

    trainer

    Train a new ruleset from wordlist:

    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...
    

    Flags

    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

    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/trainer ./cmd/trainer
    go build -ldflags="-s -w" -o bin/pcfg_guesser ./cmd/pcfg_guesser
    

    Install to $GOPATH/bin:

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

    Compile from source how-to

    Sysadmin by day | 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
      #2

      https://github.com/cyclone-github/pcfg-go/releases/tag/v0.5.0

      v0.5.0; 2026-03-16

      initial github release
      
      ### Overview
      Pure Go rewrite of the Python3 `pcfg_cracker`, designed as a near drop-in replacement with significant performance gains and expanded features
      
      ### Highlights
      ~3× faster trainer
      ~40× faster pcfg_guesser
      `$HEX[]` input/output support
      Full multi-byte / Unicode support (not supported in Compiled C Edition)
      Improved and expanded keyboard detection: Fixed/tuned: QWERTY, JCUKEN Added: AZERTY, QWERTZ, Dvorak
      Expanded detection for TLDs, URLs, and emails in trainer
      Auto-save and resume support in pcfg_guesser
      Multi-threaded for high-throughput performance
      

      Sysadmin by day | 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

        v0.5.1; 2026-03-17
        https://github.com/cyclone-github/pcfg-go/releases/tag/v0.5.1

        fix: unicode handling
        tweak: session save/restore
        

        Sysadmin by day | 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


        Who's Online [Full List]

        11 users active right now (4 members and 7 guests).
        hashpwn-bot, frodowithabs, cyclone, danail

        Board Statistics

        Our members have made a total of 11.2k posts in 180 topics.
        We currently have 383 members registered.
        Please welcome our newest member, ShrillWallet72.
        The most users online at one time was 49 on Thursday, December 26, 2024.

        • Login

        • Don't have an account? Register

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