From e56c5035aad1c77120cb928e6b54b35ac7387f5f Mon Sep 17 00:00:00 2001 From: jsteube Date: Wed, 19 Dec 2018 09:51:25 +0100 Subject: [PATCH] Get rid of hash_mode in wordlist.c --- include/types.h | 61 +++++++++++++++++++++-------------------- src/interface_migrate.c | 1 + src/wordlist.c | 2 +- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/include/types.h b/include/types.h index 8473d28d3..31de34ff0 100644 --- a/include/types.h +++ b/include/types.h @@ -382,36 +382,37 @@ typedef enum opts_type OPTS_TYPE_PT_NEVERCRACK = (1ULL << 11), // if we want all possible results OPTS_TYPE_PT_BITSLICE = (1ULL << 12), OPTS_TYPE_PT_ALWAYS_ASCII = (1ULL << 13), - OPTS_TYPE_ST_UTF16LE = (1ULL << 14), - OPTS_TYPE_ST_UTF16BE = (1ULL << 15), - OPTS_TYPE_ST_UPPER = (1ULL << 16), - OPTS_TYPE_ST_LOWER = (1ULL << 17), - OPTS_TYPE_ST_ADD01 = (1ULL << 18), - OPTS_TYPE_ST_ADD02 = (1ULL << 19), - OPTS_TYPE_ST_ADD80 = (1ULL << 20), - OPTS_TYPE_ST_ADDBITS14 = (1ULL << 21), - OPTS_TYPE_ST_ADDBITS15 = (1ULL << 22), - OPTS_TYPE_ST_GENERATE_LE = (1ULL << 23), - OPTS_TYPE_ST_GENERATE_BE = (1ULL << 24), - OPTS_TYPE_ST_HEX = (1ULL << 25), - OPTS_TYPE_ST_BASE64 = (1ULL << 26), - OPTS_TYPE_ST_HASH_MD5 = (1ULL << 27), - OPTS_TYPE_HASH_COPY = (1ULL << 28), - OPTS_TYPE_HASH_SPLIT = (1ULL << 29), - OPTS_TYPE_HOOK12 = (1ULL << 30), - OPTS_TYPE_HOOK23 = (1ULL << 31), - OPTS_TYPE_INIT2 = (1ULL << 32), - OPTS_TYPE_LOOP2 = (1ULL << 33), - OPTS_TYPE_AUX1 = (1ULL << 34), - OPTS_TYPE_AUX2 = (1ULL << 35), - OPTS_TYPE_AUX3 = (1ULL << 36), - OPTS_TYPE_AUX4 = (1ULL << 37), - OPTS_TYPE_BINARY_HASHFILE = (1ULL << 38), - OPTS_TYPE_PREFERED_THREAD = (1ULL << 39), // some algorithms (complicated ones with many branches) benefit from this - OPTS_TYPE_PT_ADD06 = (1ULL << 40), - OPTS_TYPE_KEYBOARD_MAPPING = (1ULL << 41), - OPTS_TYPE_STATE_BUFFER_LE = (1ULL << 42), - OPTS_TYPE_STATE_BUFFER_BE = (1ULL << 43), + OPTS_TYPE_PT_LM = (1ULL << 14), // special handling: all lower, 7 max, ... + OPTS_TYPE_ST_UTF16LE = (1ULL << 15), + OPTS_TYPE_ST_UTF16BE = (1ULL << 16), + OPTS_TYPE_ST_UPPER = (1ULL << 17), + OPTS_TYPE_ST_LOWER = (1ULL << 18), + OPTS_TYPE_ST_ADD01 = (1ULL << 19), + OPTS_TYPE_ST_ADD02 = (1ULL << 20), + OPTS_TYPE_ST_ADD80 = (1ULL << 21), + OPTS_TYPE_ST_ADDBITS14 = (1ULL << 22), + OPTS_TYPE_ST_ADDBITS15 = (1ULL << 23), + OPTS_TYPE_ST_GENERATE_LE = (1ULL << 24), + OPTS_TYPE_ST_GENERATE_BE = (1ULL << 25), + OPTS_TYPE_ST_HEX = (1ULL << 26), + OPTS_TYPE_ST_BASE64 = (1ULL << 27), + OPTS_TYPE_ST_HASH_MD5 = (1ULL << 28), + OPTS_TYPE_HASH_COPY = (1ULL << 29), + OPTS_TYPE_HASH_SPLIT = (1ULL << 30), + OPTS_TYPE_HOOK12 = (1ULL << 31), + OPTS_TYPE_HOOK23 = (1ULL << 32), + OPTS_TYPE_INIT2 = (1ULL << 33), + OPTS_TYPE_LOOP2 = (1ULL << 34), + OPTS_TYPE_AUX1 = (1ULL << 35), + OPTS_TYPE_AUX2 = (1ULL << 36), + OPTS_TYPE_AUX3 = (1ULL << 37), + OPTS_TYPE_AUX4 = (1ULL << 38), + OPTS_TYPE_BINARY_HASHFILE = (1ULL << 39), + OPTS_TYPE_PREFERED_THREAD = (1ULL << 40), // some algorithms (complicated ones with many branches) benefit from this + OPTS_TYPE_PT_ADD06 = (1ULL << 41), + OPTS_TYPE_KEYBOARD_MAPPING = (1ULL << 42), + OPTS_TYPE_STATE_BUFFER_LE = (1ULL << 43), + OPTS_TYPE_STATE_BUFFER_BE = (1ULL << 44), } opts_type_t; diff --git a/src/interface_migrate.c b/src/interface_migrate.c index 182828e59..06e9d0133 100644 --- a/src/interface_migrate.c +++ b/src/interface_migrate.c @@ -24061,6 +24061,7 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) | OPTS_TYPE_PT_UPPER | OPTS_TYPE_PT_BITSLICE | OPTS_TYPE_PT_ALWAYS_ASCII + | OPTS_TYPE_PT_LM | OPTS_TYPE_HASH_SPLIT; hashconfig->kern_type = KERN_TYPE_LM; hashconfig->dgst_size = DGST_SIZE_4_4; // originally DGST_SIZE_4_2 diff --git a/src/wordlist.c b/src/wordlist.c index 386c9819d..e605dc7e4 100644 --- a/src/wordlist.c +++ b/src/wordlist.c @@ -584,7 +584,7 @@ int wl_data_init (hashcat_ctx_t *hashcat_ctx) wl_data->func = get_next_word_uc; } - if (hashconfig->hash_mode == 3000) // yes that's fine that way + if (hashconfig->opts_type & OPTS_TYPE_PT_LM) { wl_data->func = get_next_word_lm; }