From f429dbd6e697177b89cd7e87e3bf66f3b855dcee Mon Sep 17 00:00:00 2001 From: aneesh <achattaraj@student.unimelb.edu.au> Date: Sat, 25 May 2019 22:07:55 +1000 Subject: [PATCH] yo --- crack.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/crack.c b/crack.c index ba536d0..6b0e76b 100644 --- a/crack.c +++ b/crack.c @@ -10,6 +10,7 @@ int exist[30]; BYTE old[6]; int count = 0; +int exist3[10000]; //function to generate lower character strings of length 6 for random brute force: Got 8 passwords @@ -265,13 +266,13 @@ int main(int argc, char * argv[]) { int i, a = 0, b = 0; fseek(password_file, 0L, SEEK_END); int sz = ftell(password_file); - rewind(password_file); int hashes[sz / 32][32]; unsigned char buff[sz]; + fread(buff, sizeof(buff), 1, password_file); for (i = 0; i < sz; i++) { - if (i % 32 == 0) { + if (i % 32 == 0 && i>0) { a++; b = 0; @@ -281,6 +282,34 @@ int main(int argc, char * argv[]) { b++; } + bool cracked=true; + FILE *word_list; + SHA256_CTX ctx; + BYTE buffer[SHA256_BLOCK_SIZE]; + word_list=fopen(argv[2],"rb"); + while( fscanf(word_list, "%s", word) != EOF ){ + sha256_init(&ctx); + sha256_update(&ctx, word, strlen(word)); + sha256_final(&ctx, buffer); + for (int i = 0; i < sz/32; i++) { + cracked = true; + for (int j = 0; j < 32; j++) { + if (buffer[j] != hashes[i][j]) { + cracked = false; + break; + } + } + if (cracked == true && exist3[i+1]!=1) { + count++; + ctx.data[strlen(word)] = '\0'; + exist3[i+1]=1; + printf("%s %d\n", ctx.data, i+1); + } + } + + } + + } return 0; -- GitLab