Hashsnail is extremly slow (because it uses only CPU) and barebones clone of the most popular password-cracking utility - Hashcat, but with one key difference - it uses distributed computing with client-server model to crack passwords. And this repository is the client side of the whole system. The application was written as a University DSA course final project, client side was written by me and server side by my colleagues.
The main idea is to divide amount of work among clients based on their relative performance. For example, range of work for bruteforce attack can look something like aaaa-zzzz, it means client with this work range will be bruteforcing all the 4 letter permutations from a to z. We wrote an algorithm that divides amount of work for any number of clients in this manner. This is done with a performance benchmark that starts before any work does, then clients send benchmark results back to the server, so it can use the algorithm to determine amount of work for every client. Server sends file with hashes and information like "what hashing algorithm to use" and "what attack mode to run" to every client, after that all the clients start attacking simultaneously. All clients stop working roughly at the same time and send their results back to the server.
- ASIO - to handle all the networking stuff
- spdlog - to log information to the console
- Classic bruteforce
- Mask based bruteforce
- Dictionary attack
- SHA-1
- MD5
- Download or recursive clone this repository.
- Extract to some location.
- Run generate_vs_project.bat and it will generate VS project or any other if you edit the file.
- Build the project.