.. | ||
m00000.pm | ||
m00010.pm | ||
m00011.pm | ||
m00012.pm | ||
m00020.pm | ||
m00021.pm | ||
m00022.pm | ||
m00023.pm | ||
m00030.pm | ||
m00040.pm | ||
m00050.pm | ||
m00060.pm | ||
m00100.pm | ||
m00101.pm | ||
m00110.pm | ||
m00111.pm | ||
m00112.pm | ||
m00120.pm | ||
m00121.pm | ||
m00122.pm | ||
m00124.pm | ||
m00125.pm | ||
m00130.pm | ||
m00131.pm | ||
m00132.pm | ||
m00133.pm | ||
m00140.pm | ||
m00141.pm | ||
m00150.pm | ||
m00160.pm | ||
m00200.pm | ||
m00300.pm | ||
m00400.pm | ||
m00500.pm | ||
m00600.pm | ||
m00900.pm | ||
m01000.pm | ||
m01100.pm | ||
m01300.pm | ||
m01400.pm | ||
m01410.pm | ||
m01411.pm | ||
m01420.pm | ||
m01421.pm | ||
m01430.pm | ||
m01440.pm | ||
m01441.pm | ||
m01450.pm | ||
m01460.pm | ||
m01500.pm | ||
m01600.pm | ||
m01700.pm | ||
m01710.pm | ||
m01711.pm | ||
m01720.pm | ||
m01722.pm | ||
m01730.pm | ||
m01731.pm | ||
m01740.pm | ||
m01750.pm | ||
m01760.pm | ||
m01800.pm | ||
m02100.pm | ||
m02400.pm | ||
m02410.pm | ||
m02500.pm | ||
m02600.pm | ||
m02611.pm | ||
m02612.pm | ||
m02711.pm | ||
m02811.pm | ||
m03000.pm | ||
m03100.pm | ||
m03200.pm | ||
m03710.pm | ||
m03711.pm | ||
m03800.pm | ||
m03910.pm | ||
m04010.pm | ||
m04110.pm | ||
m04300.pm | ||
m04400.pm | ||
m04500.pm | ||
m04520.pm | ||
m04521.pm | ||
m04522.pm | ||
m04700.pm | ||
m04710.pm | ||
m04711.pm | ||
m04800.pm | ||
m04900.pm | ||
m05100.pm | ||
m05300.pm | ||
m05400.pm | ||
m05500.pm | ||
m05600.pm | ||
m05700.pm | ||
m05800.pm | ||
m06000.pm | ||
m06100.pm | ||
m06300.pm | ||
m06400.pm | ||
m06500.pm | ||
m06600.pm | ||
m06700.pm | ||
m06800.pm | ||
m06900.pm | ||
m07000.pm | ||
m07100.pm | ||
m07200.pm | ||
m07300.pm | ||
m07400.pm | ||
m07401.pm | ||
m07500.pm | ||
m07700.pm | ||
m07701.pm | ||
m07800.pm | ||
m07801.pm | ||
m07900.pm | ||
m08000.pm | ||
m08100.pm | ||
m08200.pm | ||
m08300.pm | ||
m08400.pm | ||
m08500.pm | ||
m08600.pm | ||
m08700.pm | ||
m08900.pm | ||
m09100.pm | ||
m09200.pm | ||
m09300.pm | ||
m09400.pm | ||
m09500.pm | ||
m09600.pm | ||
m09700.pm | ||
m09800.pm | ||
m09900.pm | ||
m10000.pm | ||
m10100.pm | ||
m10200.pm | ||
m10300.pm | ||
m10400.pm | ||
m10500.pm | ||
m10600.pm | ||
m10700.pm | ||
m10800.pm | ||
m10900.pm | ||
m10901.pm | ||
m11000.pm | ||
m11100.pm | ||
m11200.pm | ||
m11300.pm | ||
m11400.pm | ||
m11500.pm | ||
m11600.pm | ||
m11700.pm | ||
m11750.pm | ||
m11760.pm | ||
m11800.pm | ||
m11850.pm | ||
m11860.pm | ||
m11900.pm | ||
m12000.pm | ||
m12001.pm | ||
m12100.pm | ||
m12200.pm | ||
m12300.pm | ||
m12400.pm | ||
m12500.pm | ||
m12600.pm | ||
m12700.pm | ||
m12800.pm | ||
m12900.pm | ||
m13000.pm | ||
m13100.pm | ||
m13200.pm | ||
m13300.pm | ||
m13400.pm | ||
m13500.pm | ||
m13600.pm | ||
m13800.pm | ||
m13900.pm | ||
m14000.pm | ||
m14100.pm | ||
m14400.pm | ||
m14700.pm | ||
m14800.pm | ||
m14900.pm | ||
m15000.pm | ||
m15100.pm | ||
m15200.pm | ||
m15300.pm | ||
m15400.pm | ||
m15500.pm | ||
m15600.pm | ||
m15700.pm | ||
m15900.pm | ||
m16000.pm | ||
m16100.pm | ||
m16200.pm | ||
m16300.pm | ||
m16400.pm | ||
m16500.pm | ||
m16600.pm | ||
m16700.pm | ||
m16800.pm | ||
m16900.pm | ||
m17300.pm | ||
m17400.pm | ||
m17500.pm | ||
m17600.pm | ||
m17700.pm | ||
m17800.pm | ||
m17900.pm | ||
m18000.pm | ||
m18100.pm | ||
m18200.pm | ||
m18300.pm | ||
m18400.pm | ||
m18500.pm | ||
m18600.pm | ||
m18700.pm | ||
m18800.pm | ||
m18900.pm | ||
m19000.pm | ||
m19100.pm | ||
m19200.pm | ||
m19300.pm | ||
m19500.pm | ||
m19600.pm | ||
m19700.pm | ||
m19800.pm | ||
m19900.pm | ||
m20011.pm | ||
m20012.pm | ||
m20013.pm | ||
m20200.pm | ||
m20300.pm | ||
m20400.pm | ||
m20500.pm | ||
m20510.pm | ||
m20600.pm | ||
m20710.pm | ||
m20711.pm | ||
m20800.pm | ||
m20900.pm | ||
m21000.pm | ||
m21100.pm | ||
m21200.pm | ||
m21300.pm | ||
m21400.pm | ||
m21500.pm | ||
m21600.pm | ||
m21700.pm | ||
m21800.pm | ||
m22000.pm | ||
m22100.pm | ||
m22200.pm | ||
m22300.pm | ||
m22301.pm | ||
m22400.pm | ||
m22500.pm | ||
m22600.pm | ||
m22700.pm | ||
m22911.pm | ||
m22921.pm | ||
m22931.pm | ||
m22941.pm | ||
m22951.pm | ||
m23001.pm | ||
m23002.pm | ||
m23003.pm | ||
m23100.pm | ||
m23200.pm | ||
README.md |
Hashcat test modules
Each module provides the functions module_constraints
, module_generate_hash
and module_verify_hash
.
- The
module_constraints
function should return the minimum and maximum length of the password, salt and the combination of password and salt in following order: password (pure), salt (pure), password (optimized), salt (optimized) and combination (optimized). Each pair should be set to -1 if the hash mode is not supporting the appropriate field. For example, if a hash-mode does not support a salt, it should be set to -1. The last field (combination) is important if the password and the salt is stored in the same buffer in the kernel (typically raw hashes only). - The first parameter to
module_generate_hash
is the password, which can be either in ASCII or binary (packed) form. The second parameter is the salt *which can be undefined for unsalted hash modes). - The
module_verify_hash
function accepts a line from the cracks file, without the newline characters.
During single
and passthrough
tests the module_generate_hash
function must provide random values (e.g. salt) for hash generation if necessary. The test.pl script offers a few handy functions like random_hex_string
, random_numeric_string
and random_bytes
. You can implement your own salt generation functions, if your mode has specific requirements.
During verify
tests the module_verify_hash
function must parse the hash:password line and calculate a hash by passing all necessary data to module_generate_hash
. How you pass it is up to you, as long as the first parameter is the password.
Important: You have to call pack_if_HEX_notation
as soon as you have parsed the password, or your tests will fail on passwords in the $HEX[...]
format.
If the algorithm has ambiguous hashes (e.g. partial case-insensetivity), the test module can provide an optional function module_preprocess_hashlist
. It recieves a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of module_verify_hash
.
Examples
- For the most basic test modules, see m00000.pm and m00100.pm
- For the basic salted hash tests, see m00110.pm and m00120.pm
- For some sligthly more complex modules with PBKDF2 and encryption, see m18400.pm and m18600.pm
- For a test module with hashlist preprocessing and a custom salt generation algorithm, see m05600.pm