* Copyright Martin Westergaard Jørgensen <martinwj2005@gmail.com>\r
* Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>\r
* Copyright 2009 James Dickson\r
- * Copyright 2009, 2010 James Nobis <frt@quelrod.net>\r
+ * Copyright 2009, 2010, 2011 James Nobis <frt@quelrod.net>\r
* Copyright 2010 uroskn\r
*\r
* Modified by Martin Westergaard Jørgensen <martinwj2005@gmail.com> to support * indexed and hybrid tables\r
* 2009-01-04 - <james.dickson@comhem.se> - Slightly modified (or "fulhack" as \r
* we say in sweden) to support cain .lst files.\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
* along with rcracki_mt. If not, see <http://www.gnu.org/licenses/>.\r
*/\r
\r
-#ifdef _WIN32\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
#pragma warning(disable : 4786 4267 4018)\r
#endif\r
\r
#include <dirent.h>\r
#endif\r
\r
-#ifdef _WIN32\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
#pragma comment(lib, "libeay32.lib")\r
#endif\r
\r
//vPathName.clear();\r
\r
string sPath;\r
- int n = sWildCharPathName.find_last_of('\\');\r
+ string::size_type n = sWildCharPathName.find_last_of('\\');\r
\r
- if (n == (sWildCharPathName.size() - 1))\r
+ if ( n == (sWildCharPathName.size() - 1) )\r
{\r
sWildCharPathName = sWildCharPathName.substr(0, n);\r
n = sWildCharPathName.find_last_of('\\');\r
}\r
\r
- if (n != -1)\r
+ if (n != string::npos)\r
sPath = sWildCharPathName.substr(0, n + 1);\r
\r
_finddata_t fd;\r
return false;\r
\r
// Make lower\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < sNormalizedHash.size(); i++)\r
{\r
if (sNormalizedHash[i] >= 'A' && sNormalizedHash[i] <= 'F')\r
vector<string> vLine;\r
if (ReadLinesFromFile(sPathName, vLine))\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLine.size(); i++)\r
{\r
vector<string> vPart;\r
- if (SeperateString(vLine[i], "::::", vPart))\r
+ if (SeparateString(vLine[i], "::::", vPart))\r
{\r
string sUserName = vPart[0];\r
string sLMHash = vPart[2];\r
vector<string> vLine;\r
if (ReadLinesFromFile(sPathName, vLine))\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLine.size(); i++)\r
{\r
vector<string> vPart;\r
- if (SeperateString(vLine[i], "\t\t\t\t\t\t", vPart))\r
+ if (SeparateString(vLine[i], "\t\t\t\t\t\t", vPart))\r
{\r
string sUserName = vPart[0];\r
string sLMHash = vPart[4];\r
}\r
\r
unsigned char* pLMPassword = new unsigned char[sLMPassword.size() * 2];\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < sLMPassword.size(); i++)\r
{\r
pLMPassword[i * 2 ] = sLMPassword[i];\r
}\r
if (readFromIni)\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLine.size(); i++)\r
{\r
if (vLine[i].substr(0,1) != "#")\r
{\r
vector<string> vPart;\r
- if (SeperateString(vLine[i], "=", vPart))\r
+ if (SeparateString(vLine[i], "=", vPart))\r
{\r
string sOption = vPart[0];\r
string sValue = vPart[1];\r
vector<string> sSessionData;\r
if (ReadLinesFromFile(sSessionPathName.c_str(), sSessionData))\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < sSessionData.size(); i++)\r
{\r
vector<string> vPart;\r
- if (SeperateString(sSessionData[i], "=", vPart))\r
+ if (SeparateString(sSessionData[i], "=", vPart))\r
{\r
string sOption = vPart[0];\r
string sValue = vPart[1];\r
// don't load these if we are resuming a session that already has a list of tables\r
if (useDefaultRainbowTablePath && !resumeSession)\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vDefaultRainbowTablePath.size(); i++)\r
{\r
vector<string> vPart;\r
- if (SeperateString(vDefaultRainbowTablePath[i], ".=", vPart))\r
+ if (SeparateString(vDefaultRainbowTablePath[i], ".=", vPart))\r
{\r
string lineAlgorithm = vPart[1];\r
string linePath = vPart[2];\r
vector<string> vLine;\r
if (ReadLinesFromFile(sPathName, vLine))\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLine.size(); i++)\r
{\r
string sHash = vLine[i];\r
\r
if (fCrackerType)\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vHash.size(); i++)\r
hs.AddHash(vHash[i]);\r
}\r
else\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLMHash.size(); i++)\r
{\r
hs.AddHash(vLMHash[i].substr(0, 16));\r
vector<string> sSessionData;\r
if (ReadLinesFromFile(sSessionPathName.c_str(), sSessionData))\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < sSessionData.size(); i++)\r
{\r
vector<string> vPart;\r
- if (SeperateString(sSessionData[i], "=", vPart))\r
+ if (SeparateString(sSessionData[i], "=", vPart))\r
{\r
string sOption = vPart[0];\r
string sValue = vPart[1];\r
\r
if (sOption == "sHash") {\r
vector<string> vPartHash;\r
- if (SeperateString(sValue, "::", vPartHash))\r
+ if (SeparateString(sValue, "::", vPartHash))\r
{\r
string sHash = vPartHash[0];\r
string sBinary = vPartHash[1];\r
}\r
}\r
}\r
-\r
- // (Over)write session data if we are not resuming\r
- if (!resumeSession)\r
+ else\r
{\r
+ // (Over)write session data if we are not resuming\r
FILE* file = fopen(sSessionPathName.c_str(), "w");\r
string buffer = "";\r
\r
buffer += "sInputType=" + sInputType + "\n";\r
buffer += "sInput=" + sInput + "\n";\r
\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vPathName.size(); i++)\r
{\r
buffer += "sPathName=" + vPathName[i] + "\n";\r
printf("total disk access time: %.2f s\n", ce.GetStatTotalDiskAccessTime());\r
printf("total cryptanalysis time: %.2f s\n", ce.GetStatTotalCryptanalysisTime());\r
printf("total pre-calculation time: %.2f s\n", ce.GetStatTotalPrecalculationTime());\r
- printf("total chain walk step: %d\n", ce.GetStatTotalChainWalkStep());\r
+// printf("total chain walk step: %d\n", ce.GetStatTotalChainWalkStep());\r
+ printf("total chain walk step: %llu\n", ce.GetStatTotalChainWalkStep());\r
printf("total false alarm: %d\n", ce.GetStatTotalFalseAlarm());\r
- printf("total chain walk step due to false alarm: %d\n", ce.GetStatTotalChainWalkStepDueToFalseAlarm());\r
+// printf("total chain walk step due to false alarm: %d\n", ce.GetStatTotalChainWalkStepDueToFalseAlarm());\r
+ printf("total chain walk step due to false alarm: %llu\n", ce.GetStatTotalChainWalkStepDueToFalseAlarm());\r
// printf("total chain walk step skipped due to checkpoints: %d\n", ce.GetStatTotalFalseAlarmSkipped()); // Checkpoints not used - yet\r
printf("\n");\r
\r
printf("-------------------------------------------------------\n");\r
if (fCrackerType)\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vHash.size(); i++)\r
{\r
string sPlain, sBinary;\r
}\r
else\r
{\r
- UINT4 i;\r
+ uint32 i;\r
for (i = 0; i < vLMHash.size(); i++)\r
{\r
string sPlain1, sBinary1;\r