You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hashcat/tools/test_modules
Lars Sætaberget 918b4cf7da
Added kernel, module and unit-test for hash-mode 28400: bcryptsha512
3 years ago
..
README.md
m00000.pm
m00010.pm
m00011.pm
m00012.pm
m00020.pm
m00021.pm
m00022.pm Fixed Unit Test salt-max in case of optimized kernel, with hash-type 22 and 23 3 years ago
m00023.pm Fixed Unit Test salt-max in case of optimized kernel, with hash-type 22 and 23 3 years ago
m00024.pm
m00030.pm
m00040.pm
m00050.pm tests: cleanup and module deps fix 3 years ago
m00060.pm tests: cleanup and module deps fix 3 years ago
m00070.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 tests: cleanup and module deps fix 3 years ago
m00160.pm tests: cleanup and module deps fix 3 years ago
m00170.pm
m00200.pm
m00300.pm
m00400.pm
m00500.pm
m00600.pm
m00900.pm tests: cleanup and module deps fix 3 years ago
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
m01470.pm
m01500.pm
m01600.pm
m01700.pm
m01710.pm
m01711.pm tests: cleanup and module deps fix 3 years ago
m01720.pm
m01722.pm
m01730.pm
m01731.pm
m01740.pm
m01750.pm
m01760.pm
m01770.pm
m01800.pm
m02100.pm tests: cleanup and module deps fix 3 years ago
m02400.pm tests: cleanup and module deps fix 3 years ago
m02410.pm
m02500.pm
m02600.pm
m02611.pm
m02612.pm
m02711.pm
m02811.pm
m03000.pm
m03100.pm
m03200.pm
m03500.pm
m03710.pm
m03711.pm
m03800.pm
m03910.pm
m04010.pm
m04110.pm
m04300.pm
m04400.pm
m04500.pm
m04510.pm fixes #3029: cracking long salts in -m 4510/4710 3 years ago
m04520.pm
m04521.pm
m04522.pm
m04700.pm
m04710.pm fixes #3029: cracking long salts in -m 4510/4710 3 years ago
m04711.pm
m04800.pm
m04900.pm
m05000.pm
m05100.pm
m05300.pm
m05400.pm
m05500.pm tests: cleanup and module deps fix 3 years ago
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 tests: cleanup and module deps fix 3 years ago
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 tests: cleanup and module deps fix 3 years ago
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
m10810.pm
m10820.pm
m10830.pm
m10840.pm
m10870.pm
m10900.pm
m10901.pm tests: cleanup and module deps fix 3 years ago
m11000.pm
m11100.pm
m11200.pm tests: cleanup and module deps fix 3 years ago
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 tests: cleanup and module deps fix 3 years ago
m13200.pm
m13300.pm
m13400.pm
m13500.pm
m13600.pm
m13800.pm
m13900.pm tests: cleanup and module deps fix 3 years ago
m14000.pm
m14100.pm
m14400.pm
m14700.pm
m14800.pm
m14900.pm
m15000.pm
m15100.pm
m15200.pm
m15300.pm tests: cleanup and module deps fix 3 years ago
m15400.pm
m15500.pm
m15600.pm
m15700.pm
m15900.pm tests: cleanup and module deps fix 3 years ago
m16000.pm
m16100.pm
m16200.pm
m16300.pm
m16400.pm
m16500.pm
m16600.pm
m16700.pm
m16800.pm
m16900.pm tests: cleanup and module deps fix 3 years ago
m17300.pm
m17400.pm
m17500.pm
m17600.pm
m17700.pm
m17800.pm
m17900.pm
m18000.pm
m18100.pm
m18200.pm tests: cleanup and module deps fix 3 years ago
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 tests: cleanup and module deps fix 3 years ago
m19700.pm tests: cleanup and module deps fix 3 years ago
m19800.pm tests: cleanup and module deps fix 3 years ago
m19900.pm tests: cleanup and module deps fix 3 years ago
m20011.pm tests: cleanup and module deps fix 3 years ago
m20012.pm tests: cleanup and module deps fix 3 years ago
m20013.pm tests: cleanup and module deps fix 3 years ago
m20200.pm
m20300.pm
m20400.pm
m20500.pm
m20510.pm
m20600.pm tests: cleanup and module deps fix 3 years ago
m20710.pm
m20711.pm
m20720.pm
m20800.pm
m20900.pm
m21000.pm
m21100.pm
m21200.pm
m21300.pm
m21400.pm
m21420.pm removed unused printf from 21420 test module 3 years ago
m21500.pm tests: cleanup and module deps fix 3 years ago
m21501.pm tests: cleanup and module deps fix 3 years ago
m21600.pm tests: cleanup and module deps fix 3 years ago
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
m23300.pm
m23400.pm
m23500.pm
m23600.pm
m23700.pm
m23900.pm
m24100.pm
m24200.pm
m24300.pm
m24410.pm
m24420.pm
m24500.pm
m24600.pm
m24700.pm tests: cleanup and module deps fix 3 years ago
m24800.pm tests: cleanup and module deps fix 3 years ago
m24900.pm tests: cleanup and module deps fix 3 years ago
m25000.pm tests: cleanup and module deps fix 3 years ago
m25100.pm tests: cleanup and module deps fix 3 years ago
m25200.pm tests: cleanup and module deps fix 3 years ago
m25300.pm tests: cleanup and module deps fix 3 years ago
m25400.pm tests: cleanup and module deps fix 3 years ago
m25500.pm
m25600.pm
m25700.pm tests: cleanup and module deps fix 3 years ago
m25800.pm
m25900.pm
m26000.pm
m26100.pm
m26200.pm
m26300.pm
m26401.pm
m26402.pm
m26403.pm
m26500.pm
m26600.pm tests: cleanup and module deps fix 3 years ago
m26700.pm tests: cleanup and module deps fix 3 years ago
m26800.pm tests: cleanup and module deps fix 3 years ago
m26900.pm tests: cleanup and module deps fix 3 years ago
m27000.pm tests: cleanup and module deps fix 3 years ago
m27100.pm tests: cleanup and module deps fix 3 years ago
m27200.pm
m27300.pm tests: cleanup and module deps fix 3 years ago
m27400.pm
m27500.pm tests: cleanup and module deps fix 3 years ago
m27600.pm tests: cleanup and module deps fix 3 years ago
m27700.pm
m27900.pm
m28000.pm
m28100.pm
m28200.pm remove unnecessary perl modules from Exodus tests 3 years ago
m28300.pm tests: cleanup and module deps fix 3 years ago
m28400.pm Added kernel, module and unit-test for hash-mode 28400: bcryptsha512 3 years ago
m28600.pm changed mode number to 28600 3 years ago

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