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!
codice:
#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;
}
Se riuscite ad aiutarmi mi fate un favore immenso