06-03-2020, 08:21 AM
Hi,
I’m making this self-quarantine project public. Masks are still a trending topics in many countries so ... let’s have unicode masks :-)
https://github.com/flbdx/maskuni
Maskuni is similar to Maskprocessor. Its syntax is compatible. It’s also fully compatible with hashcat’s mask files.
By default it will iterate over 8-bits charsets like Maskprocessor (maskuni is faster though).
When its unicode support is enabled, maskuni will read UTF-8 encoded charsets and write UTF-8 encoded words, internally iterating over 32-bits unicode codepoints.
I’m mainly using it to extend the lowercase and uppercase predefined charsets with latin accented letters (you can redefine or extend the predefined charsets with maskuni) :
There is one huge limitation with unicode masks though. They can’t generated unicode chars made of multiple combined codepoints (like the very common red hearth emoji ❤️).
In addition, maskuni also has a more traditional "bruteforce" mode. Its defined by a password length and a set of charsets each with a minimal and maximal number of occurrences. For example, password of length 8 with 0 to 6 lowercase, 0 to 2 uppercase, 0 to 2 digits (see https://hashcat.net/forum/thread-8847.html for a related post).
The bruteforce mode also has 8-bit or unicode flavors.
Regarding maskuni’s speed. Well it’s faster than maskprocessor. But this doesn’t mean much as the performances will be killed by the pipe between maskuni and its consumer, or even by a bad stdin handling from the consumer... So it’s more suited to slow hashes, custom cracking software or wordlist building.
Hopefully maskuni will find some use!
I’m making this self-quarantine project public. Masks are still a trending topics in many countries so ... let’s have unicode masks :-)
https://github.com/flbdx/maskuni
Maskuni is similar to Maskprocessor. Its syntax is compatible. It’s also fully compatible with hashcat’s mask files.
By default it will iterate over 8-bits charsets like Maskprocessor (maskuni is faster though).
When its unicode support is enabled, maskuni will read UTF-8 encoded charsets and write UTF-8 encoded words, internally iterating over 32-bits unicode codepoints.
Code:
$ ./maskuni.exe --unicode -1 👍🤘 'emojis ?1?1'
emojis 👍👍
emojis 👍🤘
emojis 🤘👍
emojis 🤘🤘
I’m mainly using it to extend the lowercase and uppercase predefined charsets with latin accented letters (you can redefine or extend the predefined charsets with maskuni) :
Code:
$ ./maskuni --unicode --charset 'l:?léèà' --no-delim '?l'
abcdefghijklmnopqrstuvwxyzéèà
There is one huge limitation with unicode masks though. They can’t generated unicode chars made of multiple combined codepoints (like the very common red hearth emoji ❤️).
In addition, maskuni also has a more traditional "bruteforce" mode. Its defined by a password length and a set of charsets each with a minimal and maximal number of occurrences. For example, password of length 8 with 0 to 6 lowercase, 0 to 2 uppercase, 0 to 2 digits (see https://hashcat.net/forum/thread-8847.html for a related post).
The bruteforce mode also has 8-bit or unicode flavors.
Regarding maskuni’s speed. Well it’s faster than maskprocessor. But this doesn’t mean much as the performances will be killed by the pipe between maskuni and its consumer, or even by a bad stdin handling from the consumer... So it’s more suited to slow hashes, custom cracking software or wordlist building.
Hopefully maskuni will find some use!