[ Brute Force ] Programm -> Fehler



  • Hallo ich habe folgendes Problem:

    Ich programmiere grade an einem Programm was ein 4 stelliges Passwort
    knacken soll ( Brute Force )!

    hier die Quelle:

    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    char dazu(char ch,char key){
    return ch+key;
    }
    
    int main(){
    HWND hWin;
    char channel[100]="";
    char password[10]="";
    char befehl[150]="";
    char ch;
    
    WPARAM wParam;
    LPARAM lParam;
    
    cout<<"\nDas Password (von hier wird alles ausprobiert z.B. aaaa ): ";
    cin>>password;
    
    int b=0;
    int i=1;
    
    for(i=0;;i++){
         for(i=0;;i++){
              for(i=0;;i++){
                   for(i=0;;i++){
                        b=3;
                        ch=password[b];
                        ch=dazu(ch,1);
                        password[b]=ch;
                        if(i==255){
                        i=0;break;
                        }
                   }
                   b=2;
                   ch=password[b];
                   ch=dazu(ch,1);
                   password[b]=ch;
                   if(i==255){
                   i=0;break;
                   }
              }
              b=1;
              ch=password[b];
              ch=dazu(ch,1);
              password[b]=ch;
              cout<<password<<endl;
              if(i==255){
              i=0;break;
              }
         }
         b=0;
         ch=password[b];
         ch=dazu(ch,1);
         password[b]=ch;
         cout<<password<<endl;
         Sleep(20);
         if(i==255){
         i=0;break;
         }
    }
    
    system("PAUSE");
    return 0;
    }
    

    Irgentwas stimmt hier aber nicht denn er rackert nur die letzten beiden Schleifen durch 😕

    Vorher hatte ich es mit einer While - Schleife und if´s ging aber nicht is abgestürzt 😡

    Sieht jemand den Fehler oder kann Tipps geben ?
    Wenn ich in jedem Schleifendurchlauf das passwort Ausgebe dann kommt sehr schnell so ein *piepen* vieleicht weil zu viele Zeilen ausgegeben werden ??
    🤡

    Bin ein Anfänger-noob bitte um Hilfe 👍

    mfg GeCh.



  • Du hast vier ineinander verschachtelte for-Schleifen und verwendest für alle die selbe Zählvariable - da KANN nicht gut gehen.



  • Cool Danke jetz funktionierts jetz probiert er alle Möglichkeiten aus! danke

    Aber ich hätte gerne das er von alleine rausfindet wie lang das Passwort
    ist bzw. er nach und nach Schleifen anhängt ?!! Also er probiert es aus aber er weiß nicht wie lang es ist !! ??



  • Da dürfte Rekursion der richtige Ansatz sein:

    void teste(string pw,int max_len)
    {
      if(pw.length()==max_len)
        ausgabe;
      else
        for(char i=0;i<256;++i) teste(pw+i,max_len);
    }
    

Anmelden zum Antworten