diff --git a/docs/changes.txt b/docs/changes.txt index cc8263035..fb015b2e6 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -4,8 +4,13 @@ ## Bugs ## -- Fixed out-of-boundary reads in attack mode 9 that were caused by a missing work item limit in the refactored autotune engine +- Fixed out-of-boundary reads in attack-mode 9 that were caused by a missing work item limit in the refactored autotune engine +## +## Technical +## + +- Disabled checking of the minimum and maximum length of the password candidate in attack-mode 9 because they are incompatible * changes v6.2.3 -> v6.2.4 diff --git a/src/interface.c b/src/interface.c index 49fe712e7..d81b4ec97 100644 --- a/src/interface.c +++ b/src/interface.c @@ -438,8 +438,16 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->kernel_threads_min = default_kernel_threads_min (hashconfig, user_options, user_options_extra); hashconfig->kernel_threads_max = default_kernel_threads_max (hashconfig, user_options, user_options_extra); - if (module_ctx->module_pw_max != MODULE_DEFAULT) hashconfig->pw_max = module_ctx->module_pw_max (hashconfig, user_options, user_options_extra); - if (module_ctx->module_pw_min != MODULE_DEFAULT) hashconfig->pw_min = module_ctx->module_pw_min (hashconfig, user_options, user_options_extra); + if (user_options->attack_mode == ATTACK_MODE_ASSOCIATION) + { + // we can't reject password candidates based on plugin specific password length boundaries, because they are not checked inside count_words() + } + else + { + if (module_ctx->module_pw_max != MODULE_DEFAULT) hashconfig->pw_max = module_ctx->module_pw_max (hashconfig, user_options, user_options_extra); + if (module_ctx->module_pw_min != MODULE_DEFAULT) hashconfig->pw_min = module_ctx->module_pw_min (hashconfig, user_options, user_options_extra); + } + if (module_ctx->module_salt_max != MODULE_DEFAULT) hashconfig->salt_max = module_ctx->module_salt_max (hashconfig, user_options, user_options_extra); if (module_ctx->module_salt_min != MODULE_DEFAULT) hashconfig->salt_min = module_ctx->module_salt_min (hashconfig, user_options, user_options_extra); if (module_ctx->module_kernel_accel_min != MODULE_DEFAULT) hashconfig->kernel_accel_min = module_ctx->module_kernel_accel_min (hashconfig, user_options, user_options_extra); diff --git a/src/straight.c b/src/straight.c index 46c0fe685..0372b1063 100644 --- a/src/straight.c +++ b/src/straight.c @@ -236,7 +236,7 @@ int straight_ctx_update_loop (hashcat_ctx_t *hashcat_ctx) if ((status_ctx->words_cnt / straight_ctx->kernel_rules_cnt) != hashes->salts_cnt) { - event_log_error (hashcat_ctx, "Wordlist %s word count is not in sync with salt count", straight_ctx->dict); + event_log_error (hashcat_ctx, "Number of words in wordlist '%s' is not in sync with number of unique salts", straight_ctx->dict); event_log_error (hashcat_ctx, "Words: %" PRIu64 ", salts: %d", status_ctx->words_cnt / straight_ctx->kernel_rules_cnt, hashes->salts_cnt); return -1;