diff --git a/include/interface.h b/include/interface.h index c14cb7bb0..0f80735a1 100644 --- a/include/interface.h +++ b/include/interface.h @@ -1732,6 +1732,9 @@ u64 hashconfig_hook_size (MAYBE_UNUSED const hashconfig_t * u32 hashconfig_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); u64 hashconfig_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); u32 hashconfig_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 hashconfig_benchmark_salt_iter (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *hashconfig_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *hashconfig_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); void decoder_apply_optimizer (const hashconfig_t *hashconfig, void *data); void decoder_apply_options (const hashconfig_t *hashconfig, void *data); diff --git a/include/modules.h b/include/modules.h index e1f4f0a97..9ef4d2195 100644 --- a/include/modules.h +++ b/include/modules.h @@ -2,34 +2,35 @@ #ifndef _MODULES_H #define _MODULES_H -u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -const char *module_benchmark_mask (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_hash_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_hook_salt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_hook_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_salt_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_salt_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_pw_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *module_benchmark_mask (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_benchmark_salt_iter (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_dgst_pos0 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_dgst_pos1 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_dgst_pos2 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_dgst_pos3 (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_hash_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_hook_salt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_hook_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_salt_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_salt_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_pw_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); +u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra); -int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, const char *line_buf, MAYBE_UNUSED const int line_len); -int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, char *line_buf, MAYBE_UNUSED const int line_size); +void module_register (module_ctx_t *module_ctx); -void module_register (module_ctx_t *module_ctx); +int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, const char *line_buf, MAYBE_UNUSED const int line_len); +int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, char *line_buf, MAYBE_UNUSED const int line_size); #endif // _MODULES_H diff --git a/include/types.h b/include/types.h index da18ae94c..756986573 100644 --- a/include/types.h +++ b/include/types.h @@ -932,6 +932,7 @@ struct hashconfig const char *benchmark_mask; u32 benchmark_salt_len; + u32 benchmark_salt_iter; }; typedef struct hashconfig hashconfig_t; @@ -2206,6 +2207,7 @@ typedef struct module_ctx u32 (*module_attack_exec) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); const char *(*module_benchmark_mask) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); u32 (*module_benchmark_salt_len) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); + u32 (*module_benchmark_salt_iter) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); u32 (*module_dgst_pos0) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); u32 (*module_dgst_pos1) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); u32 (*module_dgst_pos2) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *); diff --git a/modules/m01000.c b/modules/m01000.c index 7639c06c8..32fa58bd9 100644 --- a/modules/m01000.c +++ b/modules/m01000.c @@ -20,49 +20,36 @@ static const u32 DGST_SIZE = DGST_SIZE_4_4; static const char *HASH_NAME = "NTLM"; static const u32 HASH_TYPE = HASH_TYPE_MD4; static const u32 KERN_TYPE = 1000; -static const u32 OPTI_TYPE = OPTI_TYPE_ZERO_BYTE - | OPTI_TYPE_PRECOMPUTE_INIT - | OPTI_TYPE_PRECOMPUTE_MERKLE - | OPTI_TYPE_MEET_IN_MIDDLE - | OPTI_TYPE_EARLY_SKIP - | OPTI_TYPE_NOT_ITERATED - | OPTI_TYPE_NOT_SALTED - | OPTI_TYPE_RAW_HASH; -static const u32 OPTS_TYPE = OPTS_TYPE_PT_GENERATE_LE - | OPTS_TYPE_PT_ADD80 - | OPTS_TYPE_PT_ADDBITS14 - | OPTS_TYPE_PT_UTF16LE; -static const char *ST_HASH = "b4b9b02e6f09a9bd760f388b67351e2b"; -static const char *ST_PASS = "hashcat"; void module_register (module_ctx_t *module_ctx) { - module_ctx->module_attack_exec = module_attack_exec; - module_ctx->module_benchmark_mask = module_benchmark_mask; - module_ctx->module_benchmark_salt_len = module_benchmark_salt_len; - module_ctx->module_dgst_pos0 = module_dgst_pos0; - module_ctx->module_dgst_pos1 = module_dgst_pos1; - module_ctx->module_dgst_pos2 = module_dgst_pos2; - module_ctx->module_dgst_pos3 = module_dgst_pos3; - module_ctx->module_dgst_size = module_dgst_size; - module_ctx->module_esalt_size = module_esalt_size; - module_ctx->module_hash_decode = module_hash_decode; - module_ctx->module_hash_encode = module_hash_encode; - module_ctx->module_hash_name = module_hash_name; - module_ctx->module_hash_type = module_hash_type; - module_ctx->module_hook_salt_size = module_hook_salt_size; - module_ctx->module_hook_size = module_hook_size; - module_ctx->module_kern_type = module_kern_type; - module_ctx->module_opti_type = module_opti_type; - module_ctx->module_opts_type = module_opts_type; - module_ctx->module_pw_max = module_pw_max; - module_ctx->module_pw_min = module_pw_min; - module_ctx->module_salt_max = module_salt_max; - module_ctx->module_salt_min = module_salt_min; - module_ctx->module_salt_type = module_salt_type; - module_ctx->module_st_hash = module_st_hash; - module_ctx->module_st_pass = module_st_pass; - module_ctx->module_tmp_size = module_tmp_size; + module_ctx->module_attack_exec = module_attack_exec; + module_ctx->module_benchmark_mask = module_benchmark_mask; + module_ctx->module_benchmark_salt_len = module_benchmark_salt_len; + module_ctx->module_benchmark_salt_iter = module_benchmark_salt_iter; + module_ctx->module_dgst_pos0 = module_dgst_pos0; + module_ctx->module_dgst_pos1 = module_dgst_pos1; + module_ctx->module_dgst_pos2 = module_dgst_pos2; + module_ctx->module_dgst_pos3 = module_dgst_pos3; + module_ctx->module_dgst_size = module_dgst_size; + module_ctx->module_esalt_size = module_esalt_size; + module_ctx->module_hash_decode = module_hash_decode; + module_ctx->module_hash_encode = module_hash_encode; + module_ctx->module_hash_name = module_hash_name; + module_ctx->module_hash_type = module_hash_type; + module_ctx->module_hook_salt_size = module_hook_salt_size; + module_ctx->module_hook_size = module_hook_size; + module_ctx->module_kern_type = module_kern_type; + module_ctx->module_opti_type = module_opti_type; + module_ctx->module_opts_type = module_opts_type; + module_ctx->module_pw_max = module_pw_max; + module_ctx->module_pw_min = module_pw_min; + module_ctx->module_salt_max = module_salt_max; + module_ctx->module_salt_min = module_salt_min; + module_ctx->module_salt_type = module_salt_type; + module_ctx->module_st_hash = module_st_hash; + module_ctx->module_st_pass = module_st_pass; + module_ctx->module_tmp_size = module_tmp_size; } u32 module_attack_exec (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ATTACK_EXEC; } @@ -74,21 +61,52 @@ u32 module_dgst_size (MAYBE_UNUSED const hashconfig_t *hashconfig, const char *module_hash_name (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_NAME; } u32 module_hash_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return HASH_TYPE; } u64 module_kern_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return KERN_TYPE; } -const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_HASH; } -const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return ST_PASS; } + + +const char *module_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // return hashconfig_st_hash (hashconfig, user_options, user_options_extra); + + const char *st_hash = "b4b9b02e6f09a9bd760f388b67351e2b"; + + return st_hash; +} + +const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + // return hashconfig_st_pass (hashconfig, user_options, user_options_extra); + + const char *st_pass = "hashcat"; + + return st_pass; +} u32 module_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { - //return hashconfig_opti_type (hashconfig, user_options, user_options_extra); + // return hashconfig_opti_type (hashconfig, user_options, user_options_extra); + + const u32 opti_type = OPTI_TYPE_ZERO_BYTE + | OPTI_TYPE_PRECOMPUTE_INIT + | OPTI_TYPE_PRECOMPUTE_MERKLE + | OPTI_TYPE_MEET_IN_MIDDLE + | OPTI_TYPE_EARLY_SKIP + | OPTI_TYPE_NOT_ITERATED + | OPTI_TYPE_NOT_SALTED + | OPTI_TYPE_RAW_HASH; - return OPTI_TYPE; + return opti_type; } u64 module_opts_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { - //return hashconfig_opts_type (hashconfig, user_options, user_options_extra); + // return hashconfig_opts_type (hashconfig, user_options, user_options_extra); - return OPTS_TYPE; + const u32 opts_type = OPTS_TYPE_PT_GENERATE_LE + | OPTS_TYPE_PT_ADD80 + | OPTS_TYPE_PT_ADDBITS14 + | OPTS_TYPE_PT_UTF16LE; + + return opts_type; } u32 module_salt_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) @@ -126,6 +144,11 @@ u32 module_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYB return hashconfig_benchmark_salt_len (hashconfig, user_options, user_options_extra); } +u32 module_benchmark_salt_iter (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + return hashconfig_benchmark_salt_iter (hashconfig, user_options, user_options_extra); +} + u32 module_salt_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { return hashconfig_salt_min (hashconfig, user_options, user_options_extra); @@ -195,10 +218,14 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE encoder_apply_options (hashconfig, tmp); - u32_to_hex (tmp[0], (u8 *) line_buf + 0); - u32_to_hex (tmp[1], (u8 *) line_buf + 8); - u32_to_hex (tmp[2], (u8 *) line_buf + 16); - u32_to_hex (tmp[3], (u8 *) line_buf + 24); + u8 *out_buf = (u8 *) line_buf; + + u32_to_hex (tmp[0], out_buf + 0); + u32_to_hex (tmp[1], out_buf + 8); + u32_to_hex (tmp[2], out_buf + 16); + u32_to_hex (tmp[3], out_buf + 24); + + const int out_len = 32; - return 32; + return out_len; } diff --git a/src/interface.c b/src/interface.c index 1c0e581e6..4ee8e3943 100644 --- a/src/interface.c +++ b/src/interface.c @@ -23624,30 +23624,31 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) module_register (module_ctx); - hashconfig->attack_exec = module_ctx->module_attack_exec (hashconfig, user_options, user_options_extra); - hashconfig->benchmark_mask = module_ctx->module_benchmark_mask (hashconfig, user_options, user_options_extra); - hashconfig->benchmark_salt_len = module_ctx->module_benchmark_salt_len (hashconfig, user_options, user_options_extra); - hashconfig->dgst_pos0 = module_ctx->module_dgst_pos0 (hashconfig, user_options, user_options_extra); - hashconfig->dgst_pos1 = module_ctx->module_dgst_pos1 (hashconfig, user_options, user_options_extra); - hashconfig->dgst_pos2 = module_ctx->module_dgst_pos2 (hashconfig, user_options, user_options_extra); - hashconfig->dgst_pos3 = module_ctx->module_dgst_pos3 (hashconfig, user_options, user_options_extra); - hashconfig->dgst_size = module_ctx->module_dgst_size (hashconfig, user_options, user_options_extra); - hashconfig->esalt_size = module_ctx->module_esalt_size (hashconfig, user_options, user_options_extra); - hashconfig->hash_name = module_ctx->module_hash_name (hashconfig, user_options, user_options_extra); - hashconfig->hash_type = module_ctx->module_hash_type (hashconfig, user_options, user_options_extra); - hashconfig->hook_salt_size = module_ctx->module_hook_salt_size (hashconfig, user_options, user_options_extra); - hashconfig->hook_size = module_ctx->module_hook_size (hashconfig, user_options, user_options_extra); - hashconfig->kern_type = module_ctx->module_kern_type (hashconfig, user_options, user_options_extra); - hashconfig->opti_type = module_ctx->module_opti_type (hashconfig, user_options, user_options_extra); - hashconfig->opts_type = module_ctx->module_opts_type (hashconfig, user_options, user_options_extra); - hashconfig->pw_max = module_ctx->module_pw_max (hashconfig, user_options, user_options_extra); - hashconfig->pw_min = module_ctx->module_pw_min (hashconfig, user_options, user_options_extra); - hashconfig->salt_max = module_ctx->module_salt_max (hashconfig, user_options, user_options_extra); - hashconfig->salt_min = module_ctx->module_salt_min (hashconfig, user_options, user_options_extra); - hashconfig->salt_type = module_ctx->module_salt_type (hashconfig, user_options, user_options_extra); - hashconfig->st_hash = module_ctx->module_st_hash (hashconfig, user_options, user_options_extra); - hashconfig->st_pass = module_ctx->module_st_pass (hashconfig, user_options, user_options_extra); - hashconfig->tmp_size = module_ctx->module_tmp_size (hashconfig, user_options, user_options_extra); + hashconfig->attack_exec = module_ctx->module_attack_exec (hashconfig, user_options, user_options_extra); + hashconfig->benchmark_mask = module_ctx->module_benchmark_mask (hashconfig, user_options, user_options_extra); + hashconfig->benchmark_salt_len = module_ctx->module_benchmark_salt_len (hashconfig, user_options, user_options_extra); + hashconfig->benchmark_salt_iter = module_ctx->module_benchmark_salt_iter (hashconfig, user_options, user_options_extra); + hashconfig->dgst_pos0 = module_ctx->module_dgst_pos0 (hashconfig, user_options, user_options_extra); + hashconfig->dgst_pos1 = module_ctx->module_dgst_pos1 (hashconfig, user_options, user_options_extra); + hashconfig->dgst_pos2 = module_ctx->module_dgst_pos2 (hashconfig, user_options, user_options_extra); + hashconfig->dgst_pos3 = module_ctx->module_dgst_pos3 (hashconfig, user_options, user_options_extra); + hashconfig->dgst_size = module_ctx->module_dgst_size (hashconfig, user_options, user_options_extra); + hashconfig->esalt_size = module_ctx->module_esalt_size (hashconfig, user_options, user_options_extra); + hashconfig->hash_name = module_ctx->module_hash_name (hashconfig, user_options, user_options_extra); + hashconfig->hash_type = module_ctx->module_hash_type (hashconfig, user_options, user_options_extra); + hashconfig->hook_salt_size = module_ctx->module_hook_salt_size (hashconfig, user_options, user_options_extra); + hashconfig->hook_size = module_ctx->module_hook_size (hashconfig, user_options, user_options_extra); + hashconfig->kern_type = module_ctx->module_kern_type (hashconfig, user_options, user_options_extra); + hashconfig->opti_type = module_ctx->module_opti_type (hashconfig, user_options, user_options_extra); + hashconfig->opts_type = module_ctx->module_opts_type (hashconfig, user_options, user_options_extra); + hashconfig->pw_max = module_ctx->module_pw_max (hashconfig, user_options, user_options_extra); + hashconfig->pw_min = module_ctx->module_pw_min (hashconfig, user_options, user_options_extra); + hashconfig->salt_max = module_ctx->module_salt_max (hashconfig, user_options, user_options_extra); + hashconfig->salt_min = module_ctx->module_salt_min (hashconfig, user_options, user_options_extra); + hashconfig->salt_type = module_ctx->module_salt_type (hashconfig, user_options, user_options_extra); + hashconfig->st_hash = module_ctx->module_st_hash (hashconfig, user_options, user_options_extra); + hashconfig->st_pass = module_ctx->module_st_pass (hashconfig, user_options, user_options_extra); + hashconfig->tmp_size = module_ctx->module_tmp_size (hashconfig, user_options, user_options_extra); /* switch (hashconfig->hash_mode) @@ -29896,7 +29897,8 @@ void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, vo if (hashconfig->is_salted == true) { - salt->salt_len = hashconfig->benchmark_salt_len; + salt->salt_len = hashconfig->benchmark_salt_len; + salt->salt_iter = hashconfig->benchmark_salt_iter; // special salt handling @@ -30096,6 +30098,7 @@ void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, vo // set default iterations + /* switch (hashconfig->hash_mode) { case 400: salt->salt_iter = ROUNDS_PHPASS; @@ -30310,6 +30313,7 @@ void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, vo case 18600: salt->salt_iter = ROUNDS_OPENOFFICE - 1; break; } + */ } u32 hashconfig_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) @@ -30324,6 +30328,13 @@ u32 hashconfig_benchmark_salt_len (MAYBE_UNUSED const hashconfig_t *hashconfig, return salt_len; } +u32 hashconfig_benchmark_salt_iter (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + const u32 salt_len = 1; + + return salt_len; +} + u32 hashconfig_opti_type (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) { const u32 opti_type = 0; @@ -30410,6 +30421,16 @@ u64 hashconfig_hook_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNU return hook_size; } +const char *hashconfig_st_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + return ""; +} + +const char *hashconfig_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra) +{ + return ""; +} + void decoder_apply_optimizer (const hashconfig_t *hashconfig, void *data) { const u32 hash_type = hashconfig->hash_type;