X-Git-Url: https://www.flypig.org.uk/git/?a=blobdiff_plain;f=src%2FoclHashcat.c;h=a964cba756dc9682fc3698eea180378f12abb276;hb=52b17a602fa0f6a35e9b69a8a10c7ee80f1dc6fa;hp=2908154bb205e408d95b015190f6cb2c79ba38fd;hpb=d0e7ee682428ec543ad4a3b1e5fff9fedc9e436c;p=hashcat.git diff --git a/src/oclHashcat.c b/src/oclHashcat.c index 2908154..a964cba 100644 --- a/src/oclHashcat.c +++ b/src/oclHashcat.c @@ -148,7 +148,7 @@ double TARGET_MS_PROFILE[3] = { 8, 16, 96 }; #define MAX_DICTSTAT 10000 -#define NUM_DEFAULT_BENCHMARK_ALGORITHMS 133 +#define NUM_DEFAULT_BENCHMARK_ALGORITHMS 134 #define global_free(attr) \ { \ @@ -298,7 +298,8 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] = 6600, 8200, 11300, - 12700 + 12700, + 13400 }; /** @@ -742,6 +743,7 @@ const char *USAGE_BIG[] = " 8200 = 1Password, cloudkeychain", " 11300 = Bitcoin/Litecoin wallet.dat", " 12700 = Blockchain, My Wallet", + " 13400 = Keepass 1 (AES/Twofish) and Keepass 2 (AES)" "", NULL }; @@ -5978,7 +5980,7 @@ int main (int argc, char **argv) return (-1); } - if (hash_mode_chgd && hash_mode > 13300) // just added to remove compiler warnings for hash_mode_chgd + if (hash_mode_chgd && hash_mode > 13400) // just added to remove compiler warnings for hash_mode_chgd { log_error ("ERROR: Invalid hash-type specified"); @@ -10264,6 +10266,21 @@ int main (int argc, char **argv) dgst_pos3 = 2; break; + case 13400: hash_type = HASH_TYPE_AES; + salt_type = SALT_TYPE_EMBEDDED; + attack_exec = ATTACK_EXEC_OUTSIDE_KERNEL; + opts_type = OPTS_TYPE_PT_GENERATE_LE; + kern_type = KERN_TYPE_KEEPASS; + dgst_size = DGST_SIZE_4_4; + parse_func = keepass_parse_hash; + sort_by_digest = sort_by_digest_4_4; + opti_type = OPTI_TYPE_ZERO_BYTE; + dgst_pos0 = 0; + dgst_pos1 = 1; + dgst_pos2 = 2; + dgst_pos3 = 3; + break; + default: usage_mini_print (PROGNAME); return (-1); } @@ -10368,6 +10385,7 @@ int main (int argc, char **argv) case 12100: esalt_size = sizeof (pbkdf2_sha512_t); break; case 13000: esalt_size = sizeof (rar5_t); break; case 13100: esalt_size = sizeof (krb5tgs_t); break; + case 13400: esalt_size = sizeof (keepass_t); break; } data.esalt_size = esalt_size; @@ -11454,6 +11472,7 @@ int main (int argc, char **argv) ((seven_zip_t *) hashes_buf[0].esalt)->data_len = 112; ((seven_zip_t *) hashes_buf[0].esalt)->unpack_size = 112; break; + case 13400: ((keepass_t *) hashes_buf[0].esalt)->version = 2; } } @@ -11627,6 +11646,8 @@ int main (int argc, char **argv) break; case 13200: hashes_buf[0].salt->salt_iter = ROUNDS_AXCRYPT; break; + case 13400: hashes_buf[0].salt->salt_iter = ROUNDS_KEEPASS; + break; } hashes_cnt = 1; @@ -13733,6 +13754,7 @@ int main (int argc, char **argv) case 12900: size_tmps = kernel_power_max * sizeof (pbkdf2_sha256_tmp_t); break; case 13000: size_tmps = kernel_power_max * sizeof (pbkdf2_sha256_tmp_t); break; case 13200: size_tmps = kernel_power_max * sizeof (axcrypt_tmp_t); break; + case 13400: size_tmps = kernel_power_max * sizeof (keepass_tmp_t); break; }; // size_hooks