Skip to content

Commit 0ef286e

Browse files
committed
1.7.9-jumbo-7 as released
1 parent c0a1cde commit 0ef286e

File tree

3 files changed

+170
-3
lines changed

3 files changed

+170
-3
lines changed

doc/BUGS

Lines changed: 102 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,106 @@
1-
Known bugs in this release:
1+
Known issues with using this release.
22

3-
Not working on Big Endian (fails self-test):
3+
Not working on big-endian CPU architectures (these formats fail
4+
self-test on big-endian CPUs):
45
* mssql05
56
* office
67
* rar
8+
(x86 and x86-64 are little-endian, so they are not affected.)
9+
10+
Not working on HD 4000 series and older ATI GPUs (these formats need
11+
byte-addressable store, which is only present in HD 5000 series and
12+
newer ATI/AMD GPUs):
13+
* sha512crypt-opencl
14+
* wpapsk-opencl
15+
16+
Many OpenCL formats fail at runtime on Mac OS X (whereas CUDA ones work
17+
fine). We've seen these fail on Mac OS X 10.8.1: bf-opencl,
18+
mscash2-opencl, nt-opencl, rar, raw-sha512-opencl, sha512crypt-opencl,
19+
wpapsk-opencl, and xsha512-opencl. We suspect that this may be caused
20+
by driver bugs. The same formats work fine on Linux.
21+
22+
In GPU-enabled builds, running "john --test" (with no --format
23+
restriction) will eventually fail (before it has a chance to test all
24+
formats). This is because GPU resources allocated by one format are
25+
currently not freed before proceeding to test another format (they're
26+
only freed when John exits). We're going to correct this in a future
27+
release. Meanwhile, please test GPU-enabled formats one by one, e.g.
28+
with "john --test --format=mscash2-opencl", etc.
29+
30+
Some OpenCL-enabled formats (for "slow" hashes and non-hashes) may
31+
sometimes trigger "ASIC hang" errors as reported by AMD/ATI GPU drivers,
32+
requiring system reboot to re-gain access to the GPU. For example, on
33+
HD 7970 this problem is known to occur with sha512crypt-opencl, but is
34+
known not to occur with mscash2-opencl. Our current understanding is
35+
that this has to do with OpenCL kernel running time and watchdog timers.
36+
We're working on reducing kernel run times to avoid such occurrences in
37+
the future.
38+
39+
All CUDA formats substantially benefit from compile-time tuning.
40+
README-CUDA includes some info on this. In short, on GTX 400 series and
41+
newer NVIDIA cards, you'll likely want to change "-arch sm_10" to "-arch
42+
sm_20" or greater (as appropriate for your GPU) on the NVCC_FLAGS line
43+
in Makefile. You'll also want to tune BLOCKS and THREADS for the
44+
specific format you're interested in. These are typically specified in
45+
cuda_*.h files. README-CUDA includes a handful of pre-tuned settings.
46+
It is not unusual to obtain e.g. a 3x speedup (compared to the generic
47+
defaults) with this sort of tuning.
48+
49+
Some OpenCL formats benefit from compile-time tuning, too. For example,
50+
bf-opencl is pre-tuned for HD 7970 cards, and will need to be re-tuned
51+
for other cards (adjust WORK_GROUP_SIZE in opencl_bf_std.h and
52+
opencl/bf_kernel.cl; you may also adjust MULTIPLIER). In fact, on
53+
smaller GPUs this specific format might not work at all until
54+
WORK_GROUP_SIZE is reduced. Most OpenCL formats may benefit from tuning
55+
of KEYS_PER_CRYPT, although higher values, while generally increasing
56+
the c/s rate, may create usability issues (more work lost on
57+
interrupted/restored sessions, less optimal order of candidate passwords
58+
being tested).
59+
60+
Even though wpapsk-cuda and wpapsk-opencl primarily use the GPU, they
61+
also do a (small, but not negligible) portion of the computation on CPU
62+
and thus they substantially benefit from OpenMP-enabled builds. We
63+
intend to reduce their use of CPU in a future version.
64+
65+
Interrupting a cracking session that uses an ATI/AMD GPU with Ctrl-C
66+
often results in:
67+
../../../thread/semaphore.cpp:87: sem_wait() failed
68+
Aborted
69+
When this happens, the john.pot and .log files are not updated with
70+
latest cracked passwords. To mitigate this, reduce the Save setting in
71+
john.conf from the default of 600 seconds to a lower value (e.g., 60).
72+
73+
With GPU-enabled formats (and sometimes with OpenMP on CPU as well), the
74+
number of candidate passwords being tested concurrently can be very
75+
large (thousands). When the format is of a "slow" type (such as an
76+
iterated hash) and the number of different salts is large, interrupting
77+
and restoring a session may result in a lot of work being re-done (many
78+
minutes or even hours). It is easy to see if a given session is going
79+
to be affected by this or not: watch the range of candidate passwords
80+
being tested as included in the status line printed on a keypress. If
81+
this range does not change for a long while, the session is going to be
82+
affected since interrupting and restoring it will retry the entire
83+
range, for all salts, including for salts that already had the range
84+
tested against them.
85+
86+
"Single crack" mode is relatively inefficient with GPU-enabled formats
87+
(and sometimes with OpenMP on CPU as well), because it might not be able
88+
to produce enough candidate passwords per target salt to fully utilize a
89+
GPU, as well as because its ordering of candidate passwords from most
90+
likely to least likely is lost when the format is only able to test a
91+
large number of passwords concurrently (before proceeding to doing the
92+
same for another salt). You may reasonably start with quick "single
93+
crack" mode runs on CPU (possibly without much use of OpenMP) and only
94+
after that proceed to using GPU-enabled formats (or with heavier use of
95+
OpenMP, beyond a few CPU cores), locking those runs to specific cracking
96+
modes other than "single crack".
97+
98+
Some formats lack proper binary_hash() functions, resulting in duplicate
99+
hashes (if any) not being eliminated at loading and sometimes also in
100+
slower cracking (when the number of hashes per salt is large). When
101+
this happens, the following message is printed:
102+
Warning: excessive partial hash collisions detected
103+
(cause: the "format" lacks proper binary_hash() function definitions)
104+
Known to be affected are: bfegg, dominosec, md5crypt-cuda, phpass-cuda.
105+
Also theoretically present, but less likely to be triggered in practice,
106+
are similar issues in non-hash formats.

