Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 25 May 2015 22:19:17 -0700
From: <writeonce@...ipix.org>
To: john-dev@...ts.openwall.com, "Rich Felker" <dalias@...c.org>
Subject: RE: update: JtR for Windows using musl libc

On 05/25/2015 11:20 PM, Solar Designer wrote:> On Mon, May 25, 2015 at
11:01:47PM -0400, Rich Felker wrote:
>> The argument registers for integer arguments are completely different
>> (rcx,rdx,r8,r9 vs rdi,rsi,rdx,rcx,r8,r9) so I would expect the
>> behavior to be nonsense.
> 
> Oh, this must be it.  rdi for the argument was my first thought, but I
> wrongly recalled that all of these functions use it.  I just took a
> look, and the asm version of DES_bs_crypt_25 does not actually use its
> argument (even though it's called with one, since the C implementation
> sometimes uses it).  So this is why descrypt and tripcode passed test.
> 
>> Note that there's a GCC attribute, __sysv_abi__, that could be used to
>> call the standard ABI asm code from a caller that's using the MS ABI.
>> That would be a way to reuse the asm unmodified rather than having to
>> wrap it or write a special version for Windows. The attribute just
>> needs to be put on the declarations of the asm functions in the
>> translation units they're called from.
> 
> midipix may try that.
> 
> Alexander
> 
> 

I have now looked at x86-64.h and DES_bs.h and have added a few sysv_abi
hints which did not change the outcome. My understanding is that someone
familiar with JtR would have an easier time debugging this.

As for performance: at some point I commented out the code in times(2)
which converts NT measures (units of 100ns) to clock_t (1/100 sec)...
the test was run natively on i3-2100 pc, and with the fixed __sys_times
the numbers now finally seem correct. As an aside, an additional factor
that might slow things down a bit (but nothing like *100000) is that the
entire stack (libc, runtime library, john) is built with -g3 -O0.

midipix


Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
Many salts:	4154K c/s real, 2077K c/s virtual
Only one salt:	3870K c/s real, 1935K c/s virtual

Benchmarking: bsdicrypt, BSDI crypt(3) ("_J9..", 725 iterations) [DES 128/128 SSE2-16]... FAILED (get_hash[0](0))
Benchmarking: md5crypt [MD5 32/64 X2]... DONE
Raw:	3623 c/s real, 1811 c/s virtual

Benchmarking: bcrypt ("$2a$05", 32 iterations) [Blowfish 32/64 X2]... DONE
Raw:	184 c/s real, 92.2 c/s virtual

Benchmarking: LM [DES 128/128 SSE2-16]... FAILED (crypt_all)
Benchmarking: AFS, Kerberos AFS [DES 48/64 4K]... DONE
Short:	143852 c/s real, 71926 c/s virtual
Long:	453595 c/s real, 226797 c/s virtual

Benchmarking: tripcode [DES 128/128 SSE2-16]... DONE
Raw:	3296K c/s real, 1648K c/s virtual

Benchmarking: dummy [N/A]... DONE
Raw:	29052K c/s real, 14526K c/s virtual

Benchmarking: crypt, generic crypt(3) [?/64]... DONE
Many salts:	43335 c/s real, 21667 c/s virtual
Only one salt:	43171 c/s real, 21585 c/s virtual

2 out of 9 tests have FAILED

(3260,5008): set_tid_address(0x019FE860) = [5008,NT_STATUS_SUCCESS]
(3260,5008): open("john.conf", 0, 438) = [3,NT_STATUS_SUCCESS]
(3260,5008): brk(0) = [0x04130000,NT_STATUS_SUCCESS]
(3260,5008): brk(0x04140000) = [0x04140000,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): brk(0x04160000) = [0x04160000,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [1024,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [845,NT_STATUS_SUCCESS]
(3260,5008): readv(3, 0x0022F840, 2) = [0,0xC0000011]
(3260,5008): close(3) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FD60) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigprocmask(1, 0x0022FC60, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(1, 0x0022FC40, 0x00000000, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(2, 0x0022FB70, 0x0022FB50, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(15, 0x0022FB70, 0x0022FB50, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(24, 0x0022FB70, 0x0022FB50, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(25, 0x0022FB70, 0x0022FB50, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022FC40, 0x00000000, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FC80, 0x0022FC80) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(12, 0x0022FBA0, 0x0022FB80, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): ioctl(1, 21523, 0x0022FBF0, 0x019737E6, 0x0199B390, 0x019737E6) = [ENOTTY,EPSXONLY]
(3260,5008): writev(1, 0x0022FB80, 2) = [70,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00540000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [499,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [499,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00550000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [998,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [191,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [65,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [4433,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00550000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [4934,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [113,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [4948,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00550000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [5449,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [84,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [69,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [5450,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00550000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [5949,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [5949,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00540000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [6450,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [138,NT_STATUS_SUCCESS]
(3260,5008): mmap(0, 4259840, 3, 34, -1, 0) = [0x00540000,NT_STATUS_SUCCESS]
(3260,5008): mmap(0, 262144, 3, 34, -1, 0) = [0x00950000,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [6450,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x00990000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [6951,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [74,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [6951,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x009A0000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [7449,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FBC0, 2) = [95,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [7449,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x009A0000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [7945,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022F990, 0x0022F970, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FBF0, 0x0022FBF0) = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [7945,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_prolog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_handler_invocation](14, 0x009A0000, 0x00000000) = [0,NT_STATUS_SUCCESS]
(3260,5008): [signal_trampoline_epilog]() = [0,NT_STATUS_SUCCESS]
(3260,5008): times(0x0022FBD0) = [8442,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(1, 0x0022FB60, 0x0022FB40, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(2, 0x0022FB60, 0x0022FB40, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(15, 0x0022FB60, 0x0022FB40, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(24, 0x0022FB60, 0x0022FB40, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(25, 0x0022FB60, 0x0022FB40, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): setitimer(0, 0x0022FD40, 0x0022FD40) = [0,NT_STATUS_SUCCESS]
(3260,5008): rt_sigaction(14, 0x0022FB40, 0x0022FB20, 8) = [0,NT_STATUS_SUCCESS]
(3260,5008): writev(1, 0x0022FD60, 2) = [130,NT_STATUS_SUCCESS]
(3260,5008): exit_group(1) = [0,NT_STATUS_SUCCESS]

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