NEW: We have a Discord server now. Click here to go there now!

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: Member
Joined: Tue, 03 Apr 2018
Posts: 431
Team:
Reputation: 431 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: Member
Joined: Tue, 03 Apr 2018
Posts: 431
Team:
Reputation: 431 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: Trusted
Joined: Sun, 08 Nov 2015
Posts: 829
Team: gpuhash team
Reputation: 1528 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


Head of cheap publicity department
Support, discounts, free offers for HK members
BTC: 1GpuHashTYDRn3S6jbLM4YwmutU5iVCxrf

Avatar
dipeperon

Status: Member
Joined: Tue, 03 Apr 2018
Posts: 431
Team:
Reputation: 431 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 210672 messages in 25869 topics.
We have a total of 22925 registered users.
Our newest registered member is castro.