Tech Solvency / pub / bin / mdxfind

This is my personal, unofficial convenience mirror of ...

MDXfind, the CPU-based hash-cracking tool
Official site:
(mirror last refreshed/checked: 2019-10-31 - MDXfind version 1.112, 2017-11-03)

"MDXfind is a program which allows you to run large numbers of unsolved hashes, using many algorithms, against large number of plaintext words, very quickly." - waffle

MDXfind features (my perspective - not an official list):

When to use it

When not to use it (so far ;) )

Distribution metadata (generated by me, not part of the distribution):

Help and examples

Introductory video from @winxp5421

Basic example (adapted from @winxp5421):

mdxfind -h ALL -h '!salt,!user,!md5x' -i 5 -f unknown.txt /dict/top-10k-pass | tee out.res

    -h ALL                 # search every algorithm
    -h '!salt,!user,!md5x' # exclude salted algos and MD5x 
        MD5x               # [excludes 'internally iterated' hashes such as 'sha1(md5(md5(md5("hello")))']
    -i 5                   # iterate from 1 to 5 times, inclusive
    -f unknown.txt         # target hashlist
    /dict/top-10k.pass     # wordlist (input dictionary)
    | tee out.res          # outfile (where the results go).

(Using '| tee out.res' lets you watch the output; use '> out.res' instead if you won't want to watch or tee isn't available on your system.)

Threads with more info and examples: usage from forums | thread 1 | thread 2 | thread 3

Examples of how to use mdxfind's -z flag to generate arbitrary hashes:

Usage output

mdxfind: $Header: /home/dlr/src/mdfind/RCS/mdxfind.c,v 1.112 2017/11/01 16:22:46 dlr Exp dlr $
Search for MD5x values from a file
use:  mdxfind [options] [list of text files] < input hash
The text file stdin is special, and may be used if -f is
supplied, to read candidate passwords from stdin
-a      Do email address munging
-b      Expand each word into unicode, best effort
-c      Replace each special char (<>&, etc) with XML equivalents
-d      De-duplicate wordlists, best effort
-e      Extended search for truncated hashes
-p      Print source (filename) of found plaintexts
-q      Internal iteration counts for SHA1MD5x, and others
-g      Rotate calculated hashes to attempt match to input hash
-s      File to read salts from
-u      File to read Userid/Usernames from
-k      File to read suffixes from
-n      Number of digits to append to passwords
-i      The number of iterations for each hash
-t      The number of threads to run
-f      file to read hashes from, else stdin
-l      Append CR/LF/CRLF and print in hex
-r      File to read rules from (concatenated)
-R      File to read rules from (dot-product form)
-v      Do not mark salts as found.
-w      Number of lines to skip from first wordlist
-y      Enable directory recursion for wordlists
-z      Enable debugging information/hash results
-Z      Enable histogram of rule hits


mdsplit - processes MDXfind result files
-a        Process all files, not just .txt, looking for matches
-l        Do not lock files. If your filesystem can't lock...
-r        No reverse hashes scanned (default is to scan for reverse)
-b 500K   Buffer size 500K (or M or G) - default is 500K
-f file   Reads result file from filename, instead of stdin
-t MD5x01 Uses the type MD5x01 for results that have no type

mdsplit processes MDXfind result files, separating hash lists into
solved files. Unsolved hashes should be in .txt files

Typical usage:
cat *.txt | mdxfind -i 3 /tmp/words | mdsplit *.txt
cat foo.res bar.res | mdsplit /other/unsolved

mdsplit -f foo.res biglist


All credit to waffle (and hops) for this powerful hash-cracking tool. A serious amount of careful thought and insight has gone into making it reliable and efficient.

Icon  Name                    Last modified      Size  Description
[   ] mdsplit 2017-11-02 19:12 27K [   ] mdsplit-32 2017-11-02 19:13 82K [EXE] mdsplit-32.exe 2017-11-02 19:13 86K [   ] mdsplit.aix 2017-10-22 22:31 274K [   ] mdsplit.arm6 2017-11-02 19:10 70K [   ] mdsplit.arm8 2017-11-02 19:10 123K [EXE] mdsplit.exe 2017-11-02 19:13 162K [   ] mdsplit.freebsd 2017-11-02 19:09 152K [   ] mdsplit.osx 2017-11-02 19:23 161K [   ] mdsplit.power8 2017-10-18 23:45 66K [   ] mdsplit.static 2017-11-02 19:12 954K [   ] mdxfind 2017-11-02 19:12 2.0M [   ] mdxfind-32 2017-11-02 19:13 2.4M [EXE] mdxfind-32.exe 2017-11-02 19:26 2.5M [   ] 2018-04-03 15:11 11M [   ] mdxfind.aix 2017-10-23 09:58 2.5M [   ] mdxfind.arm6 2017-11-02 19:10 2.4M [   ] mdxfind.arm7 2017-11-02 19:10 2.5M [   ] mdxfind.arm8 2017-11-02 19:10 2.1M [EXE] mdxfind.exe 2017-11-02 19:26 2.4M [   ] mdxfind.freebsd 2017-11-02 19:09 2.4M [   ] mdxfind.osx 2017-11-02 19:21 2.3M [   ] mdxfind.power8 2017-10-23 09:53 1.9M [   ] mdxfind.static 2017-11-02 19:12 3.3M [TXT] CHECKSUMS.MD5.txt 2018-04-03 15:32 1.3K MD5 checksums (not in distro) [TXT] CHECKSUMS.SHA256.txt 2018-04-03 15:32 2.2K SHA256 checksums (not in distro) [TXT] file-output.txt 2018-04-03 17:04 3.7K file(1) of all files, with binary/executable details (not in distro) [TXT] algorithms.txt 2018-04-03 16:40 6.5K list of supported algorithms, one per line (not in distro) [TXT] mdsplit.txt 2019-09-01 22:33 2.5K old version of mdsplit - for reference [TXT] usage.txt 2018-06-22 10:04 2.3K usage output for mdxfind and mdsplit (not in distro)

.. Up to /pub/bin
<- Back to Tech Solvency