Problem using rules to append word from memory
#1
Hello!

I'm trying to run a simple rule, like defined on the rules page, to append the word uppercased (passPASS), using "uMl4".
I've ran a oclHashcat straight attack with a common english wordlist and this rule, but for some reason, i think it's not working, because it cracks no hashes... 

If i run a combinator attack with the same wordlist, plus "u" rule on the right wordlist, it cracks the hashes.
But since i just want to append the same word, the combinator waste a lot of time matching all the different words.

I've tried to debug, using hashcat-cli64.exe, with the --stdout option, and it seems ok. But running it the against the hashes it cracks nothing, just like oclHashcat64.

I also tried to run a very simple test using the files i'm attaching. It only cracks 1 of the 2 hashes.
The hashes are the md5 for genericgeneric and genericGENERIC, and the rules are d, uMl4 and lMu6.

Am i doing something wrong?
Thanks!


Attached Files
.txt   testrule.txt (Size: 30 bytes / Downloads: 8)
.txt   testhashes.txt (Size: 66 bytes / Downloads: 8)
#2
First, I want to thank you for a well written and asked question, I'm not used to it since some time.
Then you are not doing anything wrong, except not noticing the following in oclHashcat's output maybe :

Code:
WARNING: Cannot convert rule for use on GPU in file testrule.txt in line 3: uMl4
WARNING: Cannot convert rule for use on GPU in file testrule.txt in line 4: lMu6
[...]
Rules: 1

The wiki page about rules has been changed and some information got lost, in this case : memory based rules don't work on gpu.

Then for trying with hashcat and its --stdout mode, (thank you, someone smart enough to use it for checking if his command is right), nothing wrong here aswell, I just tested and it worked :

Code:
$ ./hashcat-cli64.exe -m 0 -r testrule.txt testhashes.txt testdict.txt
[...]
Added hashes from file testhashes.txt: 2 (1 salts)
Added rules from file testrule.txt: 3

20a07aa5a0a4656891f77115d03fd436:genericgeneric
ba3d8875bd96f0741089d99bd7c153de:genericGENERIC

All hashes have been recovered

Input.Mode: Dict (testdict.txt)
Index.....: 1/1 (segment), 1 (words), 8 (bytes)
Recovered.: 2/2 hashes, 1/1 salts

With the following files :

Code:
$ head test*
==> testdict.txt <==
generic

==> testhashes.txt <==
20a07aa5a0a4656891f77115d03fd436
ba3d8875bd96f0741089d99bd7c153de


==> testrule.txt <==
# testing rules
d
uMl4
lMu6

hashcat --stdout with the same previous command:

Code:
genericgeneric
genericGENERIC
genericGENERIC

Is your output different or do you still have only 1 cracked out of 2 with the previous inputs ?
#3
Xanadrel, thanks for the reply and for the testing!

As you have guessed, i really didn't notice the warning messages... =P

And my second mistake was that i was first trying to crack NTML hashes with oclHashcat, did the test using md5, kept alternating between the two, and i probably didn't choose the hash correctly when trying with CPU Hashcat. 
Since the hashes have the same size, there was no errors/warning, but no cracking also...

Everything is perfect now, i've cracked the hashes i wanted in seconds instead of hours, and learned new ways to use the rules =).
BTW, i'm using this rule to try to crack some CMIYC hashes.


Thanks and congratulations for developing this amazing cracker!

ps. You will probably want to update the rules wiki page ; )