How can I make bruteforce password recovery software in delphi using with parallel computing technologies for md5 Algorithms!
Can someone tell me some advise?
Thanks
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Parallel computing makes sense in today’s day and age due to most of our CPUs having multiple cores.
However, your performance is not a one to one relationship with the number of threads. You’ll most likely want just one or two threads per core.
You can use TThread class to create multiple threads in Delphi.
Indy has a MD5 hash function in the IdHashMessageDigest unit.
Make sure that you know the exact algorithm, including the use of any salt, before you attempt to reverse an MD5 hash through brute force.
If there was no salt used, I think there are probably rainbow tables available for MD5 on the web already, where you can just do a search.
You’ll most likely want to try a dictionary attack prior to trying every possibility. There are many dictionaries available for download on the Internet, easily found on Google.
With more specific questions, we can give more specific answers.
Edit
To create a grid computing system, whereby you distribute the work to many computers, you’ll need a central management server that doles out pieces of the work to the other computers. If the results aren’t returned within a certain time threshold, then you put it back in the queue.
You’ll need to build a simple framework where you can pass in a few parameters that represent a work load to each client, upon request. Perhaps it’s a range of values to try.
The client should contact the server to receive a piece of work, and it always report back when it has finished the work, or perhaps immediately if it makes a hit.
If you have enough computers, consider each client building a local rainbow table for each possible salt, utilizing the storage from each client.
Example of work queue
Here’s an example of a piece of work that would be sent as a parameter, and most likely stored in a database.
You want to attack the hash SLDFJIJ44adsf.
Here are the tables: