Login Register






[Release] Password Cracker filter_list
Author
Message
RE: [Release] Password Cracker #7
Quote:This is a password cracker that cracks MD5 hashes and SHA1 hashes using a dictionary attack. It uses Streamreader and it's threaded and double buffered for optimized performance. It does not support salted passwords but it might in the future. Algorithm is auto-detected based on length. And you may only crack one password at the time. There is a basic password dictionary included. I will probably release the source soon. Oh and the theme used in this project is called Influence Theme. Do keep in mind that this is not for serious usage, most hashes have salt or have a more complex hashing algorithm.

DoubleBuffered won't change anything performance-wise for the actual cracking, that is irrelevant. But salt vs non-salted hash does not make a difference either, It's still a hash. The only possible trouble you can run into here (salt or non-salted hash doesn't matter), is that you run into an MD5 collision that isn't the intended plain text value. Pretty uncommon though..

"most hashes have salt or have a more complex hashing algorithm" - If it's MD5, MD5 will always be just MD5 and same thing with SHA1. So if you know what you're dealing with it doesn't matter.

There's no error handling here though, what if the person presses the cancel button on the OpenFileDialog?

Code:
MessageBox.Show("Cracking started, don't click the Crack button again until you recieve another messagebox with the results.")

You can prevent it from doing anything on a second click if the first thread is still processing stuff...

"Algorithm is auto-detected based on length." - This is poor though, you don't want to be evaluating this every iteration with the streamreader, how about before you start looping? If you have to evaluate this each time, it just slows things down for something that is meant to be fast and optimized; cracking.

Code:
Public Sub CrackPassword(ByVal HashedPassword As String) Dim flag As Boolean = False If Not File.Exists(Me.dict.FileName) Then MessageBox.Show("Select a valid dictionary") Else Using reader As StreamReader = New StreamReader(Me.dict.FileName) Do While ((reader.Peek >= 0) And Not flag) Dim strToHash As String = reader.ReadLine Dim str2 As String = String.Empty If (HashedPassword.Length = 40) Then str2 = Me.getSHA1Hash(strToHash) Else str2 = Me.getMD5Hash(strToHash) End If If HashedPassword.Contains(str2) Then MessageBox.Show(("Cracked! Password is: " & strToHash)) flag = True End If Loop If Not flag Then MessageBox.Show("Couldn't crack password!") End If reader.Close End Using End If End Sub

You're not disposing of your reasources for the MD5 and SHA1 hash retrieval though either. Although the "building" of the hexed byte values for the hash is slow the way you're doing it too.

Many ways this could be sped up, although I'm not sure you understand what the Using statement does if you're calling to Close() the StreamReader just before it closes...
-- cxS

[ Haskell/.NET/C/C++ - Software Engineer ]

Reply





Messages In This Thread
[Release] Password Cracker - by SQLi - 12-17-2012, 05:26 AM
RE: [Release] Password Cracker - by h0rr0r - 12-17-2012, 05:32 AM
RE: [Release] Password Cracker - by Anonymous - 12-17-2012, 05:39 AM
RE: [Release] Password Cracker - by Kinanizer - 12-17-2012, 05:41 AM
RE: [Release] Password Cracker - by Complibur - 03-11-2013, 06:25 AM
RE: [Release] Password Cracker - by SQLi - 03-11-2013, 11:48 PM
RE: [Release] Password Cracker - by cxS - 03-12-2013, 06:21 AM
RE: [Release] Password Cracker - by SQLi - 03-12-2013, 07:46 AM