From ca0bc3fc19e2d87cb841c3b4d5632fefb2645ecb Mon Sep 17 00:00:00 2001 From: unix-ninja Date: Thu, 10 Nov 2016 13:25:04 -0500 Subject: [PATCH] Fix cp_sys type def and add ?H charset --- include/types.h | 2 +- src/mpsp.c | 11 +++++++++++ src/usage.c | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/types.h b/include/types.h index 39abd68b5..598469fde 100644 --- a/include/types.h +++ b/include/types.h @@ -1518,7 +1518,7 @@ typedef struct mask_ctx { bool enabled; - cs_t mp_sys[6]; + cs_t mp_sys[8]; cs_t mp_usr[4]; u64 bfs_cnt; diff --git a/src/mpsp.c b/src/mpsp.c index 05586397d..50f98db92 100644 --- a/src/mpsp.c +++ b/src/mpsp.c @@ -250,6 +250,8 @@ static int mp_expand (hashcat_ctx_t *hashcat_ctx, char *in_buf, size_t in_len, c break; case 'h': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[6].cs_buf, mp_sys[6].cs_len, mp_usr, mp_usr_offset); break; + case 'H': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[7].cs_buf, mp_sys[7].cs_len, mp_usr, mp_usr_offset); + break; case '1': if (mp_usr[0].cs_len == 0) { event_log_error (hashcat_ctx, "Custom-charset 1 is undefined"); return -1; } rc = mp_add_cs_buf (hashcat_ctx, mp_usr[0].cs_buf, mp_usr[0].cs_len, mp_usr, mp_usr_offset); break; @@ -354,6 +356,8 @@ static int mp_gen_css (hashcat_ctx_t *hashcat_ctx, char *mask_buf, size_t mask_l break; case 'h': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[6].cs_buf, mp_sys[6].cs_len, css_buf, css_pos); break; + case 'H': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[7].cs_buf, mp_sys[7].cs_len, css_buf, css_pos); + break; case '1': if (mp_usr[0].cs_len == 0) { event_log_error (hashcat_ctx, "Custom-charset 1 is undefined"); return -1; } rc = mp_add_cs_buf (hashcat_ctx, mp_usr[0].cs_buf, mp_usr[0].cs_len, css_buf, css_pos); break; @@ -522,6 +526,13 @@ static void mp_setup_sys (cs_t *mp_sys) for (chr = 'a'; chr <= 'f'; chr++) { donec[chr] = 1; mp_sys[6].cs_buf[pos++] = chr; mp_sys[6].cs_len = pos; } + + for (pos = 0, chr = '0'; chr <= '9'; chr++) { donec[chr] = 1; + mp_sys[7].cs_buf[pos++] = chr; + mp_sys[7].cs_len = pos; } + for (chr = 'A'; chr <= 'F'; chr++) { donec[chr] = 1; + mp_sys[7].cs_buf[pos++] = chr; + mp_sys[7].cs_len = pos; } } static int mp_setup_usr (hashcat_ctx_t *hashcat_ctx, cs_t *mp_sys, cs_t *mp_usr, char *buf, u32 index) diff --git a/src/usage.c b/src/usage.c index 0b21f6d00..7f14edda7 100644 --- a/src/usage.c +++ b/src/usage.c @@ -375,6 +375,7 @@ static const char *USAGE_BIG[] = " u | ABCDEFGHIJKLMNOPQRSTUVWXYZ", " d | 0123456789", " h | 0123456789abcdef", + " H | 0123456789ABCDEF", " s | !\"#$%%&'()*+,-./:;<=>?@[\\]^_`{|}~", " a | ?l?u?d?s", " b | 0x00 - 0xff",