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   testhashes.txt (Size: 66 bytes / Downloads: 8)
.txt   testrule.txt (Size: 30 bytes / Downloads: 9)
#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 ; )