Ergebnis 1 bis 6 von 6
  1. #1
    DateMake Dialer
    Registriert seit
    24.09.2007
    Beiträge
    103

    Standard Bruteforce Algorithmus

    Heyho! Ich wollt ma n kleinen bruteforcer schreiben, Programm steht soweit aber ich find einfach kein richtigen Weg, wie ich alle Möglichkeiten von Buchstabenkombinationen in sagen wir mal 5-10 Zeichen bekomme.

    Bei 2 Zeichen hab ich mir es so vorgestellt(Müsste auch funktionieren);

    A + A bis Z
    B + A bis Z
    C + A bis Z
    ...

    A bis Z + A
    B bis Z + B
    C bis Z + C
    ...

    Aber bei mehr Zeichen weiß ich einfach nicht, wie ich alle Kombinationen bekomme :/

  2. #2
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Hier ein Beispiel, das die Zahlen eines Arrays hochzählt:
    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <windows.h>
    
    #define max 5
    
    int main()
    {
    	char out[2 + 2 + 2 + 3 + 3 * max];
    
    	int table[max];
    	for(int i = 0; i < max; i++) table[i] = 1;
    
    	bool done = false;
    	while(!done)
    	{
    		table[0]++;
    		for(int i = 0; i < max; i++)
    		{
    			if(table[i] > max)
    			{
    				if(i < max - 1)
    				{
    					table[i + 1]++;
    					table[i] = 1;
    				}
    				else
    				{
    					done = true;
    					break;
    				}
    			}
    		}
    
    		if(!done)
    		{
    			out[0] = 0;
    			wsprintfA(out, "\n\t%.2i", table[0]);
    			for(int i = 1; i < max; i++) wsprintfA(out, "%s - %.2i", out, table[i]);
    
    			printf("%s", out);
    		}
    	}
    
    	getch();
    	return 0;
    }
    Für deine Zwecke könntest du noch so etwas hinzufügen:
    Code:
    char *Set = "abcdefghijklmnopqrstuvwxyz";
    #define max 26;
    
    //...
    
    for(int i = 0; i < max; i++)
    table[i] = Set[table[i]]; // um die indizen in zeichen umzuwandeln
    Es gibt jedoch bessere Möglichkeiten, das zu lösen (habe den Code nur grad gepostet, weil ich ihn für die Schule coden musste) - ich denke, dass dieser Code etwas langsamer ist, obwohl das vom Compiler und dessen Optimierung abhängt. Besser wäre eventuell die Verwendung von Permutation.

    Greetz, f0Gx
    I can haz RCE?

  3. #3
    DateMake Dialer
    Registriert seit
    24.09.2007
    Beiträge
    103

    Standard

    Das mit Permutation hab ich mir auch schon überlegt, aber das Problem ist, ich muss dann die Buchstaben schon kennen.

  4. #4
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Huh? Du kennst doch dein Set - von "A" bis "Z".
    I can haz RCE?

  5. #5
    DateMake Dialer
    Registriert seit
    24.09.2007
    Beiträge
    103

    Standard

    Ja aber dann müsste das Passwort ja 26 Zeichen lang sein.

  6. #6
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Ja, im Code verwende ich max sowohl für die Länge des Arrays, als auch für die maximal zu zählende Zahl. Pass es einfach so an, dass die Länge in einer Variable gespeichert wird und die maximale Zahl gleich der Länge deines Sets ist.
    I can haz RCE?

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •