Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 31 Oct 2013 00:13:41 +0100
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: Compile john in Windows 64 bits

On 2013-10-30 19:15, magnum wrote:
> We are trying to resolve BSDIcrypt problems on Win64. It seems to get
> stuck somewhere in an endless loop on Win64. DEScrypt, LM and Deepika's
> formats are fine.
>
> I can't see any pop corresponding to this push:
>
> DES_bs_finalize_keys_25:
>      leaq DES_bs_crypt_25_body(%rip),tmp1
>      pushq tmp1
> DES_bs_finalize_keys:
>      ...
>
> What's with that?

I'm not dumb, just slow. There's a ret corresponding to it! This pushes 
a return address pointing to DES_bs_crypt_25_body.


> And while we're at it,
>
> DES_bs_crypt:
>      cmpl $0,DES_bs_all_keys_changed(%rip)
>      jz DES_bs_crypt_body
>      pushq %rdi
>      call DES_bs_finalize_keys
>      popq %rdi
>
> What good does the push/pop of %rdi do here? I can't see it being used
> anywhere.

Gotcha. This must be our Win64 problem! This preserves 'iterations' 
which is defined as %edi. Since %rdi is non-volatile on Win64 I 
redefined iterations to %ecx on that platform without changing the above.

magnum

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.