From 5f11231238745b9b22c91a3b17f367e4a0ceede5 Mon Sep 17 00:00:00 2001 From: unix-ninja Date: Wed, 9 Nov 2016 23:37:55 -0500 Subject: [PATCH 1/2] Add hex charset (?h) to mpsp --- src/mpsp.c | 11 +++++++++++ src/usage.c | 1 + 2 files changed, 12 insertions(+) diff --git a/src/mpsp.c b/src/mpsp.c index 29ce772c7..05586397d 100644 --- a/src/mpsp.c +++ b/src/mpsp.c @@ -248,6 +248,8 @@ static int mp_expand (hashcat_ctx_t *hashcat_ctx, char *in_buf, size_t in_len, c break; case 'b': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[5].cs_buf, mp_sys[5].cs_len, mp_usr, mp_usr_offset); 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 '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; @@ -350,6 +352,8 @@ static int mp_gen_css (hashcat_ctx_t *hashcat_ctx, char *mask_buf, size_t mask_l break; case 'b': rc = mp_add_cs_buf (hashcat_ctx, mp_sys[5].cs_buf, mp_sys[5].cs_len, css_buf, css_pos); 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 '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; @@ -511,6 +515,13 @@ static void mp_setup_sys (cs_t *mp_sys) for (pos = 0, chr = 0x00; chr <= 0xff; chr++) { mp_sys[5].cs_buf[pos++] = chr; mp_sys[5].cs_len = pos; } + + for (pos = 0, chr = '0'; chr <= '9'; chr++) { donec[chr] = 1; + mp_sys[6].cs_buf[pos++] = chr; + mp_sys[6].cs_len = pos; } + for (chr = 'a'; chr <= 'f'; chr++) { donec[chr] = 1; + mp_sys[6].cs_buf[pos++] = chr; + mp_sys[6].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 2c7cf4f82..0b21f6d00 100644 --- a/src/usage.c +++ b/src/usage.c @@ -374,6 +374,7 @@ static const char *USAGE_BIG[] = " l | abcdefghijklmnopqrstuvwxyz", " u | ABCDEFGHIJKLMNOPQRSTUVWXYZ", " d | 0123456789", + " h | 0123456789abcdef", " s | !\"#$%%&'()*+,-./:;<=>?@[\\]^_`{|}~", " a | ?l?u?d?s", " b | 0x00 - 0xff", From ca0bc3fc19e2d87cb841c3b4d5632fefb2645ecb Mon Sep 17 00:00:00 2001 From: unix-ninja Date: Thu, 10 Nov 2016 13:25:04 -0500 Subject: [PATCH 2/2] 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",