obliterate xiv shader hashes. shoutouts ny and winter
XIV shaders store hashed names, usually in the format of g_{word one}{word two}
. this takes a word list and cracks those hashes, assuming that format.
it's speedy, because
- it's in 🚀 🦀 rust 🦀 🚀
- it's multi-threaded (albeit poorly)
- it uses CRC Combination (sparkles)
make a word list text file, containing single words seperated by a newline (such as Emissive
, Color
, etc). make sure the names are capitalized properly (pascal case), or it won't work - see pascalify.js
for a script to do that for you.
then make a hash list file, containing hashes seperated a newline (such as 38A64362
). you can use any case sensitivity or precede with 0x
.
then, Just Run It:
cargo run --release -- --word-list=words.txt --hash-list=hashes.txt --prefix "g_" --threads 8
by default, hashes will be printed both immediately when found and when all possible values have been found. see the --print-when-found
argument below if you only want to see the results when it's finished.
-w, --word-list
: path to word list file-h, --hash-list
: path to hash list file-t, --threads
: number of threads to use (default: 1, incredibly slow)-p, --prefix
: prefix to use for hashing (optional)--print-when-found
: whether to print immediately when a hash is found (default: true)
crc32 is complete dogshit and you will find a bunch of collisions. i'm using the scrabble dictionary for testing and it fucking thought g_EmissiveColor
was g_PestoSanguine
. make sure to clean up your dict