Allora, ho un problema per molti stupido, penso... allora, io ho fatto un piccolo programma che effettua un semplicissimo brute force su un hash MD5 fornito dall'utente. Il problema è che, in fase di compilazione, tale programma mi da degli errori che non riesco a capire.
Tali errori sono:
prova_crittografia.c: In function `main':
prova_crittografia.c:22: error: incompatible types in assignment
prova_crittografia.c:25: warning: passing arg 2 of `strcat' makes pointer from integer without a cast
prova_crittografia.c:29: error: incompatible types in assignment
Questo invece è il codice del programma. Premetto che ho spulciato il codice, guardato su Internet, sulle pagine del man... ma non sono venuto a capo di niente!
Se riuscite ad aiutarmi mi fate un favore immensocodice:#include <stdio.h> #include <openssl/md5.h> #include <time.h> #include <math.h> #include <stdlib.h> #include <string.h> char pass[10], hash[100], hashcreato[100]; char all[]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'z', 'y', 'x', 'j'}; unsigned int lunghezza=3, lunghezza2, posizione; unsigned long int tentativi, longpass; int main(){ printf("Insert the hash: "); scanf("%s", &hash); srand(time(NULL)); tentativi=pow(26, lunghezza); while(lunghezza > 0){ lunghezza2=lunghezza; while(tentativi > 0){ pass=""; while(lunghezza2>0){ posizione=rand() % 25; strcat(pass, all[posizione]); lunghezza--; } longpass = sizeof(pass); hashcreato= MD5(pass, longpass, NULL); if((strcmp(hashcreato, hash)) == 0){ printf("PASSWORD FOUND! The password is: %s", pass); exit(0);} tentativi--; } lunghezza--; } return 0; }![]()


Rispondi quotando