Also vielleicht ich stehe gerade massiv auf dem Schlauch, aber warum zum Teufel löst du das mit den ganzen For-Schleifen? Warum nicht einfach rekursiv?
Ist vielleicht auch nicht perfekt, aber berechnet auch alle Kombinationen aus dem gegebenen Charset.Code:void btf(int size, int pos, char curr[]) { char* charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; int i; if(pos < size){ for(i=0; i<strlen(charset);i++){ char test[strlen(curr) + 2]; strcpy(test, curr); int len = strlen(test); test[len] = charset[i]; test[len+1] = '\0'; btf(size, pos+1, test); }} else { if(match(crackme, curr) == 1) { printf("Your Hash has been Cracked. md5( %s ) == %s\n", curr, crackme); exit(0); } } }
(Siehe http://free-hack.com/ansi-c-c-c/5623...5-cracker.html )
Ich hoffe mal ich hab auch alles richtig verstanden, und hab jetzt nicht aus versehen Mist gepostet![]()




Zitieren
