Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

domingo, 14 de agosto de 2011

[Perl] MD5 Brute forcer

 [Perl] MD5 Brute forcer
#MD5 Cracker (GUI Version)
#d3hydr8[at]gmail[dot]com
#http://www.darkc0de.com

from Tkinter import *
import tkFileDialog, md5

class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widget()
    def create_widget(self):
       
        self.lbl = Label(self, text = "ENTER MD5: ")
        self.lbl.grid(row = 2, column = 0, sticky = E)
       
        self.pw_ent = Entry(self, width = 32)
        self.pw_ent.grid(row = 2, column = 1, sticky = E)
       
        self.submit_bttn = Button(self, text = "Choose Wordlist", command = self.loadwords)
        self.submit_bttn.grid(row = 5, column = 1, sticky = W)
       
        self.txtbox = Text(self, width = 55, height = 8, font=('Georgia', 8), bg = "#CCC", wrap = WORD)
        self.txtbox.grid(row = 7, column = 0, columnspan = 2, sticky = W)

        self.bttn1 = Button(self, text = "Crack", font=('courier', 10, 'bold'), command = self.crack)
        self.bttn1.grid(row = 9, columnspan = 2, sticky = "WE")
   
        self.clear = Button(self, text="Clear", font=('Georgia', 8), command = self.clear)
        self.clear.grid(row = 10, column = 1,sticky= E)
       
    def loadwords(self):
        global wordlist
        file = tkFileDialog.askopenfile(parent=root,mode='r',title='Choose a file')
        wordlist = file.readlines()
        self.txtbox.insert(END, "Loaded: "+str(len(wordlist))+" words")
       
    def crack(self):
        pw = self.pw_ent.get()
        if len(pw) == 32:
            self.txtbox.insert(END, "\nCracking: "+pw)
            for word in wordlist:
                hash = md5.new(word.replace("\n","")).hexdigest()
                if pw == hash:
                    self.txtbox.insert(END, "\n\nCracked: "+word)
                    break
            self.txtbox.insert(END, "\nComplete")
        else:
            self.txtbox.insert(END, "\nImproper MD5 Length: "+str(len(pw)))
           
    def clear(self):
        self.pw_ent.delete(0, END)
           self.txtbox.delete(0.0, END)
        wordlist = []
       
root = Tk()
root.title("MD5 Cracker")
root.geometry("350x200")
app = Application(root)
root.mainloop()

Nenhum comentário:

Postar um comentário

............