Tech Solvency / pub / bin / mdxfind

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

MDXfind logo
MDXfind, the CPU-based hash-cracking tool

Official site: (offline)
(mirror last refreshed/checked: 2020-08-05 - 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 numbers of plaintext words, very quickly." - Waffle

Jump to download

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,!crypt' -i 5 -f unknown.txt /dict/top-10k-pass | tee -a out.res

    -h ALL                        # search every algorithm
    -h '!salt,!user,!md5x,!crypt' # exclude explicitly salted (!salt), MD5x, and some implicitly salted (!crypt)
                                  # 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 -a out.res              # append to outfile (where the results go).

(Using  '| tee -a 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.)

To change the default behavior of using all available cores, use ' -t [N]' where N is the number of cores to use.

Threads with more info and examples:

Moved/broken references, necromancy TBD: Google search for MDXfind on Hashkiller forums | usage from forums | thread 1 | thread 2 | thread 3

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

Info on output and tuning, from Waffle:

Usage output

-h      The hash types
mdxfind 1.12
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.


See also

Icon  Name                    Last modified      Size  Description
[PARENTDIR] Parent Directory - [TXT] algorithms-116.txt 2022-04-01 01:02 6.5K [BIN] mdsplit 2017-11-02 19:12 27K [BIN] mdsplit-32 2017-11-02 19:13 82K [EXE] mdsplit-32.exe 2017-11-02 19:13 86K [BIN] mdsplit.aix 2017-10-22 22:31 274K [BIN] mdsplit.arm6 2017-11-02 19:10 70K [BIN] mdsplit.arm8 2017-11-02 19:10 123K [EXE] mdsplit.exe 2017-11-02 19:13 162K [BIN] mdsplit.freebsd 2017-11-02 19:09 152K [BIN] mdsplit.osx 2017-11-02 19:23 161K [BIN] mdsplit.power8 2017-10-18 23:45 66K [BIN] mdxfind 2017-11-02 19:12 2.0M [BIN] 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 [BIN] mdxfind.aix 2017-10-23 09:58 2.5M [BIN] mdxfind.arm6 2017-11-02 19:10 2.4M [BIN] mdxfind.arm7 2017-11-02 19:10 2.5M [BIN] mdxfind.arm8 2017-11-02 19:10 2.1M [EXE] mdxfind.exe 2017-11-02 19:26 2.4M [BIN] mdxfind.freebsd 2017-11-02 19:09 2.4M [BIN] mdxfind.osx 2017-11-02 19:21 2.3M [BIN] mdxfind.power8 2017-10-23 09:53 1.9M [BIN] mdsplit.static 2017-11-02 19:12 954K Linux static binary [BIN] mdxfind.static 2017-11-02 19:12 3.3M Linux static binary [TXT] CHECKSUMS.MD5.txt 2020-04-23 11:16 1.3K MD5 checksums (not distro) [   ] mdxfind.1.116.bin 2022-03-31 04:31 2.0M Newer development build (Linux) [TXT] CHECKSUMS.SHA256.txt 2020-04-23 11:16 2.2K SHA256 checksums (not distro) [TXT] file-output.txt 2022-03-31 15:58 4.0K file(1) of all files - binary/executable details (not distro) [TXT] algorithms.txt 2020-05-11 15:07 6.5K list of supported algorithms, one per line (not distro) [   ] mdsplit.txt 2019-09-01 22:33 2.5K old Perl version of mdsplit - for reference [   ] 2018-04-03 15:11 11M symlink to latest zip file (hopefully) [TXT] usage.txt 2020-04-23 11:16 2.4K usage output for mdxfind and mdsplit (not distro)

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