Results 1 to 2 of 2

Thread: Yet another wordlist generator

  1. #1
    Junior Member NaZirCon's Avatar
    Join Date
    Sep 2007
    Posts
    71

    Default Yet another wordlist generator

    I'm not the author of this code, just found it on my old computer.(googlefu for "unsigned short int choice; // SELECTION FROM " points to this page , so I guess this is the author )
    Anyway, the code is simple and performs quite fast.
    I just commented out some unnecessary stuff , such as "system("cls")" and "system("pause")"

    Code:
    #include <iostream>
    #include <string>
    #include <time.h>
    #include <stdlib.h>
    #include <fstream>
    using namespace std;
    
    int main()
    {   // DATA ENTRY BEGIN --------------------------------------------------------
        //system("cls");
        unsigned short int error=0;
        string poss;//POSSIBLE CHARACTER COMBINATIONS
        unsigned short int pass;//MAXIMUM PASSWORD LENGTH
        string password; //ACTUAL PASSWORD
        unsigned short int found=0;
        
        cout << "SELECT CHARACTER SET:\n\n";
        cout << "\t1. abcdefghijklmnopqrstuvwxyz\n";
        cout << "\t2. ABCDEFGHIJKLMNOPQRSTUVWXYZ\n";
        cout << "\t3. 0123456789\n\n";
        cout << "\t4. 1&2\n";
        cout << "\t5. 1&2&3\n";
        cout << "\t6. Other\n\t";
        cout << "----------------------------------\n\t";
        
        unsigned short int choice; // SELECTION FROM CHARACTER SET
        string dataset; //STRING FOR CHARACTER SET
        cin >> choice;    
        
        switch ( choice ) {
        
          case 1 : 
            // Process for test = 1
            dataset="abcdefghijklmnopqrstuvwxyz";
            break;
        
          case 2 : 
            // Process for test = 5
            dataset="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            break;
        
          case 3 : 
            // Process for test = 5
            dataset="0123456789";
            break;
        
          case 4 : 
            // Process for test = 5
            dataset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            break;
            
          case 5 : 
            // Process for test = 5
            dataset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            break;
        
          case 6 : 
            // Process for all other cases.
            cout << "\nENTER YOUR OWN CHARACTER SET: ";
            cin >> dataset;
            break;
            
          default :
            error=1;
        
        }
        if(error==0){
            poss=dataset;
            
            cout << "\nENTER PASSWORDS MAXIMUM LENGTH: ";
            cin >> pass;
            
            unsigned short int i=0;
            while(poss[i])
            {
                          i++;
            }
                
            int pass_array[pass-1];
            unsigned short int j=0;
            while(j<pass)
            {
                          pass_array[j]=0;
                          j++;
            }
            
            unsigned short int comb_max=i-1; // SIZE OF COMBINATIONS ARRAY
            signed short int pass_max=j-1; // MAXIMUM SIZE OF PASSWORD
            
            signed short int pointer; //POINTER WILL EQUAL THE CURRENT PASS SIZE
            // THIS ENABLES THE FLOATING POINT TO CHANGE THE COMBINATIONS
            
            unsigned int counter=0; // COUNTER FOR EACH COMBINATION TRY
            
            // DATA ENTRY END ----------------------------------------------------------
            
            // OPENS THE TEXT FILE TO WRITE PASSWORDS TO
            ofstream myfile;
            myfile.open ("passwords.txt");
            // -----------------------------------------    
            
            // ---- start timer ----
            time_t start,end;
            double dif;
            time (&start);
            
            while(pass_max>=0)
            {
            do
            {
                     pointer=pass_max;
                     while(pass_array[pointer]<=comb_max)
                     {
                                                         string curr;//  CURRENT PASSWORD TRY
                                                         counter++;
                                                         j=0;
                                                         while(j<=pass_max)
                                                         {
                                                                           curr+= poss[pass_array[j]];
                                                                           j++;
                                                         }
                                                         myfile << curr << " \n";
                                                         pass_array[pointer]=pass_array[pointer]+1;
                     }
                     pass_array[pointer]=0;
                     pointer--;
                     while(pass_array[pointer]==comb_max)
                     {
                                                         pass_array[pointer]=0;
                                                         pointer--;
                     }
                     pass_array[pointer]=pass_array[pointer]+1;
            }
            while(pointer>=0);
            
            pass_max--;
            }
            // ---- end timer ----
            end:
            time (&end);
            dif = difftime (end,start);
            
            // ---- close text file ---- //
            myfile.close();
            // ------------------------- //
            
            // ----- DISPLAY RESULTS ---- //
            unsigned int combinations_per_second;
            combinations_per_second=counter/dif;
            //system("cls");
            cout << "\nWORDLIST CREATED";
            cout << "\n------------------------------";
            cout << "\nRUN TIME:\t " << dif << " sec";
            cout << "\nCOMBINATIONS:\t " << counter;
            cout << "\nCOMB/SEC: \t " << combinations_per_second;
            cout << "\n\n\n";
            //system("pause");
            return 0;
        }else{
            cout << "\tINVALID CHOICE!";
            //system("pause");      
        }   
    }
    Save the code as "yourfilename.cpp"
    To compile :

    Code:
    g++ yourfilename.cpp -o yourfilename
    To run :

    Code:
    ./yourfilename
    Have fun!
    Beer is served only to members of the trade union!

  2. #2
    Junior Member
    Join Date
    Apr 2008
    Posts
    36

    Default

    thank you

    for sharing I will try it

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •