From c3630b2f1835d8fb6225becad021a9b8db4acd8b Mon Sep 17 00:00:00 2001 From: jsteube Date: Mon, 14 Jan 2019 19:02:09 +0100 Subject: [PATCH] Allow modules to change value from user_options->hash_mode to something different in hashconfig->hash_mode. This will be required for modes that can automatically select the right hash_mode for the user for instance LUKS --- src/brain.c | 4 ++-- src/hashcat.c | 2 +- src/interface_migrate.c | 40 ++++++++++++++++++++-------------------- src/opencl.c | 6 +++--- src/usage.c | 2 +- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/brain.c b/src/brain.c index 7903ec798..4f54a8f4c 100644 --- a/src/brain.c +++ b/src/brain.c @@ -57,7 +57,7 @@ u32 brain_compute_session (hashcat_ctx_t *hashcat_ctx) if (user_options->brain_session != 0) return user_options->brain_session; - const u64 seed = (const u64) user_options->hash_mode; + const u64 seed = (const u64) hashconfig->hash_mode; XXH64_state_t *state = XXH64_createState (); @@ -156,7 +156,7 @@ u32 brain_compute_attack (hashcat_ctx_t *hashcat_ctx) XXH64_reset (state, user_options->brain_session); - const int hash_mode = user_options->hash_mode; + const int hash_mode = hashconfig->hash_mode; const int attack_mode = user_options->attack_mode; XXH64_update (state, &hash_mode, sizeof (hash_mode)); diff --git a/src/hashcat.c b/src/hashcat.c index 28d723542..4772362f5 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -463,7 +463,7 @@ static int outer_loop (hashcat_ctx_t *hashcat_ctx) if (rc_hashconfig == -1) { - event_log_error (hashcat_ctx, "Unknown hash-type '%u' selected.", user_options->hash_mode); + event_log_error (hashcat_ctx, "Invalid hash-mode '%u' selected.", user_options->hash_mode); return -1; } diff --git a/src/interface_migrate.c b/src/interface_migrate.c index 85498120d..8d4ecf6e2 100644 --- a/src/interface_migrate.c +++ b/src/interface_migrate.c @@ -27974,17 +27974,17 @@ bool default_hlfmt_disable (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_U u32 default_forced_outfile_format { - if (user_options->hash_mode == 9710) + if (hashconfig->hash_mode == 9710) { user_options->outfile_format = 5; } - if (user_options->hash_mode == 9810) + if (hashconfig->hash_mode == 9810) { user_options->outfile_format = 5; } - if (user_options->hash_mode == 10410) + if (hashconfig->hash_mode == 10410) { user_options->outfile_format = 5; } @@ -28166,11 +28166,11 @@ bool outfile_check_disable { - if ((user_options->hash_mode == 5200) || - ((user_options->hash_mode >= 6200) && (user_options->hash_mode <= 6299)) || - (user_options->hash_mode == 9000) || - ((user_options->hash_mode >= 13700) && (user_options->hash_mode <= 13799)) || - (user_options->hash_mode == 14600)) return 0; + if ((hashconfig->hash_mode == 5200) || + ((hashconfig->hash_mode >= 6200) && (hashconfig->hash_mode <= 6299)) || + (hashconfig->hash_mode == 9000) || + ((hashconfig->hash_mode >= 13700) && (hashconfig->hash_mode <= 13799)) || + (hashconfig->hash_mode == 14600)) return 0; } bool potfile_disable @@ -28319,7 +28319,7 @@ bool potfile_keep_all_hashes { // keep all hashes if -m 3000 was combined with --left or --show - if (user_options->hash_mode == 3000) + if (hashconfig->hash_mode == 3000) { if ((user_options->show == true) || (user_options->left == true)) { @@ -28708,16 +28708,16 @@ bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE * too high kernel runtime, even on -u1 -n1, therefore likely to run into trap 6 */ - if ((user_options->hash_mode == 1500) - || (user_options->hash_mode == 3000) - || (user_options->hash_mode == 3200) - || (user_options->hash_mode == 8900) - || (user_options->hash_mode == 9300) - || (user_options->hash_mode == 9800) - || (user_options->hash_mode == 12500) - || (user_options->hash_mode == 14000) - || (user_options->hash_mode == 14100) - || (user_options->hash_mode == 15700)) + if ((hashconfig->hash_mode == 1500) + || (hashconfig->hash_mode == 3000) + || (hashconfig->hash_mode == 3200) + || (hashconfig->hash_mode == 8900) + || (hashconfig->hash_mode == 9300) + || (hashconfig->hash_mode == 9800) + || (hashconfig->hash_mode == 12500) + || (hashconfig->hash_mode == 14000) + || (hashconfig->hash_mode == 14100) + || (hashconfig->hash_mode == 15700)) { return true; } @@ -29006,7 +29006,7 @@ int module_hash_binary_parse () { memset (hashes_buf[hashes_cnt].esalt, 0, hashconfig->esalt_size); - if ((user_options->hash_mode == 2500) || (user_options->hash_mode == 2501)) + if ((hashconfig->hash_mode == 2500) || (hashconfig->hash_mode == 2501)) { wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) hashes_buf[hashes_cnt].esalt; diff --git a/src/opencl.c b/src/opencl.c index 0cad7a520..c6214de87 100644 --- a/src/opencl.c +++ b/src/opencl.c @@ -4369,7 +4369,7 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) if ((unstable_warning == true) && (user_options->force == false)) { - event_log_warning (hashcat_ctx, "* Device #%u: Skipping unstable hash-mode %u for this device.", device_id + 1, user_options->hash_mode); + event_log_warning (hashcat_ctx, "* Device #%u: Skipping unstable hash-mode %u for this device.", device_id + 1, hashconfig->hash_mode); event_log_warning (hashcat_ctx, " You can use --force to override, but do not report related errors."); device_param->skipped = true; @@ -4852,10 +4852,10 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) char *device_name_chksum_amp_mp = (char *) hcmalloc (HCBUFSIZ_TINY); #if defined (__x86_64__) - const size_t dnclen = snprintf (device_name_chksum, HCBUFSIZ_TINY, "%d-%u-%u-%s-%s-%s-%d-%u-%u", 64, device_param->platform_vendor_id, device_param->vector_width, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime, user_options->opencl_vector_width, user_options->hash_mode); + const size_t dnclen = snprintf (device_name_chksum, HCBUFSIZ_TINY, "%d-%u-%u-%s-%s-%s-%d-%u-%u", 64, device_param->platform_vendor_id, device_param->vector_width, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime, user_options->opencl_vector_width, hashconfig->hash_mode); const size_t dnclen_amp_mp = snprintf (device_name_chksum_amp_mp, HCBUFSIZ_TINY, "%d-%u-%s-%s-%s-%d", 64, device_param->platform_vendor_id, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime); #else - const size_t dnclen = snprintf (device_name_chksum, HCBUFSIZ_TINY, "%d-%u-%u-%s-%s-%s-%d-%u-%u", 32, device_param->platform_vendor_id, device_param->vector_width, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime, user_options->opencl_vector_width, user_options->hash_mode); + const size_t dnclen = snprintf (device_name_chksum, HCBUFSIZ_TINY, "%d-%u-%u-%s-%s-%s-%d-%u-%u", 32, device_param->platform_vendor_id, device_param->vector_width, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime, user_options->opencl_vector_width, hashconfig->hash_modes); const size_t dnclen_amp_mp = snprintf (device_name_chksum_amp_mp, HCBUFSIZ_TINY, "%d-%u-%s-%s-%s-%d", 32, device_param->platform_vendor_id, device_param->device_name, device_param->device_version, device_param->driver_version, opencl_ctx->comptime); #endif diff --git a/src/usage.c b/src/usage.c index 128b842bf..031f07799 100644 --- a/src/usage.c +++ b/src/usage.c @@ -289,7 +289,7 @@ void usage_big_print (hashcat_ctx_t *hashcat_ctx) if (rc == 0) { - usage_sort_buf[usage_sort_cnt].hash_mode = i; + usage_sort_buf[usage_sort_cnt].hash_mode = hashconfig->hash_mode; usage_sort_buf[usage_sort_cnt].hash_name = hcstrdup (hashconfig->hash_name); usage_sort_buf[usage_sort_cnt].hash_category = hashconfig->hash_category;