NOTE: Why not use our List Manager to crack your lists? Its easy and enables better management.

NOTE: When cracking WPA/WPA2 passwords, make sure you check gpuhash.me first incase it's already been processed.

Home - General Discussion - OpenCL md5 kernel help


4 Results - Page 1 of 1 -
1
Author Message
Avatar
dipeperon

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 319
Team:
Reputation: 388 Reputation
Offline
Thu, 27 Dec 2018 @ 18:02:04

I'm trying to use pyopencl. I found a opencl kernel:

https://fossies.org/linux/privat/john-1.8.0-jumbo-1.tar.gz/john-1.8.0-jumbo-1/src/opencl/md5_kernel.cl?m=t

But the md5 function is asking for 3 inputs.

__kernel void md5(__global const uint *keys, __global const uint *index, __global uint *hashes)

Looking at the code does not get me any wiser. I assume the last variable "hashes" is the output bytes containing the md5, but I don't know about the other 2

The openCL part is working, it just can't seem to get this kernel correctly working probably because I'm sending wrong data to it

Could someone help me out?


My haschat stuff (rules, scripts): https://github.com/theherp/Hashcat-stuff
BTC: 3C2h4xscGRq7XfZLicoVjRVkYrqqJ1Urc5

Avatar
dipeperon

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 319
Team:
Reputation: 388 Reputation
Offline
Thu, 03 Jan 2019 @ 02:11:56

Bump.

Someone here has to know this, right?


My haschat stuff (rules, scripts): https://github.com/theherp/Hashcat-stuff
BTC: 3C2h4xscGRq7XfZLicoVjRVkYrqqJ1Urc5

Avatar
gpuhash_me

Status: Trusted
Joined: Sun, 08 Nov 2015
Posts: 621
Team: gpuhash team
Reputation: 1413 Reputation
Online
Sat, 05 Jan 2019 @ 06:44:49

'keys' is input message (they perform padding to 512 bits according to MD5 spec)
'index' is message length (bytes)
'hashes' is output buffer

Also notice they do hashing of only one chunk here, so input message length should be less or equal to 64 bytes.
To hash longer messages you should initialize a,b,c,d variables with previous chunk 'hashes' output instead of fixed constant values but it is not possible in this function


GPUHASH.me team official representative
Support, discounts, free offers for HK members
1GpuhashYawxmCeuypAXGXMhd23y1dm9gb

Avatar
dipeperon

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 319
Team:
Reputation: 388 Reputation
Offline
Sat, 05 Jan 2019 @ 13:16:22

gpuhash_me said:

'keys' is input message (they perform padding to 512 bits according to MD5 spec)
'index' is message length (bytes)
'hashes' is output buffer

Also notice they do hashing of only one chunk here, so input message length should be less or equal to 64 bytes.
To hash longer messages you should initialize a,b,c,d variables with previous chunk 'hashes' output instead of fixed constant values but it is not possible in this function

Hmmm.

I tried this and only my first 4 bytes are changing...

input: bytearray( b'a' )
output: 0cc175b9d41d8cd9d41d8cd9d41d8cd9

correct md5 is: 0cc175b9c0f1b6a831c399e269772661, so I guess I'm close...


input: bytearray( b'abc' )
output: 90015098d41d8cd9d41d8cd9d41d8cd9



My haschat stuff (rules, scripts): https://github.com/theherp/Hashcat-stuff
BTC: 3C2h4xscGRq7XfZLicoVjRVkYrqqJ1Urc5


4 Results - Page 1 of 1 -
1

We have a total of 175119 messages in 21827 topics.
We have a total of 19969 registered users.
Our newest registered member is Sora.