08-09-2017, 07:25 PM
I started typing this reply last night but forgot to post it. I know philsmd has already replied, but as I already had all this typed, it seemed like it would be a waste not to go ahead and post it
Your assumptions regarding IO are correct: --remove will kill performance if you have a very high hit rate and/or very large hash list. Keep in mind that ever since Hashcat got potfile support a few years back, it won't attempt to re-crack a hash you've previously cracked provided the hash is found in the potfile. As kind of a general rule of thumb, options like --remove and -o really only make sense if used in conjunction with --potfile-disable.
Hashcat makes no assumptions about encoding, it only hashes bytes. If the correct bytes are in the wordlist, then hashcat will find the password. Masks are a bit of a different story, however, in that the builtin charsets only support ascii and hex. If you want a different charset you'll either need to use one of the supplied charset files, or use --hex-charset and roll your own.
Your assumptions regarding IO are correct: --remove will kill performance if you have a very high hit rate and/or very large hash list. Keep in mind that ever since Hashcat got potfile support a few years back, it won't attempt to re-crack a hash you've previously cracked provided the hash is found in the potfile. As kind of a general rule of thumb, options like --remove and -o really only make sense if used in conjunction with --potfile-disable.
Hashcat makes no assumptions about encoding, it only hashes bytes. If the correct bytes are in the wordlist, then hashcat will find the password. Masks are a bit of a different story, however, in that the builtin charsets only support ascii and hex. If you want a different charset you'll either need to use one of the supplied charset files, or use --hex-charset and roll your own.