From: Martin Westergaard Jorgensen Date: Thu, 20 Aug 2009 05:35:42 +0000 (+0200) Subject: added distrrtgen_flash X-Git-Url: https://git.sesse.net/?p=freerainbowtables;a=commitdiff_plain;h=f592bfba056cddce63e977cf49a75a913732cc45 added distrrtgen_flash --- diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/Makefile b/BOINC software/BOINC client apps/distrrtgen_flash/Makefile new file mode 100644 index 0000000..0963011 --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/Makefile @@ -0,0 +1,32 @@ +# This should work on Linux. Modify as needed for other platforms. + +BOINC_DIR = /home/frt/server_stable +BOINC_API_DIR = $(BOINC_DIR)/api +BOINC_LIB_DIR = $(BOINC_DIR)/lib + +CXXFLAGS = -g \ + -DAPP_GRAPHICS \ + -I$(BOINC_DIR) \ + -I$(BOINC_LIB_DIR) \ + -I$(BOINC_API_DIR) \ + -L$(BOINC_API_DIR) \ + -L$(BOINC_LIB_DIR) \ + -L /usr/X11R6/lib \ + -L. + + +PROGS = distrrtgen \ + +all: $(PROGS) + +libstdc++.a: + ln -s `g++ -print-file-name=libstdc++.a` + +clean: + /bin/rm -f $(PROGS) *.o + +distclean: + /bin/rm -f $(PROGS) *.o libstdc++.a + +distrrtgen: distrrtgen.o libstdc++.a $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a + $(CXX) Public.cpp ChainWalkContext.cpp HashAlgorithm.cpp HashRoutine.cpp md5.cpp $(CXXFLAGS) -o distrrtgen distrrtgen.o libstdc++.a -pthread -lboinc_api -lboinc -lssl -O3 diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/charset.txt b/BOINC software/BOINC client apps/distrrtgen_flash/charset.txt new file mode 100644 index 0000000..6e749fa --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/charset.txt @@ -0,0 +1,34 @@ +# charset configuration file for DistrRTgen v3.2 by Martin Westergaard (martinwj2005@gmail.com) + +byte = [] +alpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ] +alpha-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ] +alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] +alpha-numeric-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ] +alpha-numeric-symbol14 = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=] +alpha-numeric-symbol14-space= [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ] +all = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] +all-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] +alpha-numeric-symbol32-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] +lm-frt-cp437 = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€Ž’™š›œžŸ¥àáâãäæçèéêëî] +lm-frt-cp850 = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€Ž’™šœŸ¥µ¶·½¾ÇÏÑÒÓÔÕÖ×ØÞàáâãåæèéêëíï] +lm-frt-cp437-850 = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~€Ž’™š›œžŸ¥µ¶·½¾ÇÏÑÒÓÔÕÖ×ØÞàáâãäåæçèéêëíîï] + +numeric = [0123456789] +numeric-space = [0123456789 ] +loweralpha = [abcdefghijklmnopqrstuvwxyz] +loweralpha-space = [abcdefghijklmnopqrstuvwxyz ] +loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789] +loweralpha-numeric-space = [abcdefghijklmnopqrstuvwxyz0123456789 ] +loweralpha-numeric-symbol14 = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=] +loweralpha-numeric-all = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] +loweralpha-numeric-symbol32-space= [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] + +mixalpha = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] +mixalpha-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ] +mixalpha-numeric = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] +mixalpha-numeric-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ] +mixalpha-numeric-symbol14 = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=] +mixalpha-numeric-all = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/] +mixalpha-numeric-symbol32-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] +mixalpha-numeric-all-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ] diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp new file mode 100644 index 0000000..5271512 --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp @@ -0,0 +1,345 @@ +// This file is part of BOINC. +// http://boinc.berkeley.edu +// Copyright (C) 2008 University of California +// +// BOINC is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation, +// either version 3 of the License, or (at your option) any later version. +// +// BOINC is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with BOINC. If not, see . + +// This program serves as both +// - An example BOINC application, illustrating the use of the BOINC API +// - A program for testing various features of BOINC +// +// NOTE: this file exists as both +// boinc/apps/upper_case.C +// and +// boinc_samples/example_app/uc2.C +// If you update one, please update the other! + +// The program converts a mixed-case file to upper case: +// read "in", convert to upper case, write to "out" +// +// command line options +// -run_slow: sleep 1 second after each character +// -cpu_time N: use about N CPU seconds after copying files +// -early_exit: exit(10) after 30 chars +// -early_crash: crash after 30 chars +// + +#ifdef _WIN32 +#include "boinc_win.h" +#else +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#endif + +#include +#include +#include +#include "str_util.h" +#include "util.h" +#include "filesys.h" +#include "boinc_api.h" +#include "Public.h" +// Rainbowcrack code +#include "ChainWalkContext.h" +typedef unsigned int uint32; +//typedef unsigned __int64 uint64; + + +using std::string; + +/* +bool early_exit = false; +bool early_crash = false; +bool early_sleep = false; +double cpu_time = 20, comp_result; +*/ +int QuickSortPartition(RainbowChainCP* pChain, int nLow, int nHigh) +{ + int nRandomIndex = nLow + ((unsigned int)rand() * (RAND_MAX + 1) + (unsigned int)rand()) % (nHigh - nLow + 1); + RainbowChainCP TempChain; + TempChain = pChain[nLow]; + pChain[nLow] = pChain[nRandomIndex]; + pChain[nRandomIndex] = TempChain; + + TempChain = pChain[nLow]; + uint64 nPivotKey = pChain[nLow].nIndexE; + while (nLow < nHigh) + { + while (nLow < nHigh && pChain[nHigh].nIndexE >= nPivotKey) + nHigh--; + pChain[nLow] = pChain[nHigh]; + while (nLow < nHigh && pChain[nLow].nIndexE <= nPivotKey) + nLow++; + pChain[nHigh] = pChain[nLow]; + } + pChain[nLow] = TempChain; + return nLow; +} + +void QuickSort(RainbowChainCP* pChain, int nLow, int nHigh) +{ + if (nLow < nHigh) + { + int nPivotLoc = QuickSortPartition(pChain, nLow, nHigh); + QuickSort(pChain, nLow, nPivotLoc - 1); + QuickSort(pChain, nPivotLoc + 1, nHigh); + } +} + +int main(int argc, char **argv) { + int retval; + double fd; + char output_path[512], chkpt_path[512]; + FILE* state; + retval = boinc_init(); + if (retval) { + fprintf(stderr, "boinc_init returned %d\n", retval); + exit(retval); + } + + + // get size of input file (used to compute fraction done) + // + //file_size(input_path, fsize); + + // See if there's a valid checkpoint file. + // If so seek input file and truncate output file + // + + + if(argc < 10) + { + fprintf(stderr, "Not enough parameters"); + return -1; + } + string sHashRoutineName, sCharsetName, sSalt, sCheckPoints; + uint32 nRainbowChainCount, nPlainLenMin, nPlainLenMax, nRainbowTableIndex, nRainbowChainLen; + uint64 nChainStart; + sHashRoutineName = argv[1]; + sCharsetName = argv[2]; + nPlainLenMin = atoi(argv[3]); + nPlainLenMax = atoi(argv[4]); + nRainbowTableIndex = atoi(argv[5]); + nRainbowChainLen = atoi(argv[6]); + nRainbowChainCount = atoi(argv[7]); +#ifdef _WIN32 + + nChainStart = _atoi64(argv[8]); + +#else + nChainStart = atoll(argv[8]); +#endif + sCheckPoints = argv[9]; + vector vCPPositions; + char *cp = strtok((char *)sCheckPoints.c_str(), ","); + while(cp != NULL) + { + vCPPositions.push_back(atoi(cp)); + cp = strtok(NULL, ","); + } + if(argc == 11) + { + sSalt = argv[10]; + } + //std::cout << "Starting ChainGenerator" << std::endl; + // Setup CChainWalkContext + //std::cout << "ChainGenerator started." << std::endl; + + if (!CChainWalkContext::SetHashRoutine(sHashRoutineName)) + { + fprintf(stderr, "hash routine %s not supported\n", sHashRoutineName.c_str()); + return 1; + } + //std::cout << "Hash routine validated" << std::endl; + + if (!CChainWalkContext::SetPlainCharset(sCharsetName, nPlainLenMin, nPlainLenMax)) + { + std::cerr << "charset " << sCharsetName << " not supported" << std::endl; + return 2; + } + //std::cout << "Plain charset validated" << std::endl; + + if (!CChainWalkContext::SetRainbowTableIndex(nRainbowTableIndex)) + { + std::cerr << "invalid rainbow table index " << nRainbowTableIndex << std::endl; + return 3; + } + //std::cout << "Rainbowtable index validated" << std::endl; + + if(sHashRoutineName == "mscache")// || sHashRoutineName == "lmchall" || sHashRoutineName == "halflmchall") + { + // Convert username to unicode + const char *szSalt = sSalt.c_str(); + int salt_length = strlen(szSalt); + unsigned char cur_salt[256]; + for (int i=0; i. + +#include "boinc_api.h" + +struct UC_SHMEM { + double update_time; + double fraction_done; + double cpu_time; + BOINC_STATUS status; + int countdown; + // graphics app sets this to 5 repeatedly, + // main program decrements it once/sec. + // If it's zero, don't bother updating shmem +}; diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb new file mode 100644 index 0000000..099aba7 Binary files /dev/null and b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb differ diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln new file mode 100644 index 0000000..24b2d5b --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln @@ -0,0 +1,62 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "distrrtgen", "distrrtgen.vcproj", "{A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "index_calculator", "..\index_calculator\index_calculator.vcproj", "{C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rti2rto", "..\..\standalone\rti2rto\rti2rto.vcproj", "{E0FBC06A-C902-4468-A614-CBF9F591AA7C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convertrti2", "..\..\standalone\converti2\converti2.vcproj", "{066FD6F1-5990-47AD-B095-7AE0029CF5AE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsearch", "..\..\standalone\rsearch\rsearch.vcproj", "{40F12861-0A31-4E0E-8324-24F897271C8E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rtperfectp", "..\..\standalone\rtperfectp\rtperfectp.vcproj", "{9725038C-A07B-40DD-87CD-3A119021A244}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rcracki", "..\..\standalone\rcracki\rcracki.vcproj", "{966DA4B4-E13C-449D-9A93-303C6FEA25C4}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chain_checker", "..\chain_checker\chain_checker.vcproj", "{74C09EAC-2EA2-4548-9B61-0FEE56147DFE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Debug|Win32.ActiveCfg = Debug|Win32 + {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Debug|Win32.Build.0 = Debug|Win32 + {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Release|Win32.ActiveCfg = Release|Win32 + {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Release|Win32.Build.0 = Release|Win32 + {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Debug|Win32.ActiveCfg = Debug|Win32 + {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Debug|Win32.Build.0 = Debug|Win32 + {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Release|Win32.ActiveCfg = Release|Win32 + {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Release|Win32.Build.0 = Release|Win32 + {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Debug|Win32.ActiveCfg = Debug|Win32 + {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Debug|Win32.Build.0 = Debug|Win32 + {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Release|Win32.ActiveCfg = Release|Win32 + {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Release|Win32.Build.0 = Release|Win32 + {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Debug|Win32.Build.0 = Debug|Win32 + {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Release|Win32.ActiveCfg = Release|Win32 + {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Release|Win32.Build.0 = Release|Win32 + {40F12861-0A31-4E0E-8324-24F897271C8E}.Debug|Win32.ActiveCfg = Debug|Win32 + {40F12861-0A31-4E0E-8324-24F897271C8E}.Debug|Win32.Build.0 = Debug|Win32 + {40F12861-0A31-4E0E-8324-24F897271C8E}.Release|Win32.ActiveCfg = Release|Win32 + {40F12861-0A31-4E0E-8324-24F897271C8E}.Release|Win32.Build.0 = Release|Win32 + {9725038C-A07B-40DD-87CD-3A119021A244}.Debug|Win32.ActiveCfg = Debug|Win32 + {9725038C-A07B-40DD-87CD-3A119021A244}.Debug|Win32.Build.0 = Debug|Win32 + {9725038C-A07B-40DD-87CD-3A119021A244}.Release|Win32.ActiveCfg = Release|Win32 + {9725038C-A07B-40DD-87CD-3A119021A244}.Release|Win32.Build.0 = Release|Win32 + {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Debug|Win32.ActiveCfg = Debug|Win32 + {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Debug|Win32.Build.0 = Debug|Win32 + {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Release|Win32.ActiveCfg = Release|Win32 + {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Release|Win32.Build.0 = Release|Win32 + {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Debug|Win32.ActiveCfg = Debug|Win32 + {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Debug|Win32.Build.0 = Debug|Win32 + {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Release|Win32.ActiveCfg = Release|Win32 + {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo new file mode 100644 index 0000000..cfac2c8 Binary files /dev/null and b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo differ diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj new file mode 100644 index 0000000..aeff305 --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user new file mode 100644 index 0000000..15b19f6 --- /dev/null +++ b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user @@ -0,0 +1,65 @@ + + + + + + + + + + +