Replace Characters in Foreign language.
#1
Hello,

I tried my best to find this information by myself but, at the end, I wasn't successful. 
I tried to configure a rule to replace character of a string with their equivalent in non-latin language.
For example:
Code:
sBБ
sbб
sdд
scц
sfф
sCЦ

But, no matter what I try, for example with --hex-chaset, hashcat returns the following error:
Code:
Skipping invalid or unsupported rule in file rules/translit.rule on line 1: sBðæ
I know there is an encoding problem but I am not able to resolve it...

Any tip ?
Reply
#2
not quite sure wheter rules accept hex as charset but it seems implemented as you can see here
https://github.com/hashcat/hashcat/issues/1580
https://github.com/hashcat/hashcat/commi...b65f8bf4eb

so it should be possible, all you have to know is the hex-equivalent for your chars

sXY Replace all instances of X with Y

german ä is 0xc3a4 so

Code:
sa\xc3a4

should work but resulting in

Code:
Cannot convert rule for use on OpenCL device in file ruletest.txt on line 1: sa\xc3a4

some tries later

Code:
saä

seems to work, but i had to save the rules files explicit in ANSI on windows, utf-8 was not working

Code:
hashcat -a 0 --stdout -r rule.txt pw.txt > test.txt

resulting in admin > ädmin for example

you could also try playing around with 

--encoding-from          | Code | Force internal wordlist encoding from X              | --encoding-from=iso-8859-15
--encoding-to              | Code | Force internal wordlist encoding to X                | --encoding-to=utf-32le

encoding is a hell for itself
Reply