]> git.sesse.net Git - freerainbowtables/blobdiff - Client Applications/rcracki_mt/HashAlgorithm.cpp
(C)
[freerainbowtables] / Client Applications / rcracki_mt / HashAlgorithm.cpp
index caf30d63c38648b9851b674d042ad2893340a4d7..3c3c5583c8915071f56aea2169e2358debbe4a6b 100644 (file)
@@ -3,11 +3,11 @@
  * RainbowCrack\r
  *\r
  * Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>\r
- * Copyright Martin Westergaard Jørgensen <martinwj2005@gmail.com>\r
+ * Copyright 2009, 2010, 2011 Martin Westergaard Jørgensen <martinwj2005@gmail.com>\r
  * Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>\r
- * Copyright 2009, 2010 James Nobis <frt@quelrod.net>\r
+ * Copyright 2009, 2010, 2011 James Nobis <frt@quelrod.net>\r
  *\r
- * This file is part of racrcki_mt.\r
+ * This file is part of rcracki_mt.\r
  *\r
  * rcracki_mt is free software: you can redistribute it and/or modify\r
  * it under the terms of the GNU General Public License as published by\r
 #include <openssl/des.h>\r
 //#include <openssl/md2.h>\r
 #include <openssl/md4.h>\r
-//#include <openssl/md5.h>\r
 #include <openssl/sha.h>\r
 //#include <openssl/ripemd.h>\r
 #include "fast_md5.h"\r
 #include "md4.h"\r
 //#include "sha1.h"\r
-#ifdef _WIN32\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
        #pragma comment(lib, "libeay32.lib")\r
 #endif\r
 \r
@@ -166,7 +165,6 @@ void HashNTLMCHALL(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
        des_ecb_encrypt((des_cblock*)spoofed_challange, (des_cblock*)&pHash[16], ks, DES_ENCRYPT);\r
 }\r
 \r
-\r
 void HashORACLE(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)\r
 {\r
        char ToEncrypt[256];\r
@@ -177,11 +175,17 @@ void HashORACLE(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
        DES_key_schedule ks1,ks2;\r
        unsigned char deskey_fixed[]={ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef};\r
        int i,j;\r
-\r
-       strcpy (username, "SYS");\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
+       strcpy_s(username, sizeof(username), "SYS");\r
+#else\r
+       strcpy(username, "SYS");\r
+#endif\r
        int userlen = 3;\r
-       \r
-       strupr ((char*) pPlain);\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
+       _strupr((char*) pPlain);\r
+#else\r
+       strupr((char*) pPlain);\r
+#endif\r
        memset (ToEncrypt,0,sizeof(ToEncrypt));\r
 \r
        for (i=1,j=0; j<userlen; i++,j++)\r
@@ -216,12 +220,6 @@ void HashNTLM(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
                UnicodePlain[i * 2 + 1] = 0x00;\r
        }\r
 \r
-       /*MD4_CTX ctx;\r
-       MD4_Init(&ctx);\r
-       MD4_Update(&ctx, UnicodePlain, nPlainLen * 2);\r
-       MD4_Final(pHash, &ctx);*/\r
-\r
-       //MD4(UnicodePlain, nPlainLen * 2, pHash);\r
        MD4_NEW(UnicodePlain, nPlainLen * 2, pHash);\r
 }\r
 \r
@@ -239,13 +237,7 @@ void HashMD2(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
 \r
 void HashMD4(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)\r
 {\r
-       /*MD4_CTX ctx;\r
-       MD4_Init(&ctx);\r
-       MD4_Update(&ctx, pPlain, nPlainLen);\r
-       MD4_Final(pHash, &ctx);*/\r
-\r
        MD4_NEW(pPlain, nPlainLen, pHash);\r
-       //MD4(pPlain, nPlainLen, pHash);\r
 }\r
 \r
 void HashMD5(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)\r
@@ -304,11 +296,7 @@ void HashMSCACHE(unsigned char *pPlain, int nPlainLen, unsigned char* pHash)
                unicode_user[i*2] = username[i];\r
                unicode_user[i*2+1] = 0x00;\r
        }\r
-       /*\r
-       MD4_Init(&ctx);\r
-       MD4_Update(&ctx,unicode_pwd,nPlainLen*2);\r
-       MD4_Final(final1,&ctx);\r
-       */\r
+\r
        MD4_NEW( (unsigned char*)unicode_pwd, nPlainLen*2, final1 );\r
 \r
        MD4_Init(&ctx);\r
@@ -322,7 +310,7 @@ void HashMSCACHE(unsigned char *pPlain, int nPlainLen, unsigned char* pHash)
        {\r
                unicode_pwd[i*2] = pPlain[i];\r
                unicode_pwd[i*2+1] = 0x00;\r
-       }*/     \r
+       }*/\r
        /*\r
        unsigned char *buf = (unsigned char*)calloc(MSCACHE_HASH_SIZE + nSaltLength, sizeof(unsigned char));    \r
        HashNTLM(pPlain, nPlainLen, buf, NULL);\r
@@ -404,10 +392,6 @@ void HashPIX(unsigned char* pPlain, int nPlainLen, unsigned char* pHash)
 \r
        memcpy (pass,pPlain,nPlainLen);\r
 \r
-       /*MD5_CTX ctx;\r
-       MD5_Init(&ctx);\r
-       MD5_Update(&ctx, (unsigned char *) pass, MD5_DIGEST_LENGTH);\r
-       MD5_Final(final, &ctx);*/\r
        fast_MD5((unsigned char *) pass, MD5_DIGEST_LENGTH, final);\r
 \r
        char* p = (char*) temp;\r