princeprocessor Description

princeprocessor is a standalone password candidate generator using the PRINCE algorithm.

The name PRINCE is used as an abbreviation and stands for PRobability INfinite Chained Elements, which are the building blocks of the algorithm.

Princeprocessor is a password candidate generator that can be thought of as an advanced combinatorial attack. However, instead of taking two different wordlists as input and then outputting all possible two word combinations, princeprocessor has only one input wordlist and builds “strings” of concatenated words. These strings can contain from 1 to N words from the input wordlist, concatenated together. So, for example, if it outputs candidates for passwords of length four, it can generate them using combinations from the input wordlist, such as:

  • 4 letter word
  • 2 letter word + 2 letter word
  • 1 letter word + 3 letter word
  • 3 letter word + 1 letter word
  • 1 letter word + 1 letter word + 2 letter word
  • 1 letter word + 2 letter word + 1 letter word
  • 2 letter word + 1 letter word + 1 letter word
  • 1 letter word + 1 letter word + 1 letter word + 1 letter word

princeprocessor is a reference implementation of a PRINCE attack that generates candidate passwords by intelligently combining words in all possible combinations from a given list of words.


Author: Jens Steube, magnum

License: MIT

princeprocessor Help


princeprocessor [options] [<] wordlist


* Startup:

  -V,  --version             Print version
  -h,  --help                Print help

* Misc:

       --keyspace            Calculate number of combinations

* Optimization:

       --pw-min=NUM          Print candidate if length is greater than NUM
       --pw-max=NUM          Print candidate if length is smaller than NUM
       --elem-cnt-min=NUM    Minimum number of elements per chain
       --elem-cnt-max=NUM    Maximum number of elements per chain
       --wl-dist-len         Calculate output length distribution from wordlist
       --wl-max=NUM          Load only NUM words from input wordlist or use 0 to disable
  -c,  --dupe-check-disable  Disable dupes check for faster initial load
       --save-pos-disable    Save the position for later resume with -s

* Resources:

  -s,  --skip=NUM            Skip NUM passwords from start (for distributed)
  -l,  --limit=NUM           Limit output to NUM passwords (for distributed)

* Files:

  -o,  --output-file=FILE    Output-file

* Amplifier:

       --case-permute        For each word in the wordlist that begins with a letter
                             generate a word with the opposite case of the first letter

princeprocessor Usage Example

Usage example for slow hashes:

princeprocessor < wordlist.dict | hashcat [OPTIONS] target.hash

Usage example for fast hashes (for a more complete use of GPUs):

princeprocessor < wordlist.dict | hashcat [ОПЦИИ] target.hash -r prince_optimized.rule

Using words from the specified dictionary (dict1.OPTIONS), compose chains with a minimum length of 2 elements (--elem-cnt-min=2) and a maximum length of 2 elements (--elem-cnt-max=2), that is, each chain will contain only 2:

princeprocessor --elem-cnt-min=2 --elem-cnt-max=2 dict1.txt

How to install princeprocessor

Installation on Kali Linux

sudo apt install princeprocessor

Installation on Debian, Linux Mint, Ubuntu

sudo apt install git
git clone
cd princeprocessor/src
./pp64.bin -h


./pp64.bin [options] [<] wordlist

Installation on BlackArch

The program is pre-installed on BlackArch.

sudo pacman -S princeprocessor

Installation on Windows

Go to the official website of the program: and download the “princeprocessor-*.7z” archive.

Unzip the downloaded folder.

To fully work with the program, you need to run it on the command line. If you do not know what this is, then read the article “How to set up the PowerShell environment on Windows and Linux”.

An example of starting a program on Windows:

1. Let's open PowerShell - for this press Win+x and select “Windows PowerShell”.

2. Suppose the pp64.exe file is located in the c:\princeprocessor-0.22\ folder, go to it using the cd command:

cd c:\princeprocessor-0.22\

3. To compose a new dictionary, run a command of the form:

.\pp64.exe 'C:\PATH\TO\DICTIONARY.txt'

For example, the dictionary is located in the same folder as princeprocessor and is called dict1.txt, then the command to run is as follows:

.\pp64.exe dict1.txt

The generated lines will be output to the console, to save them to a file, use a construction like this:


For instance:

.\pp64.exe dict1.txt > new_dic.txt

princeprocessor Screenshots

princeprocessor Tutorials

Related tools

Recommended for you:

Comments are Closed