Writing a hash-mode

Description

A hash-mode in hashcat is a plugin. It consists of a module that describes and parses the hash, plus kernels that compute it. Adding one does not require patching hashcat itself.

Try a hash recipe first. With -m 4000 you describe the scheme on the command line and hashcat compiles it into a kernel, which covers most custom schemes at close to native speed and takes minutes rather than days. Write a plugin when the recipe language cannot express the algorithm, or when it needs real kernel work.

Three ways to write one

route mode when it fits
C module and kernels its own number a mode meant to go upstream, running fully on the GPU
Python -m 73000 a scheme you want working today, at host speed
Rust -m 74000 the same, where you would rather write Rust

The Python and Rust routes go through the assimilation bridge and run on the host, so they are suited to slow hashes. They do not translate your code into GPU code.

A separate interface, the feed, plugs in a candidate generator rather than a hash. That is the generic attack.

Full documentation

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain