Multi-threaded, multi-algorithm hash search engine. Searches wordlists against large hash collections across 1001 hash types simultaneously, using Judy arrays for memory-efficient hash storage and SIM…
Version v1.579 · published 2026-09-06
| OS | Architecture | File | Size | SHA-256 |
|---|---|---|---|---|
| FreeBSD | x86-64 | mdxfind-freebsd-x86_64.tar.gz | 4.7 MB | 6ab887fd988936e98a735b3bbcbf31e4276dbdbc46483b203815a45bf84e1e8a |
| Linux | ARM64 | mdxfind-linux-aarch64.tar.gz | 3.8 MB | cf476f8041a27c6de1a9e31843d41b9bf76b775db7b473b431e464ee9e908c1b |
| Linux | ARMv6 | mdxfind-linux-arm6.tar.gz | 3.3 MB | fa629fc1d94578ff6c91f215ab4039adeca641fdeb792fe858f86d17e084c797 |
| Linux | ARMv7 | mdxfind-linux-arm7.tar.gz | 3.2 MB | ed8d7363597030405a573974776844af982bee7d03ca1e115cbc6fc3f6e88848 |
| Linux | x86 (32-bit) | mdxfind-linux-i686.tar.gz | 3.2 MB | b42e74315c8bddf29e1f76519984b096b0b111a5ddb587bc003297759e49b26c |
| Linux | POWER (ppc64le) | mdxfind-linux-ppc64le.tar.gz | 4.0 MB | 70a8c6e03e2d6ac26951a78d64b6ee083eb5ca6cb840369178c5da9654864c0e |
| Linux | x86-64 | mdxfind-linux-x86_64.tar.gz | 4.0 MB | 259e635ea596ddd6a4527e72f9acbb64c11a4620815440e1c4f0f47197d2f7ae |
| macOS | universal (Intel + Apple silicon) | mdxfind-macos-universal.tar.gz | 7.3 MB | 94290d5bc1e49596f70c8567321bd3b85d05779a8edb709674347b010d2c9257 |
| Windows | ARM64 | mdxfind-windows-arm64.zip | 3.7 MB | 84d39b3d04c8b67406e79fb602120dfd5f09ee2fd37a60e11e7a3e240923fafd |
| Windows | x86 (32-bit) | mdxfind-windows-i686.zip | 4.1 MB | 9e250bcaa199374cb40e1e7c591e967a304b9c96059c88ed1510116a31996546 |
| Windows | x86-64 | mdxfind-windows-x86_64.zip | 4.7 MB | c22c24378bbb979f96110359df5ad89a72196abffff85dcac7517898e9daeaed |
shasum -a 256 -c SHA256SUMS
SHA256SUMS for this release.Source: mdxfind.c rev 1.578 -> 1.579.
If you hold PHPBB3MD5 (e537) results from an earlier version, re-run them. Any list with more than one hash per salt was under-reported, and the shortfall is invisible in the output: the run completes, reports cracks, and simply stops at the first hash for each salt.
121 hashes, 11 salts, 11 passwords before: 11 found now: 121 found
Plain PHPBB3 (e455) was never affected, and no other type is.
The loader files the phpBB3 wrapper's salt under a 12-character key -- $H$, the cost
character and the 8-character salt -- so every hash sharing a salt maps to one Typesalt
entry, and store_typesalt() counts them as it inserts. PHPBB3MD5 did not get that
count. The bootstrap copied PHPBB3's salt keys across and stamped each one with a
hardcoded 1. That count is what the per-job salt snapshot decrements, so the salt was
retired the moment the first hash matched and every other hash carrying it was never
tried.
This is the same failure that was fixed for MSSQL in v1.560. The audit that accompanied that fix cleared twelve other bootstraps on the grounds that each keys Typesalt on the whole stored line, so one entry maps to one hash. That is true for eleven of them and untrue for phpBB3, whose key is the salt.
The phpBB3 family is now a table:
static const int Phpbb3Family[] = { JOB_PHPBB3, JOB_PHPBB3MD5 };
The loader files each selected member's salts into that member's own Typesalt, counted by the same call that inserts them. There is no copy step and no count produced anywhere that does not know the answer. A future member of the family -- a PHPBB3SHA1, say -- is one entry in that table plus its compute arm.
Three consequences worth knowing:
-M e537 alone no longer populates the salt array of e455, a type that was not
selected. The startup line names the type it actually loaded.
-M e455 -F one.txt -M e537 -F two.txt loads two different files into two
different salt arrays, and the salt total is their sum.
That startup line now says salts rather than hashes, because the number it
prints has always been the count of distinct salts.
-F run found nothing and said nothingSource: mdxfind.c rev 1.576 → 1.578 (1.577 was wording in the revision notes).
Reported by kpd, who lost an evening to a salted list that would not crack until he