doc/CHANGES-jumbo

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,70 @@
1+
Direct code contributors to 1.7.9-jumbo-7 (since 1.7.9-jumbo-6), by
2+
commit count:
3+
4+
magnum
5+
JimF
6+
Frank Dittrich
7+
Claudio Andre
8+
Dhiru Kholia
9+
Solar Designer
10+
Lukas Odzioba
11+
myrice (Dongdong Li)
12+
Sayantan Datta
13+
Knug Carl Gustf
14+
Vlatko Kosturjak
15+
Tavis Ormandy
16+
Pavel Semjanov
17+
Elijah [W&P]
18+
Erik Winkler
19+
20+
1.7.9-jumbo-7 is a bugfix-mostly release. We're deliberately not
21+
including support for new formats (even though we have plenty of those
22+
in development trees), except for a couple that slipped through
23+
(KeePass 2.x, RAdmin 2.x).
24+
25+
High-level overview of the changes:
26+
* KeePass 2.x support (in addition to 1.x) (Dhiru)
27+
* The dynamic formats support has been enhanced a little bit, and a new sample
28+
has been added to the default dynamic.conf (dynamic_1010 for RAdmin 2.x, which
29+
uses MD5 hashes of NUL-padded passwords) (JimF, Solar)
30+
* GPU support under recent Mac OS X (magnum, others)
31+
- CUDA working, OpenCL partially working - see doc/BUGS for more detail
32+
* The first GPU (as opposed to possibly a CPU) is now found automatically
33+
when no specific OpenCL platform/device is requested (magnum)
34+
* Bugfixes for GPU formats: mscash-cuda, pwsafe-cuda, pwsafe-opencl (Lukas)
35+
* Bugfixes for GPU formats: raw-sha512-cuda, raw-sha512-opencl, xsha512-cuda,
36+
xsha512-opencl (myrice)
37+
* Speedup for phpass-opencl, mscash2-cuda (Lukas)
38+
* Speedup for mscash2-opencl (Sayantan, Solar)
39+
* Corrected detection of different salts in mscash-cuda, mscash2-cuda,
40+
mscash2-opencl (Solar)
41+
* Updated comments printed for some GPU formats (removed "unreliable" notices
42+
from formats that are now reliable, added "inefficient" notices to formats that
43+
exist primarily to support further development) (magnum, Solar)
44+
* hccap2john bugfix (this program was non-working in jumbo-6) (Solar)
45+
* pdf2john bugfix (this program was non-working in jumbo-6) (JimF)
46+
* keychain2john integrated into build (Solar)
47+
* Support for more varieties of PKZIP archives (JimF)
48+
* Better early rejection for RAR (huge speedup at -p archives) (magnum, Pavel)
49+
* RACF and VNC formats speedup (Knug Carl Gustf)
50+
* SIP, WoltLab Burning Board 3 formats speedup for non-OpenMP builds (Solar)
51+
* x86-64 SSE2+ interleave settings for LLVM and GCC 4.7+ (magnum)
52+
* Greater use of XOP in SHA-1 (now also in round 3) (Sayantan, Solar)
53+
* The --list option's supported set of parameters has been extended (use
54+
"--list=help" to find out what's available) (Frank, magnum)
55+
* \xNN escape sequence now works inside preprocessor ranges (magnum)
56+
* More test vectors for various formats, including based on KoreLogic's CMIYC
57+
2012 challenges (JimF, others)
58+
* Wordlist parsing bugfixes (in particular with CR chars) (magnum, Solar, Guth)
59+
* Build failure fixes for many platforms/targets (magnum, Solar, others)
60+
* Many other bugs fixed, fewer new bugs introduced, some code changes made,
61+
some documentation revisions made (all)
62+
* doc/BUGS has been mostly rewritten to reflect the remaining issues (Solar)
63+
* Minor updates and fixes to bash completion (Frank)
64+
* Filter_Rot13 external mode sample (Frank)
65+
* Many updates to pass_gen.pl (JimF, magnum)
66+
* This changes overview has been compiled (Solar)
67+
168
Direct code contributors to 1.7.9-jumbo-6 (since 1.7.9-jumbo-5), by
269
commit count:
370

src/params.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
/*
2020
* John's version number.
2121
*/
22-
#define JOHN_VERSION "1.7.9-jumbo-7RC"
22+
#define JOHN_VERSION "1.7.9-jumbo-7"
2323

2424
/*
2525
* Notes to packagers of John for *BSD "ports", Linux distributions, etc.:

0 commit comments

Comments
 (0)