Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 6 May 2011 19:11:51 -0500
From: "JimF" <>
To: <>
Subject: John core change patch (and md5-gen, etc)

This has been put on the wiki.  It is actually 'based' as jumbo-2 (in the 
params.h, but that can be changed as needed). Here are the changes:

If one of these 'not included', is the recent changes to the 'generic'
(md5_gen), and the format changes (along with bench/format/loader), then
hold up a little.  I have been working hard on it.  I have got these things.
Many of these items were in the 1.7.6 patch.  Many have been added since
that patch.

New formats:

md5_gen(18) | PostOffice MD5 (PO)
md5_gen(19) | Cisco PIX
md5_gen(20) | Cisco PIX (salted)
md5_gen(21) | HTTP Digest Access Auth
md5_gen(22) | md5(sha1($p))
md5_gen(23) | sha1(md5($p))
md5_gen(24) | sha1($p.$s)
md5_gen(25) | sha1($s.$p)
md5_gen(26) | sha1-raw
md5_gen(27) | OpenBSD MD5  (SSE working but SSE-para has not been added to
these 2 formats yet)
md5_gen(28) | Apache MD5

Significant changes to code in the md5_gen. I now try to use the 'md5_body'
code, both the MD5_X2 and 'single', depending upon is listed in arch.h
NOTE to do this, I had to expose some functions within md5_std.c (they were
static).  Also, I had to call the init function, for MD5_IMM builds (that
issue mad me pull my hair out for a while).  This was a big change, but
makes a big difference.

md5_gen is now working/tested with big-endian systems (only a X2 actually
built and tested).  However, all changes should work on an X1 build.  There
were numerous changes needed to get many of the formats working. Also, many
of the better optimizations had to be done differently, so as to not have to
call swap functions all over the place.

The format structure has been changed.  All format files have been updated.
New method is 'prepare'.  Also, the init and valid take a pointer to the
format structure being used.

The md5 gen (from the interface john sees, the format structure), is now a
'normal' format, and not a format that morphs itself.  Thus when john loads
the md5_gen, it will

I have (again) gotten loader code updated (with the core changes).  NOTE ,
there is one section I am not sure of.  That section is the code that fixes
a 'bugus' salt, or something like that.

All 'special' code for md5_gen format has been removed from bench.c and

All 'special' loader code for formats has been removed from loader.c.  It is
now contained within the prepare function of the *_fmt.c files.

Changes made to md5-mmx.S and sha1-mmx.S (and the header files), to get
SSE2/MMX code working for VC builds.  To do this, you still have to build
with MinGW (to build the .S files, into .o files).  The main changes are
additions of marshal functions usable by VC to properly setup the stack and
registers, prior to jumping to the 'real' functions. All of this code is
properly #defined, so it will not impact any other build at all.

New 'filter' in john.conf

'simple' unicode conversions within md5_gen.  Not utf8->unicode, but simple 

Fixed DOS formatting on DMD5_fmt.c

Added __declspec(align(16)) for VC (properly #defined) for all MMX/SSE2 

NT format properly works with PWdump files, in prepare function. Prior code 
only LM worked.

Updated the PHPS 'thin' client to new md5_gen 'thin' code (needed since core 

Wrote many 'thin' formats, but they will be released later as individual 

memory cleanup for 'tiny' memory routines.

in mysqlSHA1, reduce size of SSE memset, and perform last SSE to not byte 
swap final. also new SSE SHA1 function.

the --subformat command line switch has been depricated.  Still there, due 
to nice --subform=list syntax

Changed many #if defined into #ifdef and if !defined into #ifndef, since I 
saw many $ifdef _MSC_VER in 1.7.7 which were #if defined() before.

Bumped PLAINTEXT_LENGTH of ns_fmt from 15 to 25

Bumped PLAINTEXT_LENGTH of mssql05_fmt from 20 to 25

In mssql05_fmt, commented out setting the 2nd unicode bytes to 0. There 
already is a memset, so these are redeundant and not needed.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.