brute Force

Posts 12 of 2 · Page 1 of 1
brute Force
A week ago a strange person hacked some accounts of mine. Now I want to hack his hotmail. this could be done with a brute force but can someone give me a bryte forcer that is not virus infected. Thank you.
Code:
http://www.hoobie.net/brutus/brutus-download.html


and

Code:
// *** SIMPLE C++ BRUTE FORCE EXAMPLE CODE ***
// written by malo1992
//
// Completely open source, do what you want with it.
// Have fun!
// 
// Germany, June 2011

#include <iostream>
#include <string>
using namespace std;

/* CHARACTER LISTS */
char lower[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t​','u','v','w','x','y','z','\0'};
char upper[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T​','U','V','W','X','Y','Z','\0'};
char numbs[11]={'0','1','2','3','4','5','6','7','8','9','\0'};
char symbls[30]={'!','?','.',':',',','-','_','#','$','*','+','%','&','/','\\','(',')','[',']','@','=',';','{','}','<','>','|','^','"','\0'};
char alphabet[95];                // This will contain the brute force alphabet

/* VARIABLES */ 
string password = "";            // We will brute-force this
string bruteword = "";            // The string we want to be =password
string pw = "";        // Just a help variable; contains the matching bruteword
string letters = "";            // Letters that will be added to the current character(alphabet[X]) in order to create the bruteword
bool pw_found = false;            // Password ain't found yet.
int maxChars = 15;                // Maximum length of the bruteword (can be changed by the user)
int minChars = 1;                // Minimum length o. t. BW ( " )
int alph_length = 0;            // Length of the char alphabet

/* VOIDS */
void asdf();        // Nonsense, but funny ;P
void createAlph();        // Creates brute alphabet
void check(string bruteword);        // Checks if bruteword = password
void brute (int charsInBW, int instance, string letters);        // BRUTE BRUTE BRUTE

/* PROGRAM CODE */
int  main() 
{
    // START ROUTINE //
    cout << endl;
    cout << "Enter a password to attack: ";
    cin >> password;    

    cout << endl;
    cout << "Minimum length of the bruteword(default 1): ";
    cin >> minChars;
    cout << "Maximum length of the bruteword(default 15): ";
    cin >> maxChars;

    // CREATING THE ALPHABET ARRAY //
    createAlph();

    // Right before we start...
    cout << endl; 
    cout << "**" << endl;
    cout << "Password string that will be attacked: '" << password << "'" << endl;
    alph_length = strlen(alphabet);
    cout << "Brute force alphabet: " << alphabet << endl;
    cout << "Characters: " << alph_length << endl;
    asdf();        // Some useless extra feature, I was bored 
    cout << "**" << endl << endl;
    cout << "Press ENTER to start brute forcing..." << endl;
    cin.get();cin.get();        // Forces the application to wait for user input 

    // LET'S GO! //
    for( int i=minChars; i<=maxChars ; i++)        // Bruteword needs [i] characters.
    {        // ( e.g. the brutewords with 1 character don't match? Then use 2 characters etc etc ... )
        brute(i,0,letters);    
    }        // Read the comments in void brute() for further information.

    // FOR()-LOOP STOPPED, PASSWORD FOUND OR NOT?
    if ( pw_found )
    {   // match! :D
        cout << "Bruteforcing stopped." << endl << endl;
        cout << "PASSWORD MATCH!!! -> " << pw << endl << endl;
        cout << "Press ESCAPE to close the application...";
        cin.get();        // Forces the application to wait for user input
    }
    else
    {    // no match ... :(
        cout << "Bruteforcing stopped." << endl << endl;
        cout << "*** No matching password has been found." << endl << endl;
        cout << "Press ESCAPE to close the application...";
        cin.get();        // Forces the application to wait for user input
    }

    return 0;
}

void brute(int charsInBW, int instance, string letters)
{    
    for(int b=0; b<alph_length ; b++ )        // There are [alph_length] characters in char array alphabet( e.g.'a'=position 0 and 'z'=position 25).
    {        // Now, alphabet[b] can display every single character in the chosen alphabet.
        if( !pw_found )        // Password still unknown?
        {
            if ( instance+1 != charsInBW )        // How many characters needs the bruteword(this is told by charsInBW)? If >1, then use this ( comparable to "picture in picture" or "mise en abyme" ) ...
            {        // It creates [charsInBW-1] running brute voids(and each one of them defines exactly 1 character in the bruteword) that run within a brute void that already started(e.g. the first instance started by int main).
                brute(charsInBW, instance+1, alphabet[b]+letters);        // "instance+1": One needed brute-instance less, because a new one ...  
            }        // ... with alphabet[b]+(letters of other instances) in the "letters"-string has been started.
            else check(alphabet[b]+letters);    // This is the last instance which checks ...
        }        // ... if (current character)+(letters of all other instances) is =password.    
        else    // A matching password has been found!
        {
            b=alph_length;        // This stops the for()-loops in void brute...
            maxChars = pw.size();            // ... and in int main().
        }
    }
}

void check(string bruteword)
{
    cout << bruteword << endl;
    if ( bruteword == password )  // Bruteword matches?
    {
        pw_found = true;    // Stops the creation of instances in void brute.
        pw = bruteword;        // Writes a global string for displaying the matching bruteword in int main.
    }
}

void createAlph()        // Should be self explanatory ...
{
    cout << endl;
    string answ = "";                // This will store the user's answers during alphabet construction

    cout << "Attack with lower case letters(Y/N)? ";
    cin >> answ;
    if ( answ == "y" || answ == "Y" ) strncat_s(alphabet,sizeof(alphabet),lower,sizeof(lower)); 
    else if ( answ == "n" || answ == "N" ) cout << "*** No lower case letters." << endl;
    else cout << "*** Wrong input." << endl << "Lower case letters have NOT been added to the brute force alphabet." << endl;
    answ = "";         // Reset for possible rewrite

    cout << "Attack with numbers(Y/N)? ";
    cin >> answ;
    if ( answ == "y" || answ == "Y" ) strncat_s(alphabet,sizeof(alphabet),numbs,sizeof(numbs));
    else if ( answ == "n" || answ == "N" ) cout << "*** No numbers." << endl;
    else cout << "*** Wrong input." << endl << "Numbers have NOT been added to the brute force alphabet." << endl;
    answ = ""; 

    cout << "Attack with upper case letters(Y/N)? ";
    cin >> answ;
    if ( answ == "y" || answ == "Y" ) strncat_s(alphabet,sizeof(alphabet),upper,sizeof(upper));
    else if ( answ == "n" || answ == "N" ) cout << "*** No upper case letters." << endl;
    else cout << "*** Wrong input." << endl << "Upper case letters have NOT been added to the brute force alphabet." << endl;
    answ = ""; 

    cout << "Attack with symbols(Y/N)? ";
    cin >> answ;
    if ( answ == "y" || answ == "Y" ) strncat_s(alphabet,sizeof(alphabet),symbls,sizeof(symbls));
    else if ( answ == "n" || answ == "N" ) cout << "*** No symbols." << endl;
    else cout << "*** Wrong input." << endl << "Symbols have NOT been added to the brute force alphabet." << endl;
    answ = ""; 
}

void asdf()
{
    string first = "";
    string last = "";
    char cFirst=alphabet[0];
    char cLast=alphabet[alph_length-1];

    for(int i=1; i<=minChars;i++)
    {
        first=first+cFirst;
    }

    for(int i=1; i<=maxChars;i++)
    {
        last=last+cLast;
    }

    cout << "Going to attack from '" << first << "' to '" << last << "'!" << endl;
}
//
// END OF FILE
Posts 12 of 2 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?