And to go along with my Get-MD4Hash Powershell cmdlet that I wrote last time, here is a multithreaded brute-force NT hash cracker written in C#. I call it NTHashTickler:
First of all, I realize that there are already many tools out there that already do this exact same thing - and they do a much better job at it that I have been able to do so far. However, I wrote this tool as a learning experience for myself to exercise some basic speed and multithreading concepts in C#. How many threads it will use equals the number of logical processors in your machine. It uses Microsoft's native BCrypt implementation of the MD4 hashing algorithm. I use the .NET framework's RandomNumberGenerator class to get my randomness, which is a lot slower than the basic Random class, but I sacrificed speed in this instance for better random numbers. I use memcpy straight out of the C runtime for comparing byte arrays, which I do not think can be beat in terms of speed. However, I'm sure that there are still some massive opportunities for improvements both in terms of speed and in coming up with a more clever algorithm for generating random plain-texts other than just dumb randomness.