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

WARNING!
Due to the number of SCAMS going on in the PAID forum, PLEASE ask an ADMIN or MODERATOR to verify ALL found passwords to ensure you are not being SCAMMED.
DO NOT PAY until an ADMIN or MOD has verified them for you!


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

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 223
Team:
Reputation: 308 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

Avatar
dipeperon

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 223
Team:
Reputation: 308 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

Avatar
gpuhash_me

Status: Cracker
Joined: Sun, 08 Nov 2015
Posts: 543
Team: gpuhash team
Reputation: 1230 Reputation
Offline
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 forum members

Avatar
dipeperon

Status: n/a
Joined: Tue, 03 Apr 2018
Posts: 223
Team:
Reputation: 308 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


4 Results - Page 1 of 1 -
1

We have a total of 166830 messages in 20877 topics.
We have a total of 18723 registered users.
Our newest registered member is Flona.