Add stuff that you think would enhance JtR to this list. Also consider writing to the mailing list about the details and link to that in here.
Speed up init of OpenCL formats, either by pre-compiling (when building John) or caching OpenCL binary (when a format is run first time). The former would be a bad idea for distributions (eg. if Ubuntu had a john-jumbo package). Note: nvidia already has caching in their drivers.
Unless -platform or -device is given, OpenCL should default to search for a GPU (even if it's on platform other than #0) and only failing that, resorting to CPU on platform 0, device 0.
-
-
-
Mac FileVault
Django hashes, see
this (in progress, Dhiru)
-
PGP secret keys (different kinds)
7-Zip Archives
Apache Derby
Better VNC hash extractor (i.e. vncpcap2john.cpp) based on Ettercap's VNC dissector.
Keepass Databases
GNOME Keyring
KDE KWallet
other kinds of
SSH private keys
make changes so that md5-mmx.S and sha1-mmx.S 32 bit asm are thread safe. Then we can use OMP on all SSE builds. MD5 should be pretty easy to add thread safety to. SHA1 may be possible, but probably more difficult. Also, change these to have the SAME interface as the intrinsic interface.
BUG in dynamic. If there are $$Fx which pull data from some of the fields, this $$Fxdata is NOT written to the hash line, written into the john.pot file. Thus, the data to crack is lost!!! Not sure how to work around this. It does appear, if the $$U is used (user name in the format), but the $$U is not in the salt provided (thus the user name is read from array element 0), This DOES get written into the found hash line (as a $$Uuser string in the salt). Thus, this is fine. However, the $$Fx's seem to be broken. These are things 'added' to dynamic, but I am not sure anyone uses them.
add OMP to 'dynamic' format, if possible.
If/when implementing fork/node as seen in the experimental “j5c4” contest edition, we should export node_min, node_max and node_count to external modes.
-
'Auto' Optimization of Rules at run-time prior to running rules (at rules init).
argc/argv for external modes
support for arbitrary characters in rules pp, eg. \xBF
john.conf item for default mem-file-size (see
comment below)
john.conf item for default field-separator-char (see
comment below)
new rules: convert (if possible) the whole word from/to UTF-8 to/from the currently selected encoding. This will be slow but in some cases powerful.
complete Unicode support for the rules engine (some ideas in
this post)
Add additional things into the test suite. Testing of Rules, External, etc, etc. All parts of john 'could' be tested, and reported in pass/fail manner.
Support for auto-disabling of plugin formats. SybaseASE, hmailserver and SHA224/256/384/512 formats are currently not plugins, because they have #ifdefs relying on OpenSSL version macros. The plugin “system” currently can't handle this. Clever idea is needed here.
Add functions in unicode.c for conversion between composed (NFC) and decomposed (NFD) versions of characters.
Example: Decomposed version of LATIN SMALL LETTER A WITH DIAERESIS (U+00E4) is LATIN SMALL LETTER A (U+0061) COMBINING DIAERESIS (U+0308)
Once the above is in place, add rules for calling them (for the whole word),
and possibly add NFC to a couple of Unicode formats (if we confirm this is what happens
IRL)
-
make 'thin' versions of more formats
command line option to reduce max_plaintext_length (mostly for testing, does not have to be mentioned in usage blob, just in doc/OPTIONS)
Evaluate the possibility of implementing (at command line and/or in Rules section of john.conf) “rules x rules” - eg. one ruleset who's resulting candidates go through another ruleset. Two rulesets of 100 rules each will produce up to 10,000 candidates. This is currently possible using “john … -ru:first -stdout | john -pipe -ru:second …”.
If easily implemented, allow multiple –rules=xx –rules=yy that will be just like using ”.include [yy]” within rule xx in john.conf.
(ON HOLD, technical issues, and no buy-in from Alex) Add new config directive .remove [section] Useful for rules, if placed at bottom, will remove any rules out of the current rules block, that were found in [section]. Sort of the inverse of .include [section]
-
-