Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1369f1f.5347.1393499f804.Webtop.0@cox.net>
Date: Fri, 17 Aug 2012 08:41:09 -0400 (EDT)
From: jfoug@....net
To: john-users@...ts.openwall.com
Subject: Re: Cracking Gauss using dynamic


On Fri, Aug 17, 2012 at 7:31 AM, jfoug@....net wrote:

> On Fri, Aug 17, 2012 at 12:40 AM, Solar Designer wrote:
>> I thought that maybe the implementation of phpass in the dynamic
>> format was generic enough - but it is not.  Its loop is hardcoded in
>> DynamicFunc__PHPassCrypt().  So it seems like the current dynamic 
>> format
>> is incapable of arbitrary loops.  This may be something for JimF to
>> enhance - not for this specific target, but in general.
>
> There is no looping, or variables, or much of any other 'fancy' things 
> in dynamic.  Mostly, it is an array of very simple function pointers, 
> such as:  clear-this-buffer, append-this-string, crypt-this-buffer, 
> convert-this-to-base-16-and-append-to-buffer, etc, etc.  Those are not 
> the real function names, but that is pretty much 'what' they do, and 
> how much smarts they have.
>
> So if you wanted to (with current dynamic), do 10k crypt of the crypt, 
> you would simply have to build a format with whatever initialization 
> code was needed to get things 'started', and then 10k of these (well, 
> 9999 of the 2nd part):
>
> DynamicFunc__crypt_md5_in1_to_out2
> DynamicFunc__clean_input2
> DynamicFunc__append_from_last_output2_as_raw
> DynamicFunc__crypt2_md5()
> DynamicFunc__clean_input2_kwik
> DynamicFunc__append_from_last_output2_as_raw
> DynamicFunc__crypt2_md5()
> DynamicFunc__clean_input2_kwik
> DynamicFunc__append_from_last_output2_as_raw
>
> // 9996 more of the:
> DynamicFunc__clean_input2_kwik
> DynamicFunc__overwrite_from_last_output2_as_base16_no_size_fix

Sorry, wrong, code, should have been 
DynamicFunc__append_from_last_output2_as_raw

That was cut/paste from some code that did not match this problem.

> DynamicFunc__crypt2_md5()
>
> // then a final
> DynamicFunc__clean_input2_kwik
> DynamicFunc__overwrite_from_last_output2_as_base16_no_size_fix

Same problem here, should have been 
DynamicFunc__append_from_last_output2_as_raw

> DynamicFunc__crypt_md5_in2_to_out1

....

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.