Advertisement
Guest User

Untitled

a guest
Dec 7th, 2014
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>
  4. #include <array>
  5. #include <sstream>
  6.  
  7. using namespace std;
  8.  
  9. string exec(const char* cmd) {
  10.     FILE* pipe = popen(cmd, "r");
  11.     if (!pipe) return "ERROR";
  12.     char buffer[128];
  13.     string result = "";
  14.     while(!feof(pipe)) {
  15.         if(fgets(buffer, 128, pipe) != NULL)
  16.             result += buffer;
  17.     }
  18.     pclose(pipe);
  19.     return result;
  20. }
  21.  
  22. string createWord(char letters[], int ziffern[])
  23. {
  24.     string word = "";
  25.    
  26.     for(int i=0; i<sizeof(ziffern); i++) { word += letters[ziffern[i]]; }
  27.    
  28.     return word;
  29. }
  30.  
  31. void testWord(string word, stringstream *stream, bool *stop)
  32. {
  33.     string result = exec(("7za.exe e Brut.zip -p" + word + " -y").c_str());
  34.    
  35.     if(result[137] == 'D')
  36.     {
  37.         stream << "TRY FOR '" << word << "' - FALSE" << endl;
  38.     } else {
  39.         stream << "TRY FOR '" << word << "' - TRUE" << endl;
  40.         stop = true;
  41.     }
  42. }
  43.  
  44. int main()
  45. {
  46.     /* --- informationen ---
  47.      * ziffern: 6
  48.      * buchstaben: abcdefghijklmnopqrstuvwxyz12345
  49.     */
  50.    
  51.     // --- parameter ---
  52.     char letters[] = "abcdprsuw1234";
  53.     int length = 6;
  54.    
  55.     // --- ausrechnen ---
  56.     int ziffern[length];
  57.     for(int i=0; i<length; i++) { ziffern[i] = 0; }
  58.    
  59.     int times = 1;
  60.     for(int i=0; i<length; i++) { times *= (sizeof(letters))-1; }
  61.    
  62.     // --- vordefinitionen ---
  63.     string word;
  64.     bool stop = false;
  65.     stringstream stream;
  66.    
  67.     for(int i=0; i<times; i++)
  68.     {
  69.         if(i % 5000 == 0)
  70.         {
  71.             cout << stream;
  72.             stream.str(string());
  73.         }
  74.         if(stop == false)
  75.         {
  76.             word = createWord(letters, ziffern);
  77.             testWord(word, &stream, &stop);
  78.             if(stop == false)
  79.             {
  80.                 //ziffern[sizeof(ziffern)-1]++;
  81.                 ziffern[sizeof(ziffern) / sizeof(ziffern[0])]++;
  82.                 //for(int i=sizeof(ziffern); i>0; i--)
  83.                 for(int i=(sizeof(ziffern) / sizeof(ziffern[0])); i>0; i--)
  84.                 {
  85.                     if(ziffern[i] == (sizeof(letters) / sizeof(ziffern[0])))
  86.                     //if(ziffern[i] == sizeof(letters))
  87.                     {
  88.                         ziffern[i] = 0;
  89.                         ziffern[i-1]++;
  90.                     }
  91.                 }
  92.                 if(ziffern[0] == sizeof(letters))
  93.                 {
  94.                     stream << "ERROR: NO PASSWORD FOUND" << endl;
  95.                     stop = true;
  96.                 }
  97.             }
  98.         } else {
  99.             cout << stream;
  100.             stream.str(string());
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement