Git Product home page Git Product logo

openwall / john Goto Github PK

View Code? Open in Web Editor NEW
9.3K 260.0 2.0K 128.32 MB

John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs

Home Page: https://www.openwall.com/john/

Python 5.33% Perl 4.24% Ruby 0.01% Shell 0.40% C 79.68% Assembly 1.16% Makefile 0.31% M4 0.88% JavaScript 0.01% Verilog 7.03% SystemVerilog 0.66% Lua 0.06% HTML 0.22% Dockerfile 0.01% Nix 0.01%
john c ripper password jtr opencl gpgpu assembler cracker crypt

john's Introduction

Circle CI Downloads License GitHub commit activity GitHub commits since tagged version

John the Ripper

This is the community-enhanced, "jumbo" version of John the Ripper. It has a lot of code, documentation, and data contributed by jumbo developers and the user community. It is easy for new code to be added to jumbo, and the quality requirements are low, although lately we've started subjecting all contributions to quite some automated testing. This means that you get a lot of functionality that is not necessarily "mature", which in turn means that bugs in this code are to be expected.

John the Ripper homepage is:

https://www.openwall.com/john/

If you have any comments on this release or on JtR in general, please join the john-users mailing list and post in there:

https://www.openwall.com/lists/john-users/

For contributions to John the Ripper jumbo, please use pull requests on GitHub:

https://github.com/openwall/john/blob/bleeding-jumbo/CONTRIBUTING.md

Included below is basic John the Ripper core documentation.


John the Ripper password cracker.

John the Ripper is a fast password cracker, currently available for many flavors of Unix, macOS, Windows, DOS, BeOS, and OpenVMS (the latter requires a contributed patch). Its primary purpose is to detect weak Unix passwords. Besides several crypt(3) password hash types most commonly found on various Unix flavors, supported out of the box are Kerberos/AFS and Windows LM hashes, as well as DES-based tripcodes, plus hundreds of additional hashes and ciphers in "-jumbo" versions.

How to install.

See INSTALL for information on installing John on your system.

How to use.

To run John, you need to supply it with some password files and optionally specify a cracking mode, like this, using the default order of modes and assuming that "passwd" is a copy of your password file:

john passwd

or, to restrict it to the wordlist mode only, but permitting the use of word mangling rules:

john --wordlist=password.lst --rules passwd

Cracked passwords will be printed to the terminal and saved in the file called $JOHN/john.pot (in the documentation and in the configuration file for John, "$JOHN" refers to John's "home directory"; which directory it really is depends on how you installed John). The $JOHN/john.pot file is also used to not load password hashes that you already cracked when you run John the next time.

To retrieve the cracked passwords, run:

john --show passwd

While cracking, you can press any key for status, or 'q' or Ctrl-C to abort the session saving its state to a file ($JOHN/john.rec by default). If you press Ctrl-C for a second time before John had a chance to complete handling of your first Ctrl-C, John will abort immediately without saving. By default, the state is also saved every 10 minutes to permit for recovery in case of a crash.

To continue an interrupted session, run:

john --restore

These are just the most essential things you can do with John. For a complete list of command line options and for more complicated usage examples you should refer to OPTIONS and EXAMPLES, respectively.

Please note that "binary" (pre-compiled) distributions of John may include alternate executables instead of just "john". You may need to choose the executable that fits your system best, e.g. "john-omp" to take advantage of multiple CPUs and/or CPU cores.

Features.

John the Ripper is designed to be both feature-rich and fast. It combines several cracking modes in one program and is fully configurable for your particular needs (you can even define a custom cracking mode using the built-in compiler supporting a subset of C). Also, John is available for several different platforms which enables you to use the same cracker everywhere (you can even continue a cracking session which you started on another platform).

Out of the box, John supports (and autodetects) the following Unix crypt(3) hash types: traditional DES-based, "bigcrypt", BSDI extended DES-based, FreeBSD MD5-based (also used on Linux and in Cisco IOS), and OpenBSD Blowfish-based (now also used on some Linux distributions and supported by recent versions of Solaris). Also supported out of the box are Kerberos/AFS and Windows LM (DES-based) hashes, as well as DES-based tripcodes.

When running on Linux distributions with glibc 2.7+, John 1.7.6+ additionally supports (and autodetects) SHA-crypt hashes (which are actually used by recent versions of Fedora and Ubuntu), with optional OpenMP parallelization (requires GCC 4.2+, needs to be explicitly enabled at compile-time by uncommenting the proper OMPFLAGS line near the beginning of the Makefile).

Similarly, when running on recent versions of Solaris, John 1.7.6+ supports and autodetects SHA-crypt and SunMD5 hashes, also with optional OpenMP parallelization (requires GCC 4.2+ or recent Sun Studio, needs to be explicitly enabled at compile-time by uncommenting the proper OMPFLAGS line near the beginning of the Makefile and at runtime by setting the OMP_NUM_THREADS environment variable to the desired number of threads).

"-jumbo" versions add support for hundreds of additional hash and cipher types, including fast built-in implementations of SHA-crypt and SunMD5, Windows NTLM (MD4-based) password hashes, various macOS and Mac OS X user password hashes, fast hashes such as raw MD5, SHA-1, SHA-256, and SHA-512 (which many "web applications" historically misuse for passwords), various other "web application" password hashes, various SQL and LDAP server password hashes, and lots of other hash types, as well as many non-hashes such as SSH private keys, S/Key skeykeys files, Kerberos TGTs, encrypted filesystems such as macOS .dmg files and "sparse bundles", encrypted archives such as ZIP (classic PKZIP and WinZip/AES), RAR, and 7z, encrypted document files such as PDF and Microsoft Office's - and these are just some examples. To load some of these larger files for cracking, a corresponding bundled *2john program should be used first, and then its output fed into JtR -jumbo.

Graphical User Interface (GUI).

There is an official GUI for John the Ripper: Johnny.

Despite the fact that Johnny is oriented onto JtR core, all basic functionality is supposed to work in all versions, including jumbo.

Johnny is a separate program, therefore you need to have John the Ripper installed in order to use it.

More information about Johnny and its releases is on the wiki:

https://openwall.info/wiki/john/johnny

Documentation.

The rest of documentation is located in separate files, listed here in the recommended order of reading:

  • INSTALL - installation instructions
  • OPTIONS - command line options and additional utilities
  • MODES - cracking modes: what they are
  • CONFIG (*) - how to customize
  • RULES (*) - wordlist rules syntax
  • EXTERNAL (*) - defining an external mode
  • EXAMPLES - usage examples - strongly recommended
  • FAQ - guess
  • CHANGES (*) - history of changes
  • CONTACT (*) - how to contact the author or otherwise obtain support
  • CREDITS (*) - credits
  • LICENSE - copyrights and licensing terms
  • COPYING - GNU GPL version 2, as referenced by LICENSE above

(*) most users can safely skip these.

There are a lot of additional documentation files in jumbo's "doc" directory, which you'll also want to explore.

Happy reading!

john's People

Contributors

alainesp avatar alekseycherepanov avatar anonion0 avatar apingis avatar bartavelle avatar ch3root avatar claudioandre-br avatar e-ago avatar exploide avatar fist0urs avatar frank-dittrich avatar hantwister avatar hlein avatar jfoug avatar juergenhoetzel avatar kholia avatar kost avatar loverszhaokai avatar m3g9tr0n avatar magnumripper avatar narendrakangralkar avatar philsmd avatar qqldd avatar rofl0r avatar samueletonon avatar sayan1an avatar shaneqful avatar solardiz avatar sylvainpelissier avatar taviso avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

john's Issues

static linking issue: libpcap depends on libnetlink

the static linking mechanisms have nothing like the DT_NEEDED section in shared objects, so dependencies don't get linked in automatically.

thus when static linking is used we must use "-lpcap -lnl", or in my case "-lpcap -lnl-tiny" (libnl-tiny is a drop in replacement for netlink, so i should supposedly make a symlink libnl.a -> libnl-tiny.a)

(btw, this only affects the stuff built after john itself)

unstable-jumbo is broken (possibly a dynamic format bug)

✗ git rev-parse HEAD                                                  
0839c3b3138561087fac7c867a6b2ac0defc6bd6
✗ ../run/john hash
Error, trying to link to $dynamic_61$ using ciphertext=$dynamic_61$2a4fa0bf8c6a01dd625d3141746451ba51e07f99dc9143f1e25a37f65cb02eb4$RA FAILED

The hash file contains a "Agile Keychain" hash but I don't think that it really matters which type of hash the file contains.

✗ ../run/john -fo:dynamic_61 -t
Benchmarking: dynamic_61: sha256($s.$p) [32/64 128x1 sha2-OpenSSL]... FAILED (valid)

Maybe commit 0e22777 is bad.

Error compiling macosx-x86-64-opencl

Using latest rev - fc5a94c

gcc -c -Wall -O2 -fomit-frame-pointer -Wdeclaration-after-statement -I/usr/local/include -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops cryptsha256_fmt_plug.c
cryptsha256_fmt_plug.c: In function ‘crypt_all’:
cryptsha256_fmt_plug.c:600: error: ‘CC_SHA256_CTX’ has no member named ‘h’
cryptsha256_fmt_plug.c:609: error: ‘CC_SHA256_CTX’ has no member named ‘h’
cryptsha256_fmt_plug.c:609: error: ‘CC_SHA256_CTX’ has no member named ‘h’
cryptsha256_fmt_plug.c:609: error: ‘CC_SHA256_CTX’ has no member named ‘h’
cryptsha256_fmt_plug.c:609: error: ‘CC_SHA256_CTX’ has no member named ‘h’
cryptsha256_fmt_plug.c:615: error: ‘CC_SHA256_CTX’ has no member named ‘h’
make[1]: *** [cryptsha256_fmt_plug.o] Error 1
make: *** [macosx-x86-64-opencl] Error 2

Self-test fails on dynamic_1300

Benchmarking: dynamic_1300 md5(md5_raw($pass)) [128/128 AVX intrinsics 10x4x3]... FAILED (get_hash0)

Happens on plain 64-bit too.

gcc 4.5.x ICE's with xop

make clean ; make JOHN_CFLAGS="-O3" linux-x86-64-xop
gcc -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer -I/usr/local/include    -DHAVE_KRB5  -O3  -mxop -DHAVE_CRYPT -DHAVE_DL -funroll-loops blake2b_plug.c
blake2b_plug.c: In function ‘blake2b_compress’:
blake2b_plug.c:317:1: error: unrecognizable insn:
(insn 79 78 80 3 /usr/lib64/gcc/x86_64-suse-linux/4.5/include/xopintrin.h:266 (set (reg:V2DI 1027)
        (rotate:V2DI (reg/v:V2DI 124 [ row4l ])
            (const_int -32 [0xffffffffffffffe0]))) -1 (nil))
blake2b_plug.c:317:1: internal compiler error: in extract_insn, at recog.c:2103
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.
make[1]: *** [blake2b_plug.o] Error 1
make[1]: Leaving directory `/media/3T/git-mirror/JohnTheRipper/src'
make: *** [linux-x86-64-xop] Error 2

happens with both gcc 4.5.1 and 4.5.4 so i assume it happens at least for all gcc's in the 4.5.x series

LUKS dies from valid-killer if -DDEBUG

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00007fff8eeec6b0 in strlen ()
(gdb) bt
#0  0x00007fff8eeec6b0 in strlen ()
#1  0x00000001000b51d9 in valid (ciphertext=<value temporarily unavailable, due to optimizations>, self=<value temporarily unavailable, due to optimizations>) at luks_fmt_plug.c:325
#2  0x0000000100104550 in fmt_self_test_body (format=0x100248530, binary_copy=0x100e2af08, salt_copy=0x101059408) at formats.c:239
#3  0x0000000100104051 in fmt_self_test (format=0x100248530) at formats.c:458
#4  0x00000001000fc9b3 in benchmark_format (format=0x100248530, salts=256, results=0x7fff5fbff9a0) at bench.c:163
#5  0x00000001000fd397 in benchmark_all () at bench.c:498
#6  0x0000000100107b69 in john_run () at john.c:1049
#7  0x0000000100107811 in main (argc=3, argv=0x7fff5fbffb50) at john.c:1345

custom CFLAGS lead to missing -c [was: -flto -fwhole-program does not work]


gcc -flto -fwhole-program -O3 -mxop -DHAVE_CRYPT -DHAVE_DL -funroll-loops DES_fmt.c
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/crt1.o: In function `_start':
/usr/src/packages/BUILD/glibc-2.11.3/csu/../sysdeps/x86_64/elf/start.S:109: undefined reference to `main'
/tmp/ccEc71Xa.o: In function `valid':
DES_fmt.c:(.text+0x1a): undefined reference to `atoi64'
DES_fmt.c:(.text+0x34): undefined reference to `atoi64'
DES_fmt.c:(.text+0x48): undefined reference to `atoi64'
DES_fmt.c:(.text+0x7f): undefined reference to `atoi64'
/tmp/ccEc71Xa.o: In function `get_key':
DES_fmt.c:(.text+0x117): undefined reference to `DES_bs_all'
/tmp/ccEc71Xa.o: In function `cmp_exact':
DES_fmt.c:(.text+0x204): undefined reference to `DES_bs_get_binary'
/tmp/ccEc71Xa.o: In function `salt':
DES_fmt.c:(.text+0x245): undefined reference to `DES_raw_get_salt'
/tmp/ccEc71Xa.o: In function `cmp_exact':
DES_fmt.c:(.text+0x214): undefined reference to `DES_bs_cmp_one'
/tmp/ccEc71Xa.o: In function `cmp_one':
DES_fmt.c:(.text+0x228): undefined reference to `DES_bs_cmp_one'
/tmp/ccEc71Xa.o: In function `set_salt':
DES_fmt.c:(.text+0x234): undefined reference to `DES_bs_set_salt'
/tmp/ccEc71Xa.o: In function `init':
DES_fmt.c:(.text+0x2e8): undefined reference to `DES_bs_init'
/tmp/ccEc71Xa.o:(.data+0x50): undefined reference to `fmt_default_prepare'
/tmp/ccEc71Xa.o:(.data+0x68): undefined reference to `DES_bs_get_binary'
/tmp/ccEc71Xa.o:(.data+0xc0): undefined reference to `DES_bs_set_key'
/tmp/ccEc71Xa.o:(.data+0xd0): undefined reference to `fmt_default_clear_keys'
/tmp/ccEc71Xa.o:(.data+0xd8): undefined reference to `DES_bs_crypt_25'
/tmp/ccEc71Xa.o:(.data+0xe0): undefined reference to `DES_bs_get_hash_0'
/tmp/ccEc71Xa.o:(.data+0xe8): undefined reference to `DES_bs_get_hash_1'
/tmp/ccEc71Xa.o:(.data+0xf0): undefined reference to `DES_bs_get_hash_2'
/tmp/ccEc71Xa.o:(.data+0xf8): undefined reference to `DES_bs_get_hash_3'
/tmp/ccEc71Xa.o:(.data+0x100): undefined reference to `DES_bs_get_hash_4'
/tmp/ccEc71Xa.o:(.data+0x108): undefined reference to `DES_bs_get_hash_5'
/tmp/ccEc71Xa.o:(.data+0x110): undefined reference to `DES_bs_get_hash_6'
/tmp/ccEc71Xa.o:(.data+0x118): undefined reference to `DES_bs_cmp_all'
collect2: ld returned 1 exit status
make[1]: *** [DES_fmt.o] Error 1
make[1]: Leaving directory `/media/3T/git-mirror/JohnTheRipper/src'
make: *** [linux-x86-64-xop] Error 2

invoked make as:

make clean && make CFLAGS="-flto -fwhole-program -O3" linux-x86-64-xop

make macosx-x86-64-opencl errors

please try to fix

gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include -I/usr/local/include/nss -I/usr/local/include/nspr -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -funroll-loops opencl_cryptsha512_fmt.c
opencl_cryptsha512_fmt.c:66: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘get_task_max_work_group_size’
opencl_cryptsha512_fmt.c:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘get_task_max_size’
opencl_cryptsha512_fmt.c: In function ‘find_best_workgroup’:
opencl_cryptsha512_fmt.c:209: warning: implicit declaration of function ‘get_task_max_size’
opencl_cryptsha512_fmt.c:221: warning: implicit declaration of function ‘get_task_max_work_group_size’
make[1]: *** [opencl_cryptsha512_fmt.o] Error 1
make: *** [macosx-x86-64-opencl] Error 2

LTO fails with gcc 4.6.3

make clean ; make CC=gcc-4.6.3 CXX=g++4.6.3 JOHN_CFLAGS="-flto -fwhole-program
 -O3" -j9 linux-x86-64
gcc-4.6.3 -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer -I/usr/local/include   -DHAVE_GMP   -flto -fwhole-program -O3  -DHAVE_CRYPT -DHAVE_DL -funroll-loops NT_fmt.c
rawSHA1_ng_fmt.c:741:1: sorry, unimplemented: gimple bytecode streams do not support the optimization attribute
make[1]: *** [rawSHA1_ng_fmt.o] Error 1

same result for linux-x86-64-xop target

edit: works with gcc 4.7.2

macosx-x86-64-opencl: md5crypt-opencl slower than md5

Hi,

checked out today and compiled on my MacBook Pro (10.8.1, 2.2 GHz i7, Xcode 4.4.1).
make macosx-x86-64-opencl worked fine.

Format md5crypt-opencl seems to work (it finds a password) but it's much slower than md5.
I get about 22000 c/s on md5 but only up to half that with md5crypt-opencl.

The desktop also becomes very unresponsive in opencl mode, whereas it's fine in CPU mode.

$ ./john ~/combined.shadow
Warning: detected hash type "md5", but the string is also recognized as "md5crypt-opencl"
Use the "--format=md5crypt-opencl" option to force loading these as that type instead
Loaded 14 password hashes with 12 different salts (FreeBSD MD5 [128/128 SSE2 intrinsics 12x])
Remaining 12 password hashes with 11 different salts
guesses: 0 time: 0:00:00:01 0.41% (2) (ETA: Thu Sep 13 20:32:48 2012) c/s: 22273 trying: francine - golden
guesses: 0 time: 0:00:00:25 28.40% (2) (ETA: Thu Sep 13 20:30:13 2012) c/s: 22885 trying: trebor4 - warrior4
guesses: 0 time: 0:00:00:26 29.50% (2) (ETA: Thu Sep 13 20:30:13 2012) c/s: 22891 trying: corwin4 - dale4
guesses: 0 time: 0:00:00:27 30.57% (2) (ETA: Thu Sep 13 20:30:13 2012) c/s: 22890 trying: karma8 - kitten8
guesses: 0 time: 0:00:00:28 31.69% (2) (ETA: Thu Sep 13 20:30:13 2012) c/s: 22896 trying: disney6 - james6
guesses: 0 time: 0:00:05:18 0.00% (3) c/s: 22668 trying: ponis - ponna
guesses: 0 time: 0:00:05:39 0.00% (3) c/s: 22719 trying: sophaw - sophie

$ ./john ~/combined.shadow --format=md5crypt-opencl
OpenCL platform 0: Apple, 2 device(s).
Using device 1: ATI Radeon HD 6750M
Loaded 14 password hashes with 12 different salts (md5crypt [OpenCL])
Remaining 12 password hashes with 11 different salts
guesses: 0 time: 0:00:00:14 83.45% (1) (ETA: Thu Sep 13 20:35:01 2012) c/s: 0.00
guesses: 0 time: 0:00:00:45 5.26% (2) (ETA: Thu Sep 13 20:49:00 2012) c/s: 736 trying: 123456 - bens
guesses: 0 time: 0:00:01:23 26.33% (2) (ETA: Thu Sep 13 20:39:59 2012) c/s: 6382 trying: matthew7 - notused5
guesses: 0 time: 0:00:01:32 33.29% (2) (ETA: Thu Sep 13 20:39:20 2012) c/s: 7050 trying: sss5 - woodrow6
guesses: 0 time: 0:00:01:37 38.53% (2) (ETA: Thu Sep 13 20:38:56 2012) c/s: 7421 trying: ayelet6 - thelorax?
guesses: 0 time: 0:00:02:06 57.90% (2) (ETA: Thu Sep 13 20:38:21 2012) c/s: 8734 trying: 4mickey - Doc!
guesses: 0 time: 0:00:03:13 99.85% (2) (ETA: Thu Sep 13 20:37:58 2012) c/s: 9881 trying: Xxxing - Sssing
guesses: 0 time: 0:00:03:35 0.00% (3) c/s: 8894 trying: 1952 - shestier
guesses: 0 time: 0:00:03:39 0.00% (3) c/s: 8994 trying: 1952 - shestier
guesses: 0 time: 0:00:03:43 0.00% (3) c/s: 9145 trying: shesties - 0320701
guesses: 0 time: 0:00:03:46 0.00% (3) c/s: 9223 trying: shesties - 0320701
guesses: 0 time: 0:00:03:48 0.00% (3) c/s: 9309 trying: shesties - 0320701
guesses: 0 time: 0:00:04:03 0.00% (3) c/s: 9756 trying: monnin1 - colier2
guesses: 0 time: 0:00:04:05 0.00% (3) c/s: 9796 trying: monnin1 - colier2
guesses: 0 time: 0:00:04:07 0.00% (3) c/s: 9836 trying: monnin1 - colier2
guesses: 0 time: 0:00:04:09 0.00% (3) c/s: 9925 trying: carista - alpcba
guesses: 0 time: 0:00:04:11 0.00% (3) c/s: 9965 trying: carista - alpcba
guesses: 0 time: 0:00:04:24 0.00% (3) c/s: 10314 trying: ceslts - sporn

django problem

django_fmt_plug.o: In function crypt_all': django_fmt_plug.c:(.text+0xc4): undefined reference toPKCS5_PBKDF2_HMAC'
collect2: ld returned 1 exit status

collected during make linux-x86-cuda

des-opencl very slow on OSX

On a Retina MacBook Pro I'm getting 4835K c/s with CPU (hashtype des), only about 500k with des-opencl. The system also becomes unusably slow when running des-opencl.

Built macosx-x86-64-opencl from github source today.

CPU is 2.6 GHz Core i7, GPU detected as follows when using des-opencl.

$ ~/JohnTheRipper/run/john aix-john --format=des-opencl
OpenCL platform 0: Apple, 2 device(s).
Device 1: GeForce GT 650M
Loaded 90 password hashes with 90 different salts (Traditional DES [OpenCL])

Dynamic doesn't load bare hashes.

Regardless of john.conf DynamicAlwaysUseRawHashes, dynamic is supposed to load bare hashes if given a --format=dynamic_xx option.

gcc 4.8.0 warnings

(line numbers are from unstable-jumbo)

DES_std.c: In function 'DES_std_set_key':
DES_std.c:631:17: warning: array subscript is above array bounds [-Warray-bounds]
   while (DES_key[i++]) k += 2;
                 ^
inc.c: In function 'do_incremental_crack':
inc.c:352:12: warning: array subscript is above array bounds [-Warray-bounds]
    [numbers[pos]];
            ^
inc.c:352:12: warning: array subscript is above array bounds [-Warray-bounds]
inc.c:405:16: warning: array subscript is above array bounds [-Warray-bounds]
   if (++numbers[pos] <= count) goto update_all;
                ^
inc.c:405:16: warning: array subscript is above array bounds [-Warray-bounds]
inc.c:405:16: warning: array subscript is above array bounds [-Warray-bounds]
inc.c:405:16: warning: array subscript is above array bounds [-Warray-bounds]
inc.c:406:10: warning: array subscript is above array bounds [-Warray-bounds]
   numbers[pos] = 0;
          ^

Fix macosx-ppc32-altivec for gcc-4.3+

I'm not sure if Apple just used different altivec extensions or what but you cannot compile jtr with powerpc when using a newer compiler.

I've been working on a patch and managed to fix compiler errors for sboxes-s.c but compiler errors exist in DES_bs_b.c and I can't figure out where they are.

pfx cracking: 8k+ P12/PFX error

Hi,

I try to crack P12 and PFX files using pfx2john followed by firing up john. John exits with the following message:

Unable to create PKCS12 object from bio
: Success

It seems to have something to do with the input file: the error only occurs when trying to crack a hash that resulted from a P12 of PFX file that's > 8k. The pfx2john output looks just fine.

Cheers,

Jeroen

agilekc2john.py 1Password

The mobile version of 1Password.agilekeychain does not extract hash from encryptionKeys.js file.

$ ./agilekc2john.py 1Password.agilekeychain
error while opening the keychain, Incorrect padding

MacOS: ld: symbol(s) not found for architecture x86_64

gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include -m64 -Wno-deprecated-declarations -funroll-loops undrop.c
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include -m64 -Wno-deprecated-declarations -funroll-loops unique.c
gcc -c -m64 -DUNDERSCORES -DBSD -DALIGN_LOG x86-64.S
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include -m64 -Wno-deprecated-declarations -funroll-loops sse-intrinsics.c
gcc DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o timer.o md5_go.o md5_eq.o md5.o rc4.o hmacmd5.o base64.o md4.o dynamic_fmt.o dynamic_parser.o dynamic_preloads.o dynamic_utils.o rawSHA224_fmt.o rawSHA256_fmt.o rawSHA384_fmt.o rawSHA512_fmt.o hmacMD5_fmt.o hmacSHA1_fmt.o hmacSHA224_fmt.o hmacSHA256_fmt.o hmacSHA384_fmt.o hmacSHA512_fmt.o XSHA512_fmt.o hmailserver_fmt.o dragonfly3_fmt.o dragonfly4_fmt.o drupal7_fmt.o django_fmt.o cryptsha256_fmt.o cryptsha512_fmt.o SybaseASE_fmt.o SKEY_fmt.o ssh_fmt.o ssh2john.o pdf_fmt.o pdf2john.o pdfcrack_common.o pdfcrack_md5.o pdfparser.o pdfcrack.o pdfcrack_rc4.o unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o rar_fmt.o rar2john.o rawSHA0_fmt.o zip_fmt.o zip2john.o gladman_hmac.o gladman_pwd2key.o racf2john.o pwsafe2john.o hccap2john.o mozilla_fmt.o KeyDBCracker.o mozilla_des.o lowpbe.o mozilla2john.o BFEgg_fmt_plug.o DMD5_fmt_plug.o DOMINOSEC_fmt_plug.o EPI_fmt_plug.o HDAA_fmt_plug.o IPB2_fmt_plug.o KRB4_fmt_plug.o KRB4_std_plug.o KRB5_fmt_plug.o KRB5_std_plug.o MSCHAPv2_fmt_plug.o MYSQL_fast_fmt_plug.o MYSQL_fmt_plug.o NETLM_fmt_plug.o NETLMv2_fmt_plug.o NETNTLM_fmt_plug.o NETNTLMv2_fmt_plug.o NETSPLITLM_fmt_plug.o NS_fmt_plug.o NT_fmt_plug.o PHPS_fmt_plug.o PO_fmt_plug.o XSHA_fmt_plug.o crc32_fmt_plug.o episerver_fmt_plug.o gost_fmt_plug.o gost_plug.o keychain_fmt_plug.o lotus5_fmt_plug.o md4_gen_fmt_plug.o mediawiki_fmt_plug.o mscash1_fmt_plug.o mscash2_fmt_plug.o mskrb5_fmt_plug.o mssql-old_fmt_plug.o mssql05_fmt_plug.o mysqlSHA1_fmt_plug.o nsldap_fmt_plug.o nt2_fmt_plug.o office_fmt_plug.o oracle11_fmt_plug.o oracle_fmt_plug.o osc_fmt_plug.o phpassMD5_fmt_plug.o pixMD5_fmt_plug.o pkzip_fmt_plug.o pwsafe_fmt_plug.o racf_fmt_plug.o rawMD4_fmt_plug.o rawMD5_fmt_plug.o rawSHA1_LinkedIn_fmt_plug.o rawSHA1_fmt_plug.o rawmd5u_fmt_plug.o salted_sha1_fmt_plug.o sapB_fmt_plug.o sapG_fmt_plug.o sha1_gen_fmt_plug.o sip_fmt_plug.o vnc_fmt_plug.o wbb3_fmt_plug.o taviso_fmt.o plugin.o dummy.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o mkv.o mkvlib.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o unique.o x86-64.o sse-intrinsics.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz -m64 -o ../run/john
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: option -s is obsolete and being ignored
Undefined symbols for architecture x86_64:
"_memrchr", referenced from:
_sha1_fmt_get_key in taviso_fmt.o
_sha1_fmt_cmp_one in taviso_fmt.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [../run/john] Error 1
make: *** [macosx-x86-64] Error 2

Keccak build warnings

On SSE2, no warnings.

On AVX:


In file included from KeccakF-1600-opt64_plug.c:69:0:
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:181:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:181:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:195:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:195:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring576bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:213:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:213:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring832bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:229:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:229:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1024bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:245:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:245:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1088bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:261:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:261:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1152bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:277:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:277:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1344bits':
KeccakF-1600-simd128.macros:28:29: warning: unused variable 'Bmu' [-Wunused-variable]
     V64 Bma, Bme, Bmi, Bmo, Bmu; \
                             ^
KeccakF-1600-opt64_plug.c:293:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^
KeccakF-1600-simd128.macros:27:24: warning: unused variable 'Bko' [-Wunused-variable]
     V64 Bka, Bke, Bki, Bko, Bku; \
                        ^
KeccakF-1600-opt64_plug.c:293:5: note: in expansion of macro 'declareABCDE'
     declareABCDE
     ^

On XOP:

KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring':
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring576bits':
KeccakF-1600-opt64_plug.c:213:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:213:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:213:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:213:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:213:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring832bits':
KeccakF-1600-opt64_plug.c:229:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:229:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:229:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:229:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:229:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1024bits':
KeccakF-1600-opt64_plug.c:245:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:245:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:245:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:245:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:245:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1088bits':
KeccakF-1600-opt64_plug.c:261:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:261:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:261:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:261:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:261:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1152bits':
KeccakF-1600-opt64_plug.c:277:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:277:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:277:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:277:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:277:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1344bits':
KeccakF-1600-opt64_plug.c:293:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:293:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:293:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:293:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:293:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64_plug.c:187:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring':
KeccakF-1600-opt64_plug.c:204:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring576bits':
KeccakF-1600-opt64_plug.c:219:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring832bits':
KeccakF-1600-opt64_plug.c:235:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1024bits':
KeccakF-1600-opt64_plug.c:251:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1088bits':
KeccakF-1600-opt64_plug.c:267:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1152bits':
KeccakF-1600-opt64_plug.c:283:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring1344bits':
KeccakF-1600-opt64_plug.c:299:5: warning: 'Zero' is used uninitialized in this function [-Wuninitialized]

Keccak code breaks on hardware better than SSE2.

SSE2 build works fine here and on Bull. But AVX or XOP (or -native) builds fail after a wad of warnings. This also means GPU builds fail on most modern hardware since they also use -march=native.

This might be easy but I'm not sure where to start.

First couple of warnings for AVX:

KeccakF-1600-opt64_plug.c:135:6: error: #error "UseBebigokimisa cannot be used in combination with UseXOP"
     #error "UseBebigokimisa cannot be used in combination with UseXOP"
      ^
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64_plug.c:187:5: warning: implicit declaration of function '_mm_roti_epi64' [-Wimplicit-function-declaration]
     rounds
     ^
KeccakF-1600-opt64_plug.c:187:5: error: incompatible type for argument 2 of '_mm_xor_si128'
In file included from /usr/local/Cellar/gcc48/4.8.0/gcc/lib/gcc/x86_64-apple-darwin12.3.0/4.8.0/include/xmmintrin.h:1246:0,
                 from /usr/local/Cellar/gcc48/4.8.0/gcc/lib/gcc/x86_64-apple-darwin12.3.0/4.8.0/include/x86intrin.h:34,
                 from KeccakF-1600-opt64_plug.c:76:
/usr/local/Cellar/gcc48/4.8.0/gcc/lib/gcc/x86_64-apple-darwin12.3.0/4.8.0/include/emmintrin.h:1248:1: note: expected '__m128i' but argument is of type 'int'
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^

and for XOP:

KeccakF-1600-opt64_plug.c:135:6: error: #error "UseBebigokimisa cannot be used in combination with UseXOP"
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWords':
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:181:5: warning: unused variable 'Amae' [-Wunused-variable]
KeccakF-1600-opt64_plug.c: In function 'KeccakPermutationOnWordsAfterXoring':
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Dio' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Dua' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Ama' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Aku' [-Wunused-variable]
KeccakF-1600-opt64_plug.c:195:5: warning: unused variable 'Amae' [-Wunused-variable]

As a workaround until we get it straight, we could add some #undef __SSSE3__, #undef __XOP__ and so on in some of the headers for keccak.

Successful compile doesn't work macosx-x86-64-opencl

Downloaded from the OpenWall site and making the unsigned int / uint changes I was able to compile with the following errors:

md5u_fmt_plug.o salted_sha1_fmt_plug.o sapB_fmt_plug.o sapG_fmt_plug.o sha1_gen_fmt_plug.o sip_fmt_plug.o vnc_fmt_plug.o wbb3_fmt_plug.o rawSHA1_ng_fmt.o plugin.o dummy.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o mkv.o mkvlib.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o unique.o common-opencl.o common_opencl_pbkdf2.o opencl_mysqlsha1_fmt.o opencl_cryptmd5_fmt.o opencl_phpass_fmt.o opencl_rawsha1_fmt.o opencl_nt_fmt.o opencl_rawmd5_fmt.o opencl_nsldaps_fmt.o opencl_cryptsha512_fmt.o opencl_mscash2_fmt.o opencl_wpapsk_fmt.o opencl_xsha512_fmt.o opencl_rawsha512_fmt.o opencl_bf_std.o opencl_bf_fmt.o opencl_pwsafe_fmt.o x86-64.o sse-intrinsics.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/john
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
rm -f ../run/unshadow
ln -s john ../run/unshadow
rm -f ../run/unafs
ln -s john ../run/unafs
rm -f ../run/unique
ln -s john ../run/unique
rm -f ../run/undrop
ln -s john ../run/undrop
rm -f ../run/ssh2john
ln -s john ../run/ssh2john
rm -f ../run/pdf2john
ln -s john ../run/pdf2john
rm -f ../run/rar2john
ln -s john ../run/rar2john
rm -f ../run/zip2john
ln -s john ../run/zip2john
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops genmkvpwd.c
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops -D_JOHN_MISC_NO_LOG misc.c -o miscnl.o
gcc genmkvpwd.o mkvlib.o memory.o miscnl.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/genmkvpwd
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops mkvcalcproba.c
gcc mkvcalcproba.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/mkvcalcproba
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops calc_stat.c
gcc calc_stat.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/calc_stat
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops tgtsnarf.c
gcc tgtsnarf.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/tgtsnarf
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
rm -f ../run/racf2john
ln -s john ../run/racf2john
make[1]: Nothing to be done for `../run/mozilla2john'.
rm -f ../run/hccap2john
ln -s john ../run/hccap2john
rm -f ../run/pwsafe2john
ln -s john ../run/pwsafe2john
gcc -c -Wall -O2 -fomit-frame-pointer -I/usr/local/include     -m64 -I/usr/local/cuda/include -DBSD -DCL_VERSION_1_0 -Wno-deprecated-declarations -funroll-loops raw2dyna.c
gcc raw2dyna.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz    -m64 -L/usr/local/cuda/lib/x86_64 -L/lib64 -framework OpenCL -o ../run/raw2dyna
ld: warning: directory not found for option '-L/usr/local/ssl/lib'
ld: warning: directory not found for option '-L/usr/local/cuda/lib/x86_64'
ld: warning: directory not found for option '-L/lib64'
ld: warning: option -s is obsolete and being ignored
rm -f ../run/keepass2john
ln -s john ../run/keepass2john
[ -f ../run/john.local.conf ] || touch ../run/john.local.conf
cp opencl/*.cl ../run/
cp opencl_*.h ../run/

which resuts in:

/opt/john-1.7.9-jumbo-6/run $ ./john md5test.txt --format=raw-md5-opencl
OpenCL platform 0: Apple, 2 device(s).
Using device 0: Intel(R) Core(TM) i7 CPU       M 620  @ 2.67GHz
Max local work size 1024 Error -54
Error -54
Error -54
Error -54
Error -54
Error -54
Error -54
Error -54
Error -54
Error -54
Optimal local work size 1
(to avoid this test on next run do export LWS=1)
Local work size (LWS) 1, Global work size (GWS) 2097152
Loaded 1 password hash (Raw MD5 [OpenCL])
guesses: 0  time: 0:00:00:05 99.90% (1) (ETA: Tue Jul  3 16:34:44 2012)  c/s: 0.00
guesses: 0  time: 0:00:00:10 98.24% (2) (ETA: Tue Jul  3 16:34:49 2012)  c/s: 76.88  trying: 123456 - Sssing
Session aborted
/opt/john-1.7.9-jumbo-6/run $ ./john md5test.txt --format=raw-md5-opencl --device=1
OpenCL platform 0: Apple, 2 device(s).
Using device 1: GeForce GT 330M
Compilation log: Error getting function data from server
OpenCL error (CL_INVALID_PROGRAM_EXECUTABLE) in file (opencl_rawmd5_fmt.c) at line (218) - (Error creating kernel. Double-check kernel name?)

And if this helps here is the device list:

/opt/john-1.7.9-jumbo-6/run$ ./john --list=opencl-devices
Platform #0 name: Apple
Platform version: OpenCL 1.1 (Apr  9 2012 19:41:45)
    Device #0 name:     Intel(R) Core(TM) i7 CPU       M 620  @ 2.67GHz
    Device vendor:      Intel
    Device type:        CPU (LE)
    Device version:     OpenCL 1.1 
    Driver version:     1.1
    Global Memory:      8192 MB
    Global Memory Cache:    64 bytes
    Local Memory:       32 KB (Global)
    Max clock (MHz) :   2660
    Max Work Group Size:    1024
    Parallel compute cores: 4

    Device #1 name:     GeForce GT 330M
    Device vendor:      NVIDIA
    Device type:        GPU (LE)
    Device version:     OpenCL 1.0 
    Driver version:     CLH 1.0
    Global Memory:      512 MB
    Global Memory Cache:    0 bytes
    Local Memory:       16 KB (Local)
    Max clock (MHz) :   1100
    Max Work Group Size:    512
    Parallel compute cores: 6
    Stream processors:  48  (6 x 8)

mask attack

I have a question for the developers! Will there be or when the mask attack

unconditional inclusion of some directories

the makefile adds -I/usr/local/include (and -L /usr/local/lib), among other non-standard paths.

imo if someone uses these non-standard paths he should supply the corresponding CFLAGS/LDFLAGS on his own.

it is not expected that the makefile uses those paths unconditionally and could break the build for users that have installed experimental things in those directories.

Issue with Make of putty2john

/opt/JohnTheRipper/src# make linux-x86-64-gpu
(snip)

E_OPENCL -DHAVE_CUDA -DHAVE_DL -march=native -funroll-loops unique.c
gcc -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer -I/usr/local/include        -I/usr/local/cuda/include -DHAVE_CRYPT -DHAVE_OPENCL -DHAVE_CUDA -DHAVE_DL -march=native -funroll-loops putty2john.c
putty2john.c:129:3: error: redefinition of typedef âFilenameâ
putty2john.c:46:25: note: previous declaration of âFilenameâ was here
make[1]: *** [putty2john.o] Error 1
make[1]: Leaving directory `/opt/JohnTheRipper/src'
make: *** [linux-x86-64-gpu] Error 2

Running on 2.6.38-16-generic Ubuntu 11.04 x86_64

Document Cracking

Hey I'm doing a fourth year project about cracking encrypted documents, MSOffice, OpenOffice and PDF files on a distributed network of raspberry pi micro computers. I'm using john as the cracking software on each of the slave nodes in the network. If there is anything that needs to be done to help speed up the cracking of these documents types or clean up the code, please let me know. I'd love help out.

static linking john fails due to duplicated libcrypto functionality

note: requires JOHN_LDFLAGS patch as in pull req #253

make clean; make CC=gcc-4.7.2 CXX=g++-4.7.2 JOHN_CFLAGS="-flto -fwhole-program
 -O3" JOHN_LDFLAGS=-static -j9 linux-x86-64-xop
gcc-4.7.2 DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o timer.o md5_go.o md5.o rc4.o hmacmd5.o base64.o md4.o sha2.o dynamic_fmt.o dynamic_parser.o dynamic_preloads.o dynamic_utils.o hmacMD5_fmt.o hmacSHA1_fmt.o django_fmt.o truecrypt_fmt.o SKEY_fmt.o ssh_fmt.o ssh2john.o pfx_fmt.o pfx2john.o unrarcmd.o unrarfilter.o unrarhlp.o unrar.o unrarppm.o unrarvm.o rar_fmt.o rar2john.o rawSHA0_fmt.o zip_fmt.o zip2john.o gladman_hmac.o gladman_pwd2key.o racf2john.o keychain2john.o kwallet2john.o pwsafe2john.o dmg2john.o keepass2john.o keyring2john.o wpapsk_fmt.o hccap2john.o mozilla_fmt.o KeyDBCracker.o mozilla_des.o lowpbe.o mozilla2john.o krb5-18_fmt.o krb5-23_fmt.o BFEgg_fmt_plug.o SybaseASE_fmt_plug.o rawmd5u_fmt_plug.o nsldap_fmt_plug.o rawBLAKE2_512_fmt_plug.o oracle_fmt_plug.o encfs_fmt_plug.o vms_fmt_plug.o mscash2_fmt_plug.o vnc_fmt_plug.o hmacSHA224_fmt_plug.o lotus5_fmt_plug.o NETNTLM_bs_fmt_plug.o mongodb_fmt_plug.o XSHA512_fmt_plug.o pst_fmt_plug.o oldoffice_fmt_plug.o postgres_fmt_plug.o sha1_gen_fmt_plug.o PO_fmt_plug.o lastpass_fmt_plug.o HDAA_fmt_plug.o hmacSHA512_fmt_plug.o rawSHA224_fmt_plug.o NETNTLMv2_fmt_plug.o sunmd5_fmt_plug.o krb5pa-md5_fmt_plug.o nukedclan_fmt_plug.o chap_fmt_plug.o keyring_fmt_plug.o oracle11_fmt_plug.o gpg_fmt_plug.o rawSHA1_fmt_plug.o episerver_fmt_plug.o DOMINOSEC_fmt_plug.o wow_srp_fmt_plug.o racf_fmt_plug.o nt2_fmt_plug.o pkzip_fmt_plug.o ike_fmt_plug.o lastpass_sniffed_fmt_plug.o agilekeychain_fmt_plug.o office_fmt_plug.o radmin_fmt_plug.o keychain_fmt_plug.o crc32_fmt_plug.o MSCHAPv2_fmt_plug.o KRB5_std_plug.o FGT_fmt_plug.o rawSHA256_fmt_plug.o rawSHA384_fmt_plug.o phpassMD5_fmt_plug.o EPI_fmt_plug.o mediawiki_fmt_plug.o sapG_fmt_plug.o bad_blowfish_plug.o uaf_encode_plug.o o5logon_fmt_plug.o blake2b_plug.o md4_gen_fmt_plug.o pdfcrack_md5_plug.o strip_fmt_plug.o KRB4_std_plug.o cryptsha256_fmt_plug.o mssql12_fmt_plug.o mysql_fmt_plug.o NETSPLITLM_fmt_plug.o ssh_ng_fmt_plug.o clipperz_srp_fmt_plug.o cryptsha512_fmt_plug.o DMD5_fmt_plug.o keepass_fmt_plug.o rawSHA512_fmt_plug.o pwsafe_fmt_plug.o dragonfly4_fmt_plug.o NETLM_fmt_plug.o mysqlSHA1_fmt_plug.o kwallet_fmt_plug.o salted_sha1_fmt_plug.o XSHA_fmt_plug.o rawSHA1_linkedIn_fmt_plug.o mssql05_fmt_plug.o formspring_fmt_plug.o blake2b-ref_plug.o sip_fmt_plug.o pbkdf2-hmac-sha512_fmt_plug.o rawMD4_fmt_plug.o dmg_fmt_plug.o pdf_fmt_plug.o IPB2_fmt_plug.o KRB4_fmt_plug.o mscash1_fmt_plug.o NS_fmt_plug.o mssql-old_fmt_plug.o pixMD5_fmt_plug.o KRB5_fmt_plug.o sxc_fmt_plug.o krb5pa-sha1_fmt_plug.o PHPS_fmt_plug.o putty_fmt_plug.o wbb3_fmt_plug.o NETNTLM_fmt_plug.o hmailserver_fmt_plug.o sapB_fmt_plug.o rawMD5_fmt_plug.o hmacSHA256_fmt_plug.o osc_fmt_plug.o hmacSHA384_fmt_plug.o gost_fmt_plug.o mysql_netauth_fmt_plug.o odf_fmt_plug.o drupal7_fmt_plug.o NETLMv2_fmt_plug.o dragonfly3_fmt_plug.o MSCHAPv2_bs_fmt_plug.o rawSHA1_ng_fmt.o plugin.o dummy.o NT_fmt.o gost.o batch.o bench.o charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o tty.o wordlist.o mkv.o mkvlib.o listconf.o fake_salts.o win32_memmap.o unicode.o unshadow.o unafs.o undrop.o unique.o putty2john.o c3_fmt.o x86-64.o sse-intrinsics.o -s -L/usr/local/lib -L/usr/local/ssl/lib -lssl -lcrypto -lm -lz -static -flto -fwhole-program -O3   -lgmp  -lcrypt -ldl -o ../run/john
/lib/libcrypto.a(md5_dgst.o): In function `MD5_Update':
md5_dgst.c:(.text+0x0): multiple definition of `MD5_Update'
md5.o:md5.c:(.text+0x870): first defined here
/lib/libcrypto.a(md5_dgst.o): In function `MD5_Final':
md5_dgst.c:(.text+0x230): multiple definition of `MD5_Final'
md5.o:md5.c:(.text+0xa30): first defined here
/lib/libcrypto.a(md5_dgst.o): In function `MD5_Init':
md5_dgst.c:(.text+0x360): multiple definition of `MD5_Init'
md5.o:md5.c:(.text+0x840): first defined here
collect2: error: ld returned 1 exit status

zip2john fails to work for some files posted on sample "non-hashes" page

  1. Download and extract http://openwall.info/wiki/_media/john/zip_sample_files.tar
  2. Run zip2john on "zip0_password.zip" file. This results in no output hash.
  3. The following patch will enable zip2john to emit the output hash. However the resulting hash couldn't be cracked (the password is "password") by john. Seems like more fixing is required.
-                       if (LoadZipBlob(fp, &curzip, &zfp, fname) && curzip.decomp_len > 12) {
+                       if (LoadZipBlob(fp, &curzip, &zfp, fname) && curzip.decomp_len > 3) {

bleeding jumbo - opencl

Not cleanly compiling with opencl.

gcc -c -Wall -Wdeclaration-after-statement -O2 -fomit-frame-pointer -I/usr/local/include -DHAVE_KRB5 -DAMDAPPSDK -I/opt/AMD-AP
P-SDK-v2.8-RC-lnx32//include -DHAVE_CRYPT -DHAVE_OPENCL -DHAVE_DL -DUSING_ICC_S_FILE -funroll-loops rawSHA512_ng_fmt.c
In file included from rawSHA512_ng_fmt.c:26:
/usr/lib/gcc/i486-linux-gnu/4.4.3/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
rawSHA512_ng_fmt.c: In function ?crypt_all?:
rawSHA512_ng_fmt.c:342: error: ?__m128i? undeclared (first use in this function)
rawSHA512_ng_fmt.c:342: error: (Each undeclared identifier is reported only once
rawSHA512_ng_fmt.c:342: error: for each function it appears in.)
rawSHA512_ng_fmt.c:342: error: expected ?;? before ?a?
rawSHA512_ng_fmt.c:343: error: expected ?;? before ?w?
rawSHA512_ng_fmt.c:346: error: ?w? undeclared (first use in this function)
rawSHA512_ng_fmt.c:346: warning: implicit declaration of function ?_mm_setzero_si128?
rawSHA512_ng_fmt.c:346: warning: implicit declaration of function ?_mm_set_epi64x?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_shufflehi_epi16?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_shufflelo_epi16?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_xor_si128?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_slli_epi16?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_srli_epi16?
rawSHA512_ng_fmt.c:347: warning: implicit declaration of function ?_mm_shuffle_epi32?
rawSHA512_ng_fmt.c:348: warning: implicit declaration of function ?_mm_add_epi64?
rawSHA512_ng_fmt.c:348: warning: implicit declaration of function ?_mm_srli_epi64?
rawSHA512_ng_fmt.c:348: warning: implicit declaration of function ?_mm_slli_epi64?
rawSHA512_ng_fmt.c:350: error: ?a? undeclared (first use in this function)
rawSHA512_ng_fmt.c:350: warning: implicit declaration of function ?_mm_set1_epi64x?
rawSHA512_ng_fmt.c:350: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:351: error: ?b? undeclared (first use in this function)
rawSHA512_ng_fmt.c:351: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:352: error: ?c? undeclared (first use in this function)
rawSHA512_ng_fmt.c:352: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:353: error: ?d? undeclared (first use in this function)
rawSHA512_ng_fmt.c:353: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:354: error: ?e? undeclared (first use in this function)
rawSHA512_ng_fmt.c:354: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:355: error: ?f? undeclared (first use in this function)
rawSHA512_ng_fmt.c:355: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:356: error: ?g? undeclared (first use in this function)
rawSHA512_ng_fmt.c:356: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:357: error: ?h? undeclared (first use in this function)
rawSHA512_ng_fmt.c:357: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:359: error: ?tmp1? undeclared (first use in this function)
rawSHA512_ng_fmt.c:359: warning: implicit declaration of function ?_mm_and_si128?
rawSHA512_ng_fmt.c:359: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:359: error: ?tmp2? undeclared (first use in this function)
rawSHA512_ng_fmt.c:360: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:361: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:362: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:363: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:364: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:365: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:366: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:367: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:368: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:369: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:370: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:371: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:372: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:373: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:374: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:376: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:377: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:378: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:379: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:380: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:381: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:382: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:383: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:384: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:385: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:386: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:387: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:388: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:389: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:390: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:391: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:393: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:394: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:395: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:396: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:397: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:398: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:399: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:400: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:401: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:402: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:403: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:404: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:405: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:406: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:407: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:408: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:410: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:411: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:412: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:413: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:414: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:415: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:416: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:417: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:418: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:419: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:420: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:421: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:422: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:423: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:424: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:425: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:427: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:428: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:429: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:430: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:431: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:432: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:433: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:434: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:435: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:436: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:437: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:438: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:439: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:440: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:441: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:442: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:444: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:445: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:446: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:447: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:448: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:449: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:450: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:451: warning: integer constant is too large for ?long? type
rawSHA512_ng_fmt.c:453: warning: implicit declaration of function ?_mm_store_si128?
rawSHA512_ng_fmt.c:453: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:454: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:455: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:456: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:457: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:458: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:459: error: expected expression before ?)? token
rawSHA512_ng_fmt.c:460: error: expected expression before ?)? token
make[1]: *** [rawSHA512_ng_fmt.o] Error 1
make[1]: Leaving directory `/root/bleeding/john/src'
make: *** [linux-x86-opencl] Error 2
root@bt:~/bleeding/john/src#

OpenSSL dependency in AIX ssha format

Trying with OpenSSL OpenSSL 0.9.8r (which is what is supplied with OSX 10.8.2):

Undefined symbols for architecture i386:
"_PKCS5_PBKDF2_HMAC", referenced from:
_crypt_all in aix_ssha_fmt_plug.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
make[1]: *** [../run/john] Error 1
make: *** [macosx-x86-sse2] Error 2

gpg-opencl does not work

The gpg-opencl does not function properly. It finds a password, but does not output it right. Instead of outputting the password, it seems that it outputs the key filename/path of the key instead. I'm trying on a private key that has the password "per". Both running opencl on the cpu and gpu fails, but using the cpu cracker works.

To reproduce:
I compiled the fcd70bd from unstable on 32bit ubuntu and used the key http://folk.ntnu.no/pettso/public/secret.key password:per

make clean linux-x86-opencl
make gpg2john
./gpg2john ~/bugreport/keys/secret.key > ~/bugreport/parsed.out

Crack using gpg-opencl HD5970

./john -fo:gpg-opencl ~/bugreport/parsed.out
OpenCL platform 0: AMD Accelerated Parallel Processing, 3 device(s).
Using device 0: Cypress
Compilation log:
Warning: gpg kernel has register spilling. Lower performance is expected.

Loaded 1 password hash (OpenPGP / GnuPG Secret Key [OpenCL])
/home/petter/bu (/home/petter/bugreport/keys/secret.key)
guesses: 1 time: 0:00:00:00 DONE (Tue Oct 9 15:32:02 2012) c/s: 3716 trying: /home/petter/bu - Pbugreport0
Use the "--show" option to display all of the cracked passwords reliably

./john --show ~/bugreport/parsed.out
/home/petter/bugreport/keys/secret.key:/home/petter/bu

1 password hash cracked, 0 left

Crack using gpg-opencl CPU

rm john.pot
./john -fo:gpg-opencl -dev=2 ~/bugreport/parsed.out
OpenCL platform 0: AMD Accelerated Parallel Processing, 3 device(s).
Using device 2: Intel(R) Core(TM) i7 CPU 940 @ 2.93GHz
Loaded 1 password hash (OpenPGP / GnuPG Secret Key [OpenCL])
/home/petter/bu (/home/petter/bugreport/keys/secret.key)
guesses: 1 time: 0:00:00:52 DONE (Tue Oct 9 15:42:30 2012) c/s: 43.93 trying: /home/petter/bu - Pbugreport0
Use the "--show" option to display all of the cracked passwords reliably

./john --show ~/bugreport/parsed.out
/home/petter/bugreport/keys/secret.key:/home/petter/bu

1 password hash cracked, 0 left

Crack using gpg

rm john.pot
./john -fo:gpg ~/bugreport/parsed.out
Loaded 1 password hash (OpenPGP / GnuPG Secret Key [32/32])
pet (/home/petter/bugreport/keys/secret.key)
guesses: 1 time: 0:00:00:00 DONE (Tue Oct 9 15:46:59 2012) c/s: 1085 trying: pet
Use the "--show" option to display all of the cracked passwords reliably

./john --show ~/bugreport/parsed.out
/home/petter/bugreport/keys/secret.key:pet

1 password hash cracked, 0 left

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.