Archiv verlassen und diese Seite im Standarddesign anzeigen : 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 :/
Hier ein Beispiel, das die Zahlen eines Arrays hochzählt:
#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:
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
Das mit Permutation hab ich mir auch schon überlegt, aber das Problem ist, ich muss dann die Buchstaben schon kennen.
Huh? Du kennst doch dein Set - von "A" bis "Z". :)
Ja aber dann müsste das Passwort ja 26 Zeichen lang sein.
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.
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.