I need to have a russian alphabet in UTF-8 encoding.
For test I created a file "ru_utf8.hcchr" with two letter "CYRILLIC CAPITAL LETTER A" and "CYRILLIC CAPITAL LETTER BE". Hex content of file: D0 90 D0 91. Size of file: 4 bytes. It means that file is in UTF-8 encoding.
Then I calculated MD5 of this file and save it to "secret.md5". This MD5 is the same as MD5 of string in UTF-8 "АБ" (russian letters of cource).
And then I run hashcat (version 0.47) with follow command line:
Original string wasn't found, output of hashcat:
I further increased the mask, and only if its length is 4, the original word was found.
I understand that the character codes "D0 90" and "D0 91" in .hcchr file combined in 3 bytes: "D0 90 91". But I need that 2 bytes were presented as 1 symbol in UTF-8 encoding. How I can do this?
Solution with the decomposition of characters into 2 bytes are not satisfied, because in this case, there are added a lot of non-existent characters and more extra bruteforce attempts.
For test I created a file "ru_utf8.hcchr" with two letter "CYRILLIC CAPITAL LETTER A" and "CYRILLIC CAPITAL LETTER BE". Hex content of file: D0 90 D0 91. Size of file: 4 bytes. It means that file is in UTF-8 encoding.
Then I calculated MD5 of this file and save it to "secret.md5". This MD5 is the same as MD5 of string in UTF-8 "АБ" (russian letters of cource).
And then I run hashcat (version 0.47) with follow command line:
Code:
hashcat-cli32 -m 0 secret.md5 -a 3 -1 ru_utf8.hcchr ?1?1
Code:
Input.Mode: Mask (?1) [1]
Index.....: 0/1 (segment), 3 (words), 0 (bytes) [b]<-- why 3 words? there are only 2 (russian letters 'A' and 'Be')[/b]
Recovered.: 0/1 hashes, 0/1 salts
Speed/sec.: - plains, - words
Progress..: 3/3 (100.00%)
Running...: --:--:--:--
Estimated.: --:--:--:--
Input.Mode: Mask (?1?1) [2]
Index.....: 0/1 (segment), 9 (words), 0 (bytes)
Recovered.: 0/1 hashes, 0/1 salts
Speed/sec.: - plains, - words
Progress..: 9/9 (100.00%)
Running...: --:--:--:--
Estimated.: --:--:--:--
Code:
hashcat-cli32 -m 0 secret.md5 -a 3 -1 ru_utf8.hcchr ?1?1?1?1
All hashes have been recovered
Input.Mode: Mask (?1?1?1?1) [4]
Index.....: 0/1 (segment), 81 (words), 0 (bytes)
Recovered.: 1/1 hashes, 1/1 salts
Speed/sec.: - plains, - words
Progress..: 79/81 (97.53%)
Running...: 00:00:00:01
Estimated.: --:--:--:--
Solution with the decomposition of characters into 2 bytes are not satisfied, because in this case, there are added a lot of non-existent characters and more extra bruteforce attempts.