CRC32 Brute Force Solver For Asobo Studio's FUEL (2009)
This repository is a relative of the main FMTK repository.
This project is aimed at crc32 hashes of long, ~256 chars, file paths; if your hashes are of anything else, then I can't promise you'll find this project useful. Check out Hashcat and John the Ripper for cool general purpose hash cracking tools that blow this project out of the water.
This project is a reverse engineering playground for crc32 algorithms more than it is a set of tools. I have taken a break from working on this to investigate meta data available in FUEL's DPC archive format. Hopefully this investigation can help uncover hints about the directory structure and lead to a "strength in numbers" solution.
Calculating a crc32 collision from a target hash is trivial; calculating the original target string used to generate the target hash with only the target hash is impossible. For this project to be useful to you, you will need to divise a system of scoring your confidence in the potential target strings. Gather as much context as possible and minimize the possibility space. Smaller dictionary is better. Fewer wildcards in the pattern is better. The prefix and suffix are free regardless of length. Best of luck!
The general flow of running the system is:
- Generate your dictionary and hash files
- Run either cpu or cuda
- Coagulate the result
- Hand verify the target string collisions
Generate a dictionary file from a text document.
A dictionary file contains information about legal sequences of characters that may appear in a target string.
Generate hash file from a text document.
A hash file contains information about target crc32s.
Transpose the output from cpu or cuda back into a human readable text format.
Cpu middle end.
Cuda middle end.
Optimizations used in the system:
- Prefix addition
- Suffix subtraction
- Dictionary
- Table driven
- CMake
- Cuda
- OpenCL
git clone https://github.com/widberg/fuel-brute.git
cd fuel-brute
mkdir build
cd build
cmake ..
cmake --build .