real noob looking for help!
#1
hey guys! real noob here.

I'm trying to solve a problem where there is a unknown(random) MD5 hash1

and that hash is repeated several times, with a few known words in-between them.

for example like this:

(hash1)(hash1)someKnownWord(hash1)anotherKnownWord(hash1)

which is then made into another given MD5 hash2.

right now i know the number of repeated hashes, the content and position of the known words.

so the questions is: 

1. how do i set up the rules in this situation?
2. will it take a reasonable amount of time to find the first hash?
Reply
#2
The best thing you could do here is to code a new hashcat module and kernel (OpenCL .cl file with update/final function calls, see https://github.com/hashcat/hashcat/blob/...cl#L60-L66) and this way every buffer manipulation and MD5 transformation will be done directly within the kernel.

The first md5 (hash1) otherwise has to be done outside of hashcat (given to hashat via pipe or dict). But even this way It's a little bit tricky with rules because there are several limits. like the maximum of 31 function call per rule line.
but there are other limits too, like inserts can only use the positional arguments from 0-9A-Z (i.e. 10+26 = 36 offset max).

-a 1 is not an option, because you want to use hash1 in both "parts".

Another alternative is to develop your password candidate generator and feed hashcat via a pipe/stdin... but the speed will for sure drop to the speed of the (slower) password candidate generator (which also needs to do the first hash1 MD5 calculation... therefore your left side of the pipe (of perl my_password_generator.pl | hashcat -m 0 -a 0 -w 3 hash.txt) will be the bottleneck.

I think there is no good/acceptable solution except from trying to develop your own (host code) module and .cl code (there are many MD5-based kernels/examples, also with static strings etc using update/final calls within the pure .cl kernel code in the OpenCL/ folder).
Reply