From 66bfc81029532777837fb94d4396ef3db8eb33f9 Mon Sep 17 00:00:00 2001
From: aneesh <achattaraj@student.unimelb.edu.au>
Date: Fri, 24 May 2019 22:16:05 +1000
Subject: [PATCH] final

---
 crack.c   |  50 ++++++++++++++++++++++++++++++++++++++++++++++++--
 crack.exe | Bin 141020 -> 141550 bytes
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/crack.c b/crack.c
index fa170ed..67035a5 100644
--- a/crack.c
+++ b/crack.c
@@ -10,7 +10,7 @@
   int exist[30];
 BYTE old[6];
 int count = 0;
-void makeguess(char * word_list, int hashes[][32],int a);
+void guess(char * word_list, int hashes[][32],int a);
 
 //function to generate lower character strings of length 6 for random brute force: Got 8 passwords
 void printRandomString(int hashes[30][32]) {
@@ -281,8 +281,54 @@ int main(int argc, char * argv[]) {
 
       b++;
     }
-
+guess(argv[2],hashes,a);
   }
   return 0;
 
 }
+
+void guess(char * word_list, int hashes[][32], int a) {
+  
+  BYTE buffer[SHA256_BLOCK_SIZE];
+  SHA256_CTX ctx;
+  BYTE password[10];
+  bool cracked = true;
+
+  for (int c1 = 32; c1 < 127; c1++) {
+    password[0] = c1;
+    if (count == 10) break;
+    for (int c2 = 32; c2 < 127; c2++) {
+      password[1] = c2;
+      if (count == 10) break;
+      for (int c3 = 32; c3 < 127; c3++) {
+        password[2] = c3;
+        if (count == 10) break;
+        for (int c4 = 32; c4 < 127; c4++) {
+          if (count == 10) break;
+          password[3] = c4;
+          password[4] = '\0';
+
+          sha256_init( & ctx);
+          sha256_update( & ctx, password, sizeof(password));
+          sha256_final( & ctx, buffer);
+
+          for (int i = 1; i < 11; i++) {
+            cracked = true;
+            for (int j = 0; j < 32; j++) {
+              if (buffer[j] != hashes[i][j]) {
+                cracked = false;
+                break;
+              }
+            }
+            if (cracked == true) {
+              count++;
+              ctx.data[4] = '\0';
+              printf("%s %d\n", ctx.data, i);
+            }
+          }
+        }
+      }
+    }
+  }
+}
+  
diff --git a/crack.exe b/crack.exe
index bff2de83c5b460c31cea45785cbc05d7b8568329..6672ccd9334ad323f516a3a05474bc230ae6c790 100644
GIT binary patch
delta 9891
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

delta 9233
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
SC^Z!n@C63jKk+jCkpciEloD3}

-- 
GitLab