--- DumbForce-1.7.3.1 2009-03-26 05:27:15 +0300 +++ DumbForce-All6plus2008 2009-03-26 05:39:05 +0300 @@ -1,4 +1,4 @@ -[List.External:DumbForce] +[List.External:DumbForce-All6plus2008] int maxlength; // Maximum password length to try int last; // Last character position, zero-based int lastid; // Character index in the last position @@ -10,43 +10,14 @@ int minlength; int i, c; - minlength = 1; // Initial password length to try, must be at least 1 - maxlength = 7; // Must be at least same as minlength + minlength = 6; // Initial password length to try, must be at least 1 + maxlength = 6; // Must be at least same as minlength -/* - * This defines the character set. - * - * Let's say, we want to try TAB, all non-control ASCII characters, and all - * 8-bit characters, including the 8-bit terminal controls range (as these are - * used as regular national characters with some 8-bit encodings), but except - * for known terminal controls (risky for the terminal we may be running on). - * - * Also, let's say our hashes are case-insensitive, so skip lowercase letters - * (this is right for LM hashes). - */ +/* This defines the character set */ i = 0; - charset[i++] = 9; // Add horizontal TAB (ASCII 9), then - c = ' '; // start with space (ASCII 32) and - while (c < 'a') // proceed till lowercase 'a' - charset[i++] = c++; - c = 'z' + 1; // Skip lowercase letters and + c = ' '; // Start with space (ASCII 32) and while (c <= 0x7e) // proceed for all printable ASCII charset[i++] = c++; - c++; // Skip DEL (ASCII 127) and - while (c < 0x84) // proceed over 8-bit codes till IND - charset[i++] = c++; - charset[i++] = 0x86; // Skip IND (84 hex) and NEL (85 hex) - charset[i++] = 0x87; - c = 0x89; // Skip HTS (88 hex) - while (c < 0x8d) // Proceed till RI (8D hex) - charset[i++] = c++; - c = 0x91; // Skip RI, SS2, SS3, DCS - while (c < 0x96) // Proceed till SPA (96 hex) - charset[i++] = c++; - charset[i++] = 0x99; // Skip SPA, EPA, SOS - c = 0xa0; // Skip DECID, CSI, ST, OSC, PM, APC - while (c <= 0xff) // Proceed with the rest of 8-bit codes - charset[i++] = c++; /* Zero-terminate it, and cache the first character */ charset[i] = 0; @@ -59,6 +30,12 @@ word[i++] = c0; } lastid = -1; + +/* Append "2008" and NUL-terminate the "word" */ + word[i++] = '2'; + word[i++] = '0'; + word[i++] = '0'; + word[i++] = '8'; word[i] = 0; } @@ -80,6 +57,11 @@ if (++last < maxlength) { // Next length? id[last] = lastid = 0; word[last] = c0; + word[last + 1] = '2'; + word[last + 2] = '0'; + word[last + 3] = '0'; + word[last + 4] = '8'; + word[last + 5] = 0; } else // We're done word = 0; } @@ -95,5 +77,6 @@ if (!charset[i]) i = 0; // Not found id[last++] = i; } + if (last > 4) last -= 4; // Omit "2008" lastid = id[--last]; }