Here the implemented extensions based on PDFCrack v.0.11 (by Michael Kuhn and Andreas Meier, July 2009):
Multi-core extension (multiple threads)The additional "-t nrOfThreads" parameter allows to start multiple threads.
If you have a quad core and want to run pdfcrack on three cores (i.e. 3 threads) start pdfcrack with:
- pdfcrack -t3 pdffile
Note2: For 40-bit encoded PDF files, the password search on multiple cores does not scale for more than two threads. The underlying cause is that the password generation (which is mutexed for all threads) takes substantial time in comparison with the password check. If you want to use more than two cores, you could start multiple instances of pdfcrack with different password zones (see blow).
Multi-computer extension (password zones)The additional "-z currentZone/nrOfZones" parameter allows to start multiple instances of the program on multiple machines. You can also start multiple instances of pdfcrack on one machine instead of using the multi-core extension (see above). If you have a cluster of three machines you can start pdfcrack with:
- PC1: pdfcrack -z 1/3 pdffile
- PC2: pdfcrack -z 2/3 pdffile
- PC3: pdfcrack -z 3/3 pdffile
Periodic saving of the progressThe progress of the password search is periodically saved (every 30s) in the file "savestateperiodic.sav". Use this file to recover the password search after a system crash.
- pdfcrack -l savestateperiodic pdffile
Source filesCompile first (call make). On Windows, use cygwin.
Download source files
Fixed Makefile if you have compilations errors (thanks to Kyrill Detinov)
Precompiled for WindowsThanks to cygwin the pdfcrack can be compiled for Windows as well. There is no graphical user interface (GUI): use command prompt (cmd.exe).
Download zip file with precompiled binary (exe)
WordlistThere are various wordlists available online. Just take your favourite search engine and look for "password lists". A good starting point is the openwall project .
|Usage:||pdfcrack -f filename [OPTIONS]|
|-b, --bench||perform benchmark and exit|
|-c, --charset=STRING||Use the characters in STRING as charset|
|-w, --wordlist=FILE||Use FILE as source of passwords to try|
|-n, --minpw=INTEGER||Skip trying passwords shorter than this|
|-m, --maxpw=INTEGER||Stop when reaching this passwordlength|
|-t, --threads=INTEGER||Stop number of threads used (default 0)|
|recommendedfor multi-core systems|
|-l, --loadState=FILE||Continue from the state saved in FILENAME|
|-o, --owner||Work with the ownerpassword|
|-u, --user||Work with the userpassword (default)|
|-p, --password=STRING||Give userpassword to speed up breaking|
|ownerpassword (implies -o)|
|-q, --quiet||Run quietly|
|-s, --permutate||Try permutating the passwords (currently only|
|supports switching first character to uppercase)|
|-v, --version||Print version and exit|
|-z, --zone=INT1/INT2||Run program on multiple hosts (split search space)|