diff --git a/docs/changes.txt b/docs/changes.txt index 4131e4f05..292be6af6 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -1,5 +1,17 @@ * changes v3.6.0 -> xxx: +## +## Features +## + +- Added self-test functionality for OpenCL kernels on startup + +## +## Bugs +## + +- Fixed a parser error for mode -m 9820 = MS Office <= 2003 $3, SHA1 + RC4, collider #2 + ## ## Improvements ## diff --git a/include/hashes.h b/include/hashes.h index 2c0564aa2..376a89dd3 100644 --- a/include/hashes.h +++ b/include/hashes.h @@ -22,6 +22,8 @@ int hashes_init_stage2 (hashcat_ctx_t *hashcat_ctx); int hashes_init_stage3 (hashcat_ctx_t *hashcat_ctx); int hashes_init_stage4 (hashcat_ctx_t *hashcat_ctx); +int hashes_init_selftest (hashcat_ctx_t *hashcat_ctx); + void hashes_destroy (hashcat_ctx_t *hashcat_ctx); void hashes_logger (hashcat_ctx_t *hashcat_ctx); diff --git a/include/interface.h b/include/interface.h index c7de3ce0d..afa7539ab 100644 --- a/include/interface.h +++ b/include/interface.h @@ -1890,12 +1890,13 @@ void to_hccapx_t (hashcat_ctx_t *hashcat_ctx, hccapx_t *hccapx, const u32 salt_p int ascii_digest (hashcat_ctx_t *hashcat_ctx, char *out_buf, const size_t out_len, const u32 salt_pos, const u32 digest_pos); -int hashconfig_init (hashcat_ctx_t *hashcat_ctx); -void hashconfig_destroy (hashcat_ctx_t *hashcat_ctx); -u32 hashconfig_get_kernel_threads (hashcat_ctx_t *hashcat_ctx, const hc_device_param_t *device_param); -u32 hashconfig_get_kernel_loops (hashcat_ctx_t *hashcat_ctx); -int hashconfig_general_defaults (hashcat_ctx_t *hashcat_ctx); -void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, void *esalt, void *hook_salt); -const char *hashconfig_benchmark_mask (hashcat_ctx_t *hashcat_ctx); +int hashconfig_init (hashcat_ctx_t *hashcat_ctx); +void hashconfig_destroy (hashcat_ctx_t *hashcat_ctx); +u32 hashconfig_forced_kernel_threads (hashcat_ctx_t *hashcat_ctx); +u32 hashconfig_get_kernel_threads (hashcat_ctx_t *hashcat_ctx, const hc_device_param_t *device_param); +u32 hashconfig_get_kernel_loops (hashcat_ctx_t *hashcat_ctx); +int hashconfig_general_defaults (hashcat_ctx_t *hashcat_ctx); +void hashconfig_benchmark_defaults (hashcat_ctx_t *hashcat_ctx, salt_t *salt, void *esalt, void *hook_salt); +const char *hashconfig_benchmark_mask (hashcat_ctx_t *hashcat_ctx); #endif // _INTERFACE_H diff --git a/include/selftest.h b/include/selftest.h new file mode 100644 index 000000000..cea4fce25 --- /dev/null +++ b/include/selftest.h @@ -0,0 +1,11 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#ifndef _SELFTEST_H +#define _SELFTEST_H + +void *thread_selftest (void *p); + +#endif // _SELFTEST_H diff --git a/include/types.h b/include/types.h index 578666dd2..c474b577e 100644 --- a/include/types.h +++ b/include/types.h @@ -129,12 +129,14 @@ typedef enum event_identifier EVENT_POTFILE_NUM_CRACKED = 0x000000b3, EVENT_POTFILE_REMOVE_PARSE_POST = 0x000000b4, EVENT_POTFILE_REMOVE_PARSE_PRE = 0x000000b5, - EVENT_SET_KERNEL_POWER_FINAL = 0x000000c0, - EVENT_WEAK_HASH_POST = 0x000000d0, - EVENT_WEAK_HASH_PRE = 0x000000d1, - EVENT_WEAK_HASH_ALL_CRACKED = 0x000000d2, - EVENT_WORDLIST_CACHE_GENERATE = 0x000000e0, - EVENT_WORDLIST_CACHE_HIT = 0x000000e1, + EVENT_SELFTEST_FINISHED = 0x000000c0, + EVENT_SELFTEST_STARTING = 0x000000c1, + EVENT_SET_KERNEL_POWER_FINAL = 0x000000d0, + EVENT_WEAK_HASH_POST = 0x000000e0, + EVENT_WEAK_HASH_PRE = 0x000000e1, + EVENT_WEAK_HASH_ALL_CRACKED = 0x000000e2, + EVENT_WORDLIST_CACHE_GENERATE = 0x000000f0, + EVENT_WORDLIST_CACHE_HIT = 0x000000f1, // there will be much more event types soon @@ -168,15 +170,16 @@ typedef enum status_rc { STATUS_INIT = 0, STATUS_AUTOTUNE = 1, - STATUS_RUNNING = 2, - STATUS_PAUSED = 3, - STATUS_EXHAUSTED = 4, - STATUS_CRACKED = 5, - STATUS_ABORTED = 6, - STATUS_QUIT = 7, - STATUS_BYPASS = 8, - STATUS_ABORTED_CHECKPOINT = 9, - STATUS_ABORTED_RUNTIME = 10, + STATUS_SELFTEST = 2, + STATUS_RUNNING = 3, + STATUS_PAUSED = 4, + STATUS_EXHAUSTED = 5, + STATUS_CRACKED = 6, + STATUS_ABORTED = 7, + STATUS_QUIT = 8, + STATUS_BYPASS = 9, + STATUS_ABORTED_CHECKPOINT = 10, + STATUS_ABORTED_RUNTIME = 11, } status_rc_t; @@ -790,6 +793,12 @@ typedef struct hashes u8 *out_buf; // allocates [HCBUFSIZ_LARGE]; u8 *tmp_buf; // allocates [HCBUFSIZ_LARGE]; + // selftest buffers + + void *st_digests_buf; + salt_t *st_salts_buf; + void *st_esalts_buf; + } hashes_t; struct hashconfig @@ -819,6 +828,9 @@ struct hashconfig u32 pw_max; int (*parse_func) (u8 *, u32, hash_t *, const struct hashconfig *); + + char *st_hash; + char *st_pass; }; typedef struct hashconfig hashconfig_t; @@ -954,6 +966,9 @@ typedef struct hc_device_param size_t size_shown; size_t size_results; size_t size_plains; + size_t size_st_digests; + size_t size_st_salts; + size_t size_st_esalts; FILE *combs_fp; comb_t *combs_buf; @@ -1054,7 +1069,6 @@ typedef struct hc_device_param cl_mem d_digests_shown; cl_mem d_salt_bufs; cl_mem d_esalt_bufs; - cl_mem d_bcrypt_bufs; cl_mem d_tmps; cl_mem d_hooks; cl_mem d_result; @@ -1064,6 +1078,9 @@ typedef struct hc_device_param cl_mem d_scryptV3_buf; cl_mem d_root_css_buf; cl_mem d_markov_css_buf; + cl_mem d_st_digests_buf; + cl_mem d_st_salts_buf; + cl_mem d_st_esalts_buf; void *kernel_params[PARAMCNT]; void *kernel_params_mp[PARAMCNT]; diff --git a/src/Makefile b/src/Makefile index 2b64c798e..52c413558 100644 --- a/src/Makefile +++ b/src/Makefile @@ -274,7 +274,7 @@ LFLAGS_CROSS_WIN64 += -lpsapi ## Objects ## -OBJS_ALL := affinity autotune benchmark bitmap bitops combinator common convert cpt cpu_aes cpu_crc32 cpu_des cpu_md4 cpu_md5 cpu_sha1 cpu_sha256 debugfile dictstat dispatch dynloader event ext_ADL ext_nvapi ext_nvml ext_OpenCL ext_sysfs ext_xnvctrl ext_lzma lzma_sdk/Alloc lzma_sdk/Lzma2Dec lzma_sdk/LzmaDec filehandling folder hashcat hashes hlfmt hwmon induct interface locking logfile loopback memory monitor mpsp opencl outfile_check outfile pidfile potfile restore rp rp_cpu rp_kernel_on_cpu shared status stdout straight terminal thread timer tuningdb usage user_options weak_hash wordlist +OBJS_ALL := affinity autotune benchmark bitmap bitops combinator common convert cpt cpu_aes cpu_crc32 cpu_des cpu_md4 cpu_md5 cpu_sha1 cpu_sha256 debugfile dictstat dispatch dynloader event ext_ADL ext_nvapi ext_nvml ext_OpenCL ext_sysfs ext_xnvctrl ext_lzma lzma_sdk/Alloc lzma_sdk/Lzma2Dec lzma_sdk/LzmaDec filehandling folder hashcat hashes hlfmt hwmon induct interface locking logfile loopback memory monitor mpsp opencl outfile_check outfile pidfile potfile restore rp rp_cpu rp_kernel_on_cpu selftest shared status stdout straight terminal thread timer tuningdb usage user_options weak_hash wordlist NATIVE_STATIC_OBJS := $(foreach OBJ,$(OBJS_ALL),obj/$(OBJ).NATIVE.STATIC.o) NATIVE_SHARED_OBJS := $(foreach OBJ,$(OBJS_ALL),obj/$(OBJ).NATIVE.SHARED.o) diff --git a/src/bitmap.c b/src/bitmap.c index ab7e7fd2b..5de583830 100644 --- a/src/bitmap.c +++ b/src/bitmap.c @@ -8,6 +8,26 @@ #include "memory.h" #include "bitmap.h" +static void selftest_to_bitmap (const u32 dgst_shifts, char *digests_buf_ptr, const u32 dgst_pos0, const u32 dgst_pos1, const u32 dgst_pos2, const u32 dgst_pos3, const u32 bitmap_mask, u32 *bitmap_a, u32 *bitmap_b, u32 *bitmap_c, u32 *bitmap_d) +{ + u32 *digest_ptr = (u32 *) digests_buf_ptr; + + const u32 val0 = 1u << (digest_ptr[dgst_pos0] & 0x1f); + const u32 val1 = 1u << (digest_ptr[dgst_pos1] & 0x1f); + const u32 val2 = 1u << (digest_ptr[dgst_pos2] & 0x1f); + const u32 val3 = 1u << (digest_ptr[dgst_pos3] & 0x1f); + + const u32 idx0 = (digest_ptr[dgst_pos0] >> dgst_shifts) & bitmap_mask; + const u32 idx1 = (digest_ptr[dgst_pos1] >> dgst_shifts) & bitmap_mask; + const u32 idx2 = (digest_ptr[dgst_pos2] >> dgst_shifts) & bitmap_mask; + const u32 idx3 = (digest_ptr[dgst_pos3] >> dgst_shifts) & bitmap_mask; + + bitmap_a[idx0] |= val0; + bitmap_b[idx1] |= val1; + bitmap_c[idx2] |= val2; + bitmap_d[idx3] |= val3; +} + static u32 generate_bitmaps (const u32 digests_cnt, const u32 dgst_size, const u32 dgst_shifts, char *digests_buf_ptr, const u32 dgst_pos0, const u32 dgst_pos1, const u32 dgst_pos2, const u32 dgst_pos3, const u32 bitmap_mask, const u32 bitmap_size, u32 *bitmap_a, u32 *bitmap_b, u32 *bitmap_c, u32 *bitmap_d, const u64 collisions_max) { u64 collisions = 0; @@ -116,6 +136,12 @@ int bitmap_ctx_init (hashcat_ctx_t *hashcat_ctx) generate_bitmaps (hashes->digests_cnt, hashconfig->dgst_size, bitmap_shift1, (char *) hashes->digests_buf, hashconfig->dgst_pos0, hashconfig->dgst_pos1, hashconfig->dgst_pos2, hashconfig->dgst_pos3, bitmap_mask, bitmap_size, bitmap_s1_a, bitmap_s1_b, bitmap_s1_c, bitmap_s1_d, -1ul); generate_bitmaps (hashes->digests_cnt, hashconfig->dgst_size, bitmap_shift2, (char *) hashes->digests_buf, hashconfig->dgst_pos0, hashconfig->dgst_pos1, hashconfig->dgst_pos2, hashconfig->dgst_pos3, bitmap_mask, bitmap_size, bitmap_s2_a, bitmap_s2_b, bitmap_s2_c, bitmap_s2_d, -1ul); + if (hashconfig->st_hash != NULL) + { + selftest_to_bitmap (bitmap_shift1, (char *) hashes->st_digests_buf, hashconfig->dgst_pos0, hashconfig->dgst_pos1, hashconfig->dgst_pos2, hashconfig->dgst_pos3, bitmap_mask, bitmap_s1_a, bitmap_s1_b, bitmap_s1_c, bitmap_s1_d); + selftest_to_bitmap (bitmap_shift2, (char *) hashes->st_digests_buf, hashconfig->dgst_pos0, hashconfig->dgst_pos1, hashconfig->dgst_pos2, hashconfig->dgst_pos3, bitmap_mask, bitmap_s2_a, bitmap_s2_b, bitmap_s2_c, bitmap_s2_d); + } + bitmap_ctx->bitmap_bits = bitmap_bits; bitmap_ctx->bitmap_nums = bitmap_nums; bitmap_ctx->bitmap_size = bitmap_size; diff --git a/src/hashcat.c b/src/hashcat.c index 700c5a097..457873f96 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -43,6 +43,7 @@ #include "potfile.h" #include "restore.h" #include "rp.h" +#include "selftest.h" #include "status.h" #include "straight.h" #include "tuningdb.h" @@ -159,15 +160,19 @@ static int inner2_loop (hashcat_ctx_t *hashcat_ctx) opencl_ctx_devices_kernel_loops (hashcat_ctx); /** - * create autotune threads + * prepare thread buffers */ - EVENT (EVENT_AUTOTUNE_STARTING); - thread_param_t *threads_param = (thread_param_t *) hccalloc (opencl_ctx->devices_cnt, sizeof (thread_param_t)); hc_thread_t *c_threads = (hc_thread_t *) hccalloc (opencl_ctx->devices_cnt, sizeof (hc_thread_t)); + /** + * create autotune threads + */ + + EVENT (EVENT_AUTOTUNE_STARTING); + status_ctx->devices_status = STATUS_AUTOTUNE; for (u32 device_id = 0; device_id < opencl_ctx->devices_cnt; device_id++) @@ -529,6 +534,14 @@ static int outer_loop (hashcat_ctx_t *hashcat_ctx) if (rc_hashes_init_stage4 == -1) return -1; + /** + * load hashes, selftest + */ + + const int rc_hashes_init_selftest = hashes_init_selftest (hashcat_ctx); + + if (rc_hashes_init_selftest == -1) return -1; + /** * Done loading hashes, log results */ @@ -645,6 +658,38 @@ static int outer_loop (hashcat_ctx_t *hashcat_ctx) EVENT (EVENT_OPENCL_SESSION_POST); + /** + * create self-test threads + */ + + EVENT (EVENT_SELFTEST_STARTING); + + thread_param_t *threads_param = (thread_param_t *) hccalloc (opencl_ctx->devices_cnt, sizeof (thread_param_t)); + + hc_thread_t *selftest_threads = (hc_thread_t *) hccalloc (opencl_ctx->devices_cnt, sizeof (hc_thread_t)); + + status_ctx->devices_status = STATUS_SELFTEST; + + for (u32 device_id = 0; device_id < opencl_ctx->devices_cnt; device_id++) + { + thread_param_t *thread_param = threads_param + device_id; + + thread_param->hashcat_ctx = hashcat_ctx; + thread_param->tid = device_id; + + hc_thread_create (selftest_threads[device_id], thread_selftest, thread_param); + } + + hc_thread_wait (opencl_ctx->devices_cnt, selftest_threads); + + hcfree (threads_param); + + hcfree (selftest_threads); + + status_ctx->devices_status = STATUS_INIT; + + EVENT (EVENT_SELFTEST_FINISHED); + /** * weak hash check is the first to write to potfile, so open it for writing from here */ diff --git a/src/hashes.c b/src/hashes.c index 264d241b0..7638b4433 100644 --- a/src/hashes.c +++ b/src/hashes.c @@ -1515,11 +1515,62 @@ int hashes_init_stage4 (hashcat_ctx_t *hashcat_ctx) return 0; } +int hashes_init_selftest (hashcat_ctx_t *hashcat_ctx) +{ + hashconfig_t *hashconfig = hashcat_ctx->hashconfig; + hashes_t *hashes = hashcat_ctx->hashes; + + if (hashconfig->st_hash == NULL) return 0; + + void *st_digests_buf = NULL; + salt_t *st_salts_buf = NULL; + void *st_esalts_buf = NULL; + + st_digests_buf = (void *) hccalloc (1, hashconfig->dgst_size); + + st_salts_buf = (salt_t *) hccalloc (1, sizeof (salt_t)); + + if (hashconfig->esalt_size) + { + st_esalts_buf = (void *) hccalloc (1, hashconfig->esalt_size); + } + + hash_t hash; + + hash.digest = st_digests_buf; + hash.salt = st_salts_buf; + hash.esalt = st_esalts_buf; + hash.hook_salt = NULL; + hash.cracked = 0; + hash.hash_info = NULL; + hash.pw_buf = NULL; + hash.pw_len = 0; + + const int parser_status = hashconfig->parse_func ((u8 *) hashconfig->st_hash, strlen (hashconfig->st_hash), &hash, hashconfig); + + if (parser_status == PARSER_OK) + { + // nothing to do + } + else + { + event_log_error (hashcat_ctx, "Self-test Hash '%s': %s", hashconfig->st_hash, strparser (parser_status)); + + return -1; + } + + hashes->st_digests_buf = st_digests_buf; + hashes->st_salts_buf = st_salts_buf; + hashes->st_esalts_buf = st_esalts_buf; + + return 0; +} + void hashes_destroy (hashcat_ctx_t *hashcat_ctx) { hashconfig_t *hashconfig = hashcat_ctx->hashconfig; + hashes_t *hashes = hashcat_ctx->hashes; user_options_t *user_options = hashcat_ctx->user_options; - hashes_t *hashes = hashcat_ctx->hashes; hcfree (hashes->digests_buf); hcfree (hashes->digests_shown); @@ -1557,6 +1608,10 @@ void hashes_destroy (hashcat_ctx_t *hashcat_ctx) hcfree (hashes->out_buf); hcfree (hashes->tmp_buf); + hcfree (hashes->st_digests_buf); + hcfree (hashes->st_salts_buf); + hcfree (hashes->st_esalts_buf); + memset (hashes, 0, sizeof (hashes_t)); } diff --git a/src/interface.c b/src/interface.c index 65ece306c..1be51e8a3 100644 --- a/src/interface.c +++ b/src/interface.c @@ -2,6 +2,7 @@ * Author......: See docs/credits.txt * License.....: MIT */ + #include "common.h" #include "types.h" #include "bitops.h" @@ -20,6 +21,224 @@ #include "interface.h" #include "ext_lzma.h" +static char ST_PASS_HASHCAT_PLAIN[] = "hashcat"; +static char ST_PASS_HASHCAT_EXCL[] = "hashcat!"; +static char ST_PASS_HASHCAT_EXCL3[] = "hashcat!!!"; +static char ST_PASS_HASHCAT_ONE[] = "hashcat1"; +static char ST_PASS_HASHCAT_ONET3[] = "hashcat1hashcat1hashcat1"; +static char ST_PASS_BIN_09710[] = "\x91\xb2\xe0\x62\xb9"; +static char ST_PASS_BIN_09810[] = "\xb8\xf6\x36\x19\xca"; +static char ST_PASS_BIN_10410[] = "\x6a\x8a\xed\xcc\xb7"; + +/** + * Missing self-test hashes: + * + * ST_HASH_01500 the self-test can't work because the salt is part of the code at compile-time + * ST_HASH_02500 file-based + * ST_HASH_05200 file-based + * ST_HASH_062xx file-based + * ST_HASH_09000 file-based + * ST_HASH_11600 hooks not working yet + * ST_HASH_137xx file-based + * ST_HASH_14600 file-based + */ + +static char ST_HASH_00000[] = "8743b52063cd84097a65d1633f5c74f5"; +static char ST_HASH_00010[] = "3d83c8e717ff0e7ecfe187f088d69954:343141"; +static char ST_HASH_00011[] = "8368ba576d44779d4ca110c234fbfd32:22868223712338656660744185004422"; +static char ST_HASH_00012[] = "93a8cf6a7d43e3b5bcd2dc6abb3e02c6:27032153220030464358344758762807"; +static char ST_HASH_00020[] = "57ab8499d08c59a7211c77f557bf9425:4247"; +static char ST_HASH_00021[] = "e983672a03adcc9767b24584338eb378:00"; +static char ST_HASH_00022[] = "nKjiFErqK7TPcZdFZsZMNWPtw4Pv8n:26506173"; +static char ST_HASH_00023[] = "d04d74780881019341915c70d914db29:0675841"; +static char ST_HASH_00030[] = "1169500a7dfece72e1f7fc9c9410867a:687430237020"; +static char ST_HASH_00040[] = "23a8a90599fc5d0d15265d4d3b565f6e:58802707"; +static char ST_HASH_00050[] = "e28e4e37e972a945e464b5226053bac0:40"; +static char ST_HASH_00060[] = "7f51edecfa6fb401a0b5e63d33fc8c0e:84143"; +static char ST_HASH_00100[] = "b89eaac7e61417341b710b727768294d0e6a277b"; +static char ST_HASH_00101[] = "{SHA}uJ6qx+YUFzQbcQtyd2gpTQ5qJ3s="; +static char ST_HASH_00110[] = "848952984db93bdd2d0151d4ecca6ea44fcf49e3:30007548152"; +static char ST_HASH_00111[] = "{SSHA}FLzWcQqyle6Mo7NvrwXCMAmRzXQxNjYxMTYzNw=="; +static char ST_HASH_00112[] = "63ec5f6113843f5d229e2d49c068d983a9670d02:57677783202322766743"; +static char ST_HASH_00120[] = "a428863972744b16afef28e0087fc094b44bb7b1:465727565"; +static char ST_HASH_00121[] = "d27c0a627a45db487af161fcc3a4005d88eb8a1f:25551135"; +static char ST_HASH_00122[] = "86586886b8bd3c379d2e176243a7225e6aae969d293fe9a9"; +static char ST_HASH_00124[] = "sha1$fe76b$02d5916550edf7fc8c886f044887f4b1abf9b013"; +static char ST_HASH_00125[] = "83377286015bcebb857b23b94331e2b316b6ecbe9fbf26c4fc"; +static char ST_HASH_00130[] = "0a9e4591f539a77cd3af67bae207d250bc86bac6:23240710432"; +static char ST_HASH_00131[] = "0x0100778883860000000000000000000000000000000000000000eda3604e067a06f2732b05b9cb90b8a710996939"; +static char ST_HASH_00132[] = "0x010045083578bf13a6e30ca29c40e540813772754d54a5ffd325"; +static char ST_HASH_00133[] = "uXmFVrdBvv293L9kDR3VnRmx4ZM="; +static char ST_HASH_00140[] = "03b83421e2aa6d872d1f8dee001dc226ef01722b:818436"; +static char ST_HASH_00141[] = "$episerver$*0*MjEwNA==*ZUgAmuaYTqAvisD0A427FA3oaWU"; +static char ST_HASH_00150[] = "02b256705348a28b1d6c0f063907979f7e0c82f8:10323"; +static char ST_HASH_00160[] = "8d7cb4d4a27a438059bb83a34d1e6cc439669168:2134817"; +static char ST_HASH_00200[] = "7196759210defdc0"; +static char ST_HASH_00300[] = "fcf7c1b8749cf99d88e5f34271d636178fb5d130"; +static char ST_HASH_00400[] = "$P$946647711V1klyitUYhtB8Yw5DMA/w."; +static char ST_HASH_00500[] = "$1$38652870$DUjsu4TTlTsOe/xxZ05uf/"; +static char ST_HASH_00501[] = "3u+UR6n8AgABAAAAHxxdXKmiOmUoqKnZlf8lTOhlPYy93EAkbPfs5+49YLFd/B1+omSKbW7DoqNM40/EeVnwJ8kYoXv9zy9D5C5m5A=="; +static char ST_HASH_00600[] = "$BLAKE2$296c269e70ac5f0095e6fb47693480f0f7b97ccd0307f5c3bfa4df8f5ca5c9308a0e7108e80a0a9c0ebb715e8b7109b072046c6cd5e155b4cfd2f27216283b1e"; +static char ST_HASH_00900[] = "afe04867ec7a3845145579a95f72eca7"; +static char ST_HASH_01000[] = "b4b9b02e6f09a9bd760f388b67351e2b"; +static char ST_HASH_01100[] = "c896b3c6963e03c86ade3a38370bbb09:54161084332"; +static char ST_HASH_01300[] = "e4fa1555ad877bf0ec455483371867200eee89550a93eff2f95a6198"; +static char ST_HASH_01400[] = "127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935"; +static char ST_HASH_01410[] = "5bb7456f43e3610363f68ad6de82b8b96f3fc9ad24e9d1f1f8d8bd89638db7c0:12480864321"; +static char ST_HASH_01411[] = "{SSHA256}L5Wk0zPY2lmoR5pH20zngq37KkxFwgTquEhx95rxfVk3Ng=="; +static char ST_HASH_01420[] = "816d1ded1d621873595048912ea3405d9d42afd3b57665d9f5a2db4d89720854:36176620"; +static char ST_HASH_01421[] = "8fe7ca27a17adc337cd892b1d959b4e487b8f0ef09e32214f44fb1b07e461c532e9ec3"; +static char ST_HASH_01430[] = "b2d0db162e30dfef1bfd606689a3acbc213c47ef3fd11968394191886075249d:32002"; +static char ST_HASH_01440[] = "84ebe1bc3d59919a8c4f9337d66bd163661586c828b24b8067a27a6dc4228c64:05662"; +static char ST_HASH_01441[] = "$episerver$*1*NDg1NTIz*8BFCg/YJBAuZs/wjbH3OWKe69BLr5Lao26ybpnD48Zk"; +static char ST_HASH_01450[] = "b435ffbacea34d5eb0dbc4d69a92f0152f2cf4cd364d34c2ece322ca22d8b334:21217"; +static char ST_HASH_01460[] = "8b9472281c36c3a693703de0e0f1ffab8fc0ecdd3bc5ead04c76dd74ef431e49:70108387805"; +//static char ST_HASH_01500[] = "8133vc.5rieNk"; +static char ST_HASH_01600[] = "$apr1$62722340$zGjeAwVP2KwY6MtumUI1N/"; +static char ST_HASH_01700[] = "82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e29134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f"; +static char ST_HASH_01710[] = "3f749c84d00c6f94a6651b5c195c71dacae08f3cea6fed760232856cef701f7bf60d7f38a587f69f159d4e4cbe00435aeb9c8c0a4927b252d76a744e16e87e91:388026522082"; +static char ST_HASH_01711[] = "{SSHA512}Bz8w5q6qEtB1Nnc8b1jfTvTXVTwohWag33oghQGOtLChnkZTw/cuJaHQlLJEI3AWKZGCRyLA6Phujdxo+is7AjA2MDcyNjY1Mg=="; +static char ST_HASH_01720[] = "efc5dd0e4145970917abdc311e1d4e23ba0afa9426d960cb28569f4d585cb031af5c936f57fbcb0a08368a1b302573cf582100d40bd7c632f3d8aecd1a1a8eb1:812"; +static char ST_HASH_01730[] = "eefb67342d62a5d8ac84e8ae89d0f157f03749bd0427c80637003a4760feefdb36cbe11ba35ab2015b3691e2e83803178c986aa85f29e6f56938b469a31ccd7a:6576666"; +static char ST_HASH_01740[] = "ce77bf8a8ca9b9cf0ed67edde58ed7fafd4542ce1378fc8bd87b05656ebf92e5711517d5930c18de93a71990e77e1037423e5b64c2f293be7d859d7b6921622e:1512373"; +static char ST_HASH_01722[] = "07543781b07e905f6f947db8ae305c248b9e12f509b41097e852e2f450e824790e677ea7397b8a9a552b1c19ecf6a6e1dd3844fa5ee5db23976962859676f7d2fb85ca94"; +static char ST_HASH_01731[] = "0x02003788006711b2e74e7d8cb4be96b1d187c962c5591a02d5a6ae81b3a4a094b26b7877958b26733e45016d929a756ed30d0a5ee65d3ce1970f9b7bf946e705c595f07625b1"; +static char ST_HASH_01750[] = "138c00f17a1a0363f274817c91118f019aff09f937bfdaea844280a0c0e7811267cc4735d967d8640eed1218268c1c4a76fec8f7aa551491b353829f3a654270:885142"; +static char ST_HASH_01760[] = "7d02921299935179d509e6dd4f3d0f2944e3451ea9de3af16baead6a7297e5653577d2473a0fff743d9fe78a89bd49296114319989dc7e7870fc7f62bc96accb:114"; +static char ST_HASH_01800[] = "$6$72820166$U4DVzpcYxgw7MVVDGGvB2/H5lRistD5.Ah4upwENR5UtffLR4X4SxSzfREv8z6wVl0jRFX40/KnYVvK4829kD1"; +static char ST_HASH_02100[] = "$DCC2$10240#6848#e2829c8af2232fa53797e2f0e35e4626"; +static char ST_HASH_02400[] = "dRRVnUmUHXOTt9nk"; +static char ST_HASH_02410[] = "YjDBNr.A0AN7DA8s:4684"; +static char ST_HASH_02600[] = "a936af92b0ae20b1ff6c3347a72e5fbe"; +static char ST_HASH_02611[] = "28f9975808ae2bdc5847b1cda26033ea:308"; +static char ST_HASH_02612[] = "$PHPS$30353031383437363132$f02b0b2f25e5754edb04522c346ba243"; +static char ST_HASH_02711[] = "0844fbb2fdeda31884a7a45ec2010bb6:324410183853308365427804872426"; +static char ST_HASH_02811[] = "022f7e02b3314f7d0968f73c00ba759f:67588"; +static char ST_HASH_03000[] = "299bd128c1101fd6"; +static char ST_HASH_03100[] = "792FCB0AE31D8489:7284616727"; +static char ST_HASH_03200[] = "$2a$05$MBCzKhG1KhezLh.0LRa0Kuw12nLJtpHy6DIaU.JAnqJUDYspHC.Ou"; +static char ST_HASH_03710[] = "a3aa0ae2b4a102a9974cdf40edeabee0:242812778074"; +static char ST_HASH_03711[] = "$B$2152187716$8c8b39c3602b194eeeb6cac78eea2742"; +static char ST_HASH_03800[] = "78274b1105fb8a7c415b43ffe35ec4a9:6"; +static char ST_HASH_03910[] = "d8281daba5da597503d12fe31808b4a7:283053"; +static char ST_HASH_04010[] = "82422514daaa8253be0aa43f3e263af5:7530326651137"; +static char ST_HASH_04110[] = "45b1005214e2d9472a7ad681578b2438:64268771004"; +static char ST_HASH_04300[] = "b8c385461bb9f9d733d3af832cf60b27"; +static char ST_HASH_04400[] = "288496df99b33f8f75a7ce4837d1b480"; +static char ST_HASH_04500[] = "3db9184f5da4e463832b086211af8d2314919951"; +static char ST_HASH_04520[] = "59b80a295392eedb677ca377ad7bf3487928df96:136472340404074825440760227553028141804855170538"; +static char ST_HASH_04521[] = "c18e826af2a78c7b9b7261452613233417e65817:28246535720688452723483475753333"; +static char ST_HASH_04522[] = "9038129c474caa3f0de56f38db84033d0fe1d4b8:365563602032"; +static char ST_HASH_04700[] = "92d85978d884eb1d99a51652b1139c8279fa8663"; +static char ST_HASH_04800[] = "aa4aaa1d52319525023c06a4873f4c51:35343534373533343633383832343736:dc"; +static char ST_HASH_04900[] = "75d280ca9a0c2ee18729603104ead576d9ca6285:347070"; +static char ST_HASH_05000[] = "203f88777f18bb4ee1226627b547808f38d90d3e106262b5de9ca943b57137b6"; +static char ST_HASH_05100[] = "8743b52063cd8409"; +static char ST_HASH_05300[] = "50503326cac6e4bd892b8257805b5a59a285f464ad3f63dc01bd0335f8341ef52e00be0b8cb205422a3788f021e4e6e8ccbe34784bc85abe42f62545bac64888426a2f1264fa28cf384ff00b14cfa5eff562dda4fad2a31fd7a6715218cff959916deed856feea5bee2e773241c5fbebf202958f0ce0c432955e0f1f6d1259da:688a7bfa8d5819630a970ed6d27018021a15fbb3e2fdcc36ce9b563d8ff95f510c4b3236c014d1cde9c2f1a999b121bc3ab1bc8049c8ac1e8c167a84f53c867492723eb01ab4b38074b38f4297d6fea8f44e01ea828fce33c433430938b1551f60673ce8088e7d2f41e3b49315344046fefee1e3860064331417562761db3ba4:c66606d691eaade4:8bdc88a2cdb4a1cf:c3b13137fae9f66684d98709939e5c3454ee31a98c80a1c76427d805b5dea866eff045515e8fb42dd259b9448caba9d937f4b3b75ec1b092a92232b4c8c1e70a60a52076e907f887b731d0f66e19e09b535238169c74c04a4b393f9b815c54eef4558cd8a22c9018bb4f24ee6db0e32979f9a353361cdba948f9027551ee40b1c96ba81c28aa3e1a0fac105dc469efa83f6d3ee281b945c6fa8b4677bac26dda:53f757c5b08afad6:aa02d9289e1702e5d7ed1e4ebf35ab31c2688e00:aab8580015cf545ac0b7291d15a4f2c79e06defd:944a0df3939f3bd281c9d05fbc0e3d30"; +static char ST_HASH_05400[] = "266b43c54636c062b6696b71f24b30999c98bd4c3ba57e2de56a7ae50bb17ebcbca1abcd33e9ad466d4df6e6f2a407600f0c5a983f79d493b0a3694080a81143d4bac7a8b7b008ae5364a04688b3cfae44824885ca96ade1e395936567ecad519b502c3a786c72847f79c67b777feb8ba4f747303eb985709e92b3a5634f6513:60f861c6209c9c996ac0dcb49d6f6809faaaf0e8eb8041fe603a918170a801e94ab8ab10c5906d850f4282c0668029fa69dbc8576f7d86633dc2b21f0d79aa06342b02a4d2732841cd3266b84a7eb49ac489b307ba55562a17741142bac7712025f0a8cad59b11f19d9b756ce998176fd6b063df556957b257b3645549a138c2:f4dd079ed2b60e77:f1f8da1f38f76923:fd862602549f6949b33870f186d96cb8926a19d78442c02af823460740be719eba41a79388aeefb072e1ec7cb46b2f0b72e21fb30bd3a6568d2b041af7f9dc0c9cce27ed577e5aabb9ab6c405f1c4b189adbee8c9fb6abf4788b63a3ae05a02c192187b9d7246efe5e46db9b01bf8f4be05f7599ae52bf137743e41d90dceb85bd6ae07397dcc168bbc904adfebb08e6bc67e653edeee97a7e4ab9dab5e63fec:56e3f0d49ea70514:e754055008febe970053d795d26bfe609f42eda8:0c3283efd6396e7a2ecb008e1933fccb694a4ac0:8f79167724f4bdb2d76ee5d5e502b665e3445ea6"; +static char ST_HASH_05500[] = "::5V4T:ada06359242920a500000000000000000000000000000000:0556d5297b5daa70eaffde82ef99293a3f3bb59b7c9704ea:9c23f6c094853920"; +static char ST_HASH_05600[] = "0UL5G37JOI0SX::6VB1IS0KA74:ebe1afa18b7fbfa6:aab8bf8675658dd2a939458a1077ba08:010100000000000031c8aa092510945398b9f7b7dde1a9fb00000000f7876f2b04b700"; +static char ST_HASH_05700[] = "2btjjy78REtmYkkW0csHUbJZOstRXoWdX1mGrmmfeHI"; +static char ST_HASH_05800[] = "3edde1eb9e6679ccbc1ff3c417e8a475a2d2e279:7724368582277760"; +static char ST_HASH_06000[] = "012cb9b334ec1aeb71a9c8ce85586082467f7eb6"; +static char ST_HASH_06100[] = "7ca8eaaaa15eaa4c038b4c47b9313e92da827c06940e69947f85bc0fbef3eb8fd254da220ad9e208b6b28f6bb9be31dd760f1fdb26112d83f87d96b416a4d258"; +static char ST_HASH_06300[] = "{smd5}17800721$WkGka7tXcrfpUQS6WOQyw/"; +static char ST_HASH_06400[] = "{ssha256}06$2715084824104660$1s/s4RZWEcvZ5VuWPXWGUfwSoG07eVSVce8F6ANJ.g4"; +static char ST_HASH_06500[] = "{ssha512}06$4653718755856803$O04nVHL7iU9Jguy/B3Yow.veBM52irn.038Y/Ln6AMy/BG8wbU6ozSP8/W9KDZPUbhdsbl1lf8px.vKJS1S/.."; +static char ST_HASH_06600[] = "1000:d61a54f1efdfcf57:000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000afdb51c887d14df6200bbde872aabfd9e12a1f163eed40e6b3ec33ba394c47e9"; +static char ST_HASH_06700[] = "{ssha1}06$5586485655847243$V5f1Ff1y4dr7AWeVSSdv6N52..Y"; +static char ST_HASH_06800[] = "82dbb8ccc9c7ead8c38a92a6b5740f94:500:pmix@trash-mail.com"; +static char ST_HASH_06900[] = "df226c2c6dcb1d995c0299a33a084b201544293c31fc3d279530121d36bbcea9"; +static char ST_HASH_07000[] = "AK1FCIhM0IUIQVFJgcDFwLCMi7GppdwtRzMyDpFOFxdpH8="; +static char ST_HASH_07100[] = "$ml$1024$2484380731132131624506271467162123576077004878124365203837706482$89a3a979ee186c0c837ca4551f32e951e6564c7ac6798aa35baf4427fbf6bd1d630642c12cfd5c236c7b0104782237db95e895f7c0e372cd81d58f0448daf958"; +static char ST_HASH_07200[] = "grub.pbkdf2.sha512.1024.03510507805003756325721848020561235456073188241051876082416068104377357018503082587026352628170170411053726157658716047762755750.aac26b18c2b0c44bcf56514d46aabd52eea097d9c95122722087829982e9dd957b2b641cb1e015d4df16a84d0571e96cf6d3de6361431bdeed4ddb0940f2425b"; +static char ST_HASH_07300[] = "3437343735333336383831353232323433383333303236303337333338363232303135383237333638363532373231343030313131333838323734373138363632343133333335353030353633373533333133313530363533303738343334313330303630343633333237373037383537333630303233303830303437323838333237313438363238343434383831363634323431333430383735323038:f4b376e25868751fc0264f573ff1fe50b65ce5a2"; +static char ST_HASH_07400[] = "$5$7777657035274252$XftMj84MW.New1/ViLY5V4CM4Y7EBvfETaZsCW9vcJ8"; +static char ST_HASH_07500[] = "$krb5pa$23$user$realm$salt$5cbb0c882a2b26956e81644edbdb746326f4f5f0e947144fb3095dffe4b4b03e854fc1d631323632303636373330383333353630"; +static char ST_HASH_07700[] = "027642760180$77EC38630C08DF8D"; +static char ST_HASH_07800[] = "604020408266$32837BA7B97672BA4E5AC74767A4E6E1AE802651"; +static char ST_HASH_07900[] = "$S$C20340258nzjDWpoQthrdNTR02f0pmev0K/5/Nx80WSkOQcPEQRh"; +static char ST_HASH_08000[] = "0xc0071808773188715731b69bd4e310b4129913aaf657356c5bdf3c46f249ed42477b5c74af6eaac4d15a"; +static char ST_HASH_08100[] = "1130725275da09ca13254957f2314a639818d44c37ef6d558"; +static char ST_HASH_08200[] = "9b6933f4a1f65baf02737545efc8c1caee4c7a5a82ce3ab637bcc19b0b51f5c5:30b952120ca9a190ac673a5e12a358e4:40000:e29b48a8cfd216701a8ced536038d0d49cf58dd25686e02d7ba3aa0463cc369062045db9e95653ac176e2192732b49073d481c26f29e1c611c84aaba93e553a6c51d1a9f7cfce0d01e099fb19f6a412bacd8034a333f7165fda1cc89df845e019c03ac9a09bc77b26c49524ade5c5a812230322f014f058b3bb790319e4a788f917aa164e56e78941f74e9c08921144e14be9b60da1a7321a0d178a1b8c1dcf83ffcadcb1599039049650577780d6913ee924e6529401e7a65b7d71c169a107e502dbd13b6b01c58e0483afb61b926313fa4273e685dd4890218bb797fab038c6a24df90883c7acd2358908edc1f7d95ef498757a3e0659aaaf6981c744ab69254267127fc806cf3cd1ced99ab455ece06479c91c892769af5db0c0f7a70dd83e4341bf86d085bbdc6a7e195ab08fc26"; +static char ST_HASH_08300[] = "pi6a89u8tca930h8mvolklmesefc5gmn:.fnmlbsik.net:35537886:1"; +static char ST_HASH_08400[] = "7f8d1951fe48ae3266980c2979c141f60e4415e5:5037864764153886517871426607441768004150"; +static char ST_HASH_08500[] = "$racf$*8481*6095E8FCA59F8E3E"; +static char ST_HASH_08600[] = "3dd2e1e5ac03e230243d58b8c5ada076"; +static char ST_HASH_08700[] = "(GDJ0nDZI8l8RJzlRbemg)"; +static char ST_HASH_08800[] = "$fde$16$ca56e82e7b5a9c2fc1e3b5a7d671c2f9$16$7c124af19ac913be0fc137b75a34b20d$eac806ae7277c8d48243d52a8644fa57a817317bd3457f94dca727964cbc27c88296954f289597a9de3314a4e9d9f28dce70cf9ce3e1c3c0c6fc041687a0ad3cb333d4449bc9da8fcc7d5f85948a7ac3bc6d34f505e9d0d91da4396e35840bde3465ad11c5086c89ee6db68d65e47a2e5413f272caa01e02224e5ff3dc3bed3953a702e85e964e562e62f5c97a2df6c47547bfb5aeeb329ff8f9c9666724d399043fe970c8b282b45e93d008333f3b4edd5eb147bd023ed18ac1f9f75a6cd33444b507694c64e1e98a964b48c0a77276e9930250d01801813c235169a7b1952891c63ce0d462abc688bd96c0337174695a957858b4c9fd277d04abe8a0c2c5def4b352ba29410f8dbec91bcb2ca2b8faf26d44f02340b3373bc94e7487ce014e6adfbf7edfdd2057225f8aeb324c9d1be877c6ae4211ae387e07bf2a056984d2ed2815149b3e9cf9fbfae852f7dd5906c2b86e7910c0d7755ef5bcc39f0e135bf546c839693dc4af3e50b8382c7c8c754d4ee218fa85d70ee0a5707a9f827209a7ddb6c2fb9431a61c9775112cc88aa2a34f97c2f53dfce082aa0758917269a5fc30049ceab67d3efd721fee021ffca979f839b4f052e27f5c382c0dd5c02fd39fbc9b26e04bf9e051d1923eff9a7cde3244902bb8538b1b9f11631def5aad7c21d2113bcdc989b771ff6bf220f94354034dd417510117b55a669e969fc3bc6c5dcd4741b8313bf7d999dc94d4949f27eec0cd06f906c17a80d09f583a5dd601854832673b78d125a2c5ad0352932be7b93c611fee8c6049670442d8c532674f3d21d45d3d009211d2a9e6568252ac4682982172cb43e7c6b05e85851787ad90e25b77cce3f7968d455f92653a1d3790bc50e5f6e1f743ac47275ffa8e81bbe832a8d7d78d5d5a7c73f95703aebb355849ae566492093bd9cb51070f39c69bb4e22b99cc0e60e96d048385bb69f1c44a3b79547fbc19a873a632f43f05fa2d8a6f9155e59d153e2851b739c42444018b8c4e09a93be43570834667d0b5a5d2a53b1572dab3e750b3f9e641e303559bace06612fbd451a5e822201442828e79168c567a85d8c024cd8ce32bf650105b1af98cc5428675f4f4bbede37a0ef98d1533a8a6dcb27d87a2b799f18706f4677edaa0411becac4c591ede83993aedba660d1dd67f6c4a5c141ad3e6e0c77730cb0ecbf4f4bd8ef6067e05ca3bc563d9e1554a893fea0050bdd1733c883f533f87eac39cceee0ccf817fc1f19bcfdd13e9f241b89bfb149b509e9a0747658438536b6705514cc6d6bb3c64c903e4710435d8bebc35297d1ebbdff8074b203f37d1910d8b4637e4d3dab997f4aa378a7a67c79e698a11e83d0d7e759d0e7969c4f5408168b282fe28d3279ec1d4cc6f85a0f8e5d01f21c7508a69773c44167ff8d467d0801f9ec54f9ee2496d4e7e470214abc1ca11355bb18cd23273aac6b05b47f9e301b42b137a2455758c24e2716dcd2e55bbeb780f592e664e7392bf6eccb80959f24c8800816c84f2575e82e1f3559c33a5be7a3a0c843c2989f486b113d5eeada007caf6b5a0f6d71e2f5c09a4def57c7057168051868317a9ec790d570d76a0d21a45ad951c475db5a66101475871147c5a5907ec4e6b14128ed6695bb73c1c97952e96826eeb6003aa13462093e4afc209627241f03b0247e110fbab983640423b7cdf112e01579fed68c80ac7df7449d9d2114b9ae5539c03c2037be45c5f74e7357b25c6a24b7bd503864437147e50d7ac4ccc4bbd0cabecdc6bac60a362285fe450e2c2d0a446578c8880dc957e6e8061e691b83eb8062d1aad476e0c7b25e4d5454f1288686eb525f37fe649637b235b7828366b0219a9c63d6ddbb696dc3585a2ebfbd5f5e4c170d6784ab9993e15142535e194d2bee3dc9477ef8b8e1b07605e0c04f49edf6d42be3a9dabbc592dde78ce8b7dd9684bfcf4ca2f5a44b1872abe18fb6fa67a79390f273a9d12f9269389629456d71b9e7ed3447462269a849ce83e1893f253c832537f850b1acce5b11d2ba6b7c2f99e8e7c8085f390c21f69e1ce4bbf85b4e1ad86c0d6706432766978076f4cada9ca6f28d395d9cc5e74b2a6b46eb9d1de79eeecff7dc97ec2a8d8870e3894e1e4e26ccb98dd2f88c0229bbd3152fa149f0cc132561f"; +static char ST_HASH_08900[] = "SCRYPT:1024:1:1:Mzg3MjYzNzYwMzE0NDE=:uM7P3Kg2X9En9KZPv3378YablKcuUoQ1mwunXdg3o1M="; +static char ST_HASH_09100[] = "(HC34tD3KtDp4oCZWmCJ4qC30mC30mC3KmC30mCcA5ovrMLH9M)"; +static char ST_HASH_09200[] = "$8$84486783037343$pYNyVrtyMalQrZLxRi7ZLQS1Fl.jkYCgASUi5P8JNb2"; +static char ST_HASH_09300[] = "$9$87023684531115$phio0TBQwaO7KZ8toQFyGFyDvyOzidaypRWN0uKX0hU"; +static char ST_HASH_09400[] = "$office$*2007*20*128*16*18410007331073848057180885845227*944c70a5ee6e5ab2a6a86ff54b5f621a*e6650f1f2630c27fd8fc0f5e56e2e01f99784b9f"; +static char ST_HASH_09500[] = "$office$*2010*100000*128*16*34170046140146368675746031258762*de5bc114991bb3a5679a6e24320bdb09*1b72a4ddffba3dcd5395f6a5ff75b126cb832b733c298e86162028ca47a235a9"; +static char ST_HASH_09600[] = "$office$*2013*100000*256*16*67805436882475302087847656644837*0c392d3b9ca889656d1e615c54f9f3c9*612b79e33b96322c3253fc8a0f314463cd76bc4efe1352f7efffca0f374f7e4b"; +static char ST_HASH_09700[] = "$oldoffice$0*55045061647456688860411218030058*e7e24d163fbd743992d4b8892bf3f2f7*493410dbc832557d3fe1870ace8397e2"; +static char ST_HASH_09710[] = "$oldoffice$0*55045061647456688860411218030058*e7e24d163fbd743992d4b8892bf3f2f7*493410dbc832557d3fe1870ace8397e2"; +static char ST_HASH_09720[] = "$oldoffice$0*55045061647456688860411218030058*e7e24d163fbd743992d4b8892bf3f2f7*493410dbc832557d3fe1870ace8397e2:91b2e062b9"; +static char ST_HASH_09800[] = "$oldoffice$3*83328705222323020515404251156288*2855956a165ff6511bc7f4cd77b9e101*941861655e73a09c40f7b1e9dfd0c256ed285acd"; +static char ST_HASH_09810[] = "$oldoffice$3*83328705222323020515404251156288*2855956a165ff6511bc7f4cd77b9e101*941861655e73a09c40f7b1e9dfd0c256ed285acd"; +static char ST_HASH_09820[] = "$oldoffice$3*83328705222323020515404251156288*2855956a165ff6511bc7f4cd77b9e101*941861655e73a09c40f7b1e9dfd0c256ed285acd:b8f63619ca"; +static char ST_HASH_09900[] = "22527bee5c29ce95373c4e0f359f079b"; +static char ST_HASH_10000[] = "pbkdf2_sha256$10000$1135411628$bFYX62rfJobJ07VwrUMXfuffLfj2RDM2G6/BrTrUWkE="; +static char ST_HASH_10100[] = "583e6f51e52ba296:2:4:47356410265714355482333327356688"; +static char ST_HASH_10200[] = "$cram_md5$MTI=$dXNlciBiOGYwNjk5MTE0YjA1Nzg4OTIyM2RmMDg0ZjgyMjQ2Zg=="; +static char ST_HASH_10300[] = "{x-issha, 1024}BnjXMqcNTwa3BzdnUOf1iAu6dw02NzU4MzE2MTA="; +static char ST_HASH_10400[] = "$pdf$1*2*40*-1*0*16*01221086741440841668371056103222*32*27c3fecef6d46a78eb61b8b4dbc690f5f8a2912bbb9afc842c12d79481568b74*32*0000000000000000000000000000000000000000000000000000000000000000"; +static char ST_HASH_10410[] = "$pdf$1*2*40*-1*0*16*01221086741440841668371056103222*32*27c3fecef6d46a78eb61b8b4dbc690f5f8a2912bbb9afc842c12d79481568b74*32*0000000000000000000000000000000000000000000000000000000000000000"; +static char ST_HASH_10420[] = "$pdf$1*2*40*-1*0*16*01221086741440841668371056103222*32*27c3fecef6d46a78eb61b8b4dbc690f5f8a2912bbb9afc842c12d79481568b74*32*0000000000000000000000000000000000000000000000000000000000000000:6a8aedccb7"; +static char ST_HASH_10500[] = "$pdf$2*3*128*-4*1*16*62888255846156252261477183186121*32*6879919b1afd520bd3b7dbcc0868a0a500000000000000000000000000000000*32*0000000000000000000000000000000000000000000000000000000000000000"; +static char ST_HASH_10600[] = "$pdf$5*5*256*-1028*1*16*28562274676426582441147358074521*127*a3aab04cff2c536118870976d768f1fdd445754d6b2dd81fba10bb6e742acd7f2856227467642658244114735807452100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*127*00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*32*0000000000000000000000000000000000000000000000000000000000000000*32*0000000000000000000000000000000000000000000000000000000000000000"; +static char ST_HASH_10700[] = "$pdf$5*6*256*-1028*1*16*62137640825124540503886403748430*127*0391647179352257f7181236ba371e540c2dbb82fac1c462313eb58b772a54956213764082512454050388640374843000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*127*00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000*32*0000000000000000000000000000000000000000000000000000000000000000*32*0000000000000000000000000000000000000000000000000000000000000000"; +static char ST_HASH_10800[] = "07371af1ca1fca7c6941d2399f3610f1e392c56c6d73fddffe38f18c430a2817028dae1ef09ac683b62148a2c8757f42"; +static char ST_HASH_10900[] = "sha256:1000:NjI3MDM3:vVfavLQL9ZWjg8BUMq6/FB8FtpkIGWYk"; +static char ST_HASH_11000[] = "f22cade043e7214200206dbffca49fd9:27167508161455764247627144160038845437138252877014827848"; +static char ST_HASH_11100[] = "$postgres$postgres*74402844*4e7fabaaf34d780c4a5822d28ee1c83e"; +static char ST_HASH_11200[] = "$mysqlna$2576670568531371763643101056213751754328*5e4be686a3149a12847caa9898247dcc05739601"; +static char ST_HASH_11300[] = "$bitcoin$96$c265931309b4a59307921cf054b4ec6b6e4554369be79802e94e16477645777d948ae1d375191831efc78e5acd1f0443$16$8017214013543185$200460$96$480008005625057442352316337722323437108374245623701184230273883222762730232857701607167815448714$66$014754433300175043011633205413774877455616682000536368706315333388"; +static char ST_HASH_11400[] = "$sip$*72087*1215344588738747***342210558720*737232616*1215344588738747*8867133055*65600****MD5*e9980869221f9d1182c83b0d5e56a7db"; +static char ST_HASH_11500[] = "c762de4a:00000000"; +//static char ST_HASH_11600[] = "$7z$0$14$0$$11$33363437353138333138300000000000$2365089182$16$12$d00321533b483f54a523f624a5f63269"; +static char ST_HASH_11700[] = "57e9e50caec93d72e9498c211d6dc4f4d328248b48ecf46ba7abfa874f666e36"; +static char ST_HASH_11800[] = "5d5bdba48c8f89ee6c0a0e11023540424283e84902de08013aeeb626e819950bb32842903593a1d2e8f71897ff7fe72e17ac9ba8ce1d1d2f7e9c4359ea63bdc3"; +static char ST_HASH_11900[] = "md5:1000:NjAxMDY4MQ==:a00DtIW9hP9voC85fmEA5uVhgdDx67nSPSm9yADHjkI="; +static char ST_HASH_12000[] = "sha1:1000:MTYwNTM4MDU4Mzc4MzA=:aGghFQBtQ8+WVlMk5GEaMw=="; +static char ST_HASH_12001[] = "{PKCS5S2}NTczNTY0NDY2NjQyNzU1Mx8gGiRGobaZYwumctGHbn2ZOHB8LkwzH+Z1gkWfy1zD"; +static char ST_HASH_12100[] = "sha512:1000:NzY2:DNWohLbdIWIt4Npk9gpTvA=="; +static char ST_HASH_12200[] = "$ecryptfs$0$1$4207883745556753$567daa975114206c"; +static char ST_HASH_12300[] = "8F75FBD166AFDB6D7587DAB89C2F15672AAC031C5B0B5E65C0835FB130555F6FF4E0E5764976755558112246FFF306450C22F6B7746B9E9831ED97B373992F9157436180438417080374881414745255"; +static char ST_HASH_12400[] = "_GW..8841inaTltazRsQ"; +static char ST_HASH_12500[] = "$RAR3$*0*45109af8ab5f297a*adbf6c5385d7a40373e8f77d7b89d317"; +static char ST_HASH_12600[] = "3f3473a071b1fb955544e80c81853ca0f1e4f9ee4ca3bf4d2a8a10b5ef5be1f6:6058321484538505215534207835727413038041028036676832416353152201"; +static char ST_HASH_12700[] = "$blockchain$288$713253722114000682636604801283547365b7a53a802a7388d08eb7e6c32c1efb4a157fe19bca940a753d7f16e8bdaf491aa9cf6cda4035ac48d56bb025aced81455424272f3e0459ec7674df3e82abd7323bc09af4fd0869fd790b3f17f8fe424b8ec81a013e1476a5c5a6a53c4b85a055eecfbc13eccf855f905d3ddc3f0c54015b8cb177401d5942af833f655947bfc12fc00656302f31339187de2a69ab06bc61073933b3a48c9f144177ae4b330968eb919f8a22cec312f734475b28cdfe5c25b43c035bf132887f3241d86b71eb7e1cf517f99305b19c47997a1a1f89df6248749ac7f38ca7c88719cf16d6af2394307dce55600b8858f4789cf1ae8fd362ef565cd9332f32068b3c04c9282553e658b759c2e76ed092d67bd55961ae"; +static char ST_HASH_12800[] = "v1;PPH1_MD4,54188415275183448824,100,55b530f052a9af79a7ba9c466dddcb8b116f8babf6c3873a51a3898fb008e123"; +static char ST_HASH_12900[] = "15738301074686823451275227041071157383010746868234512752270410712bc4be900bf96ccf43c9852fff49b5f5874a9f6e7bf301686fa6d98286de151f15738301074686823451275227041071"; +static char ST_HASH_13000[] = "$rar5$16$38466361001011015181344360681307$15$00000000000000000000000000000000$8$cc7a30583e62676a"; +static char ST_HASH_13100[] = "$krb5tgs$23$*user$realm$test/spn*$b548e10f5694ae018d7ad63c257af7dc$35e8e45658860bc31a859b41a08989265f4ef8afd75652ab4d7a30ef151bf6350d879ae189a8cb769e01fa573c6315232b37e4bcad9105520640a781e5fd85c09615e78267e494f433f067cc6958200a82f70627ce0eebc2ac445729c2a8a0255dc3ede2c4973d2d93ac8c1a56b26444df300cb93045d05ff2326affaa3ae97f5cd866c14b78a459f0933a550e0b6507bf8af27c2391ef69fbdd649dd059a4b9ae2440edd96c82479645ccdb06bae0eead3b7f639178a90cf24d9a"; +static char ST_HASH_13200[] = "$axcrypt$*1*10467*9a7cd609bb262c738d9f0e4977039b94*ecbe0fd05a96fd2099d88a92eebb76c59d6837dfe55b3631"; +static char ST_HASH_13300[] = "$axcrypt_sha1$b89eaac7e61417341b710b727768294d"; +static char ST_HASH_13400[] = "$keepass$*2*24569*0*c40432355cce7348c48053ceea0a28e7d18859c4ea47e3a799c6300861f64b95*265dafcc42e1537ff42e97e1e283c70014133be0fe2d420b4d24c6d57c9d2207*a00e20a852694c15aabb074d61b902fa*48dd553fb96f7996635f2414bfe6a1a8429ef0ffb71a1752abbef31853172c35*a44ae659958ad7fae8c8952cb83f3cf03fec2371ce22a8bf7fac1e687af2f249*1*64*5a26ea376cc5afc955104c334571d30486acbac512a94b75ca82a9e31dd97bf7"; +static char ST_HASH_13500[] = "24eea51b53d02b4c5ff99bcb05a6847fdb2d9308:4f10a0de76e242040c28e9d3dd15c903343489c79765f9118c098c266b9ff505c95bd75bbe406ff3404849eea73930ad17937c0ba6fc3e7bb6d37362941318938b8af96d1292a310b3fd29a67e411ecb10d30247c99183a16951b3859054d4eba9dcd50709c7b21dee836d7ed195cc6b33317aeb557cc56392dc551faa8d5a0fb42212"; +static char ST_HASH_13600[] = "$zip2$*0*3*0*74705614874758221371566185145124*1605*0**75bf9be92e8ab106ff67*$/zip2$"; +static char ST_HASH_13800[] = "060a4a94cb2263bcefe74705bd0efe7643d09c2bc25fc69f6a32c1b8d5a5d0d9:4647316184156410832507278642444030512402463246148636510356103432440257733102761444262383653100802140838605535187005586063548643765207865344068042278454875021452355870320020868064506248840047414683714173748364871633802572014845467035357710118327480707136422"; +static char ST_HASH_13900[] = "058c1c3773340c8563421e2b17e60eb7c916787e:827500576"; +static char ST_HASH_14000[] = "53b325182924b356:1412781058343178"; +static char ST_HASH_14100[] = "4c29eea59d8db1e7:7428288455525516"; +static char ST_HASH_14400[] = "fcdc7ec700b887e8eaebf94c2ec52aebb5521223:63038426024388230227"; +static char ST_HASH_14700[] = "$itunes_backup$*9*ebd7f9b33293b2511f0a4139d5b213feff51476968863cef60ec38d720497b6ff39a0bb63fa9f84e*10000*2202015774208421818002001652122401871832**"; +static char ST_HASH_14800[] = "$itunes_backup$*10*17a3b858e79bc273be43a9f113b71efe7ec8e7e401396b350180b4592ef45db67ffef7b2d64329a5*10000*2721336781705041205314422175267631184867*1000*99fafc983e732998adb9fadc162a2e382143f115"; +static char ST_HASH_14900[] = "7090b6b9:04223875"; +static char ST_HASH_15000[] = "bfa9fe5a404faff8b0d200385e26b783a163e475869336029d3ebaccaf02b5f16e4949279e8a33b942ab647f8f19a83dbe89a6d39dd6d8f84812de7d2e556767:6422386434050716105781561510557063652302782465168686858312232148"; +static char ST_HASH_15100[] = "$sha1$20000$75552156$HhYMDdaEHiK3eMIzTldOFPnw.s2Q"; +static char ST_HASH_15200[] = "$blockchain$v2$5000$288$324724252428471806184866704068819419467b2b32fd9593fd1a274e0b68bf2c72e5a1f5e748fd319056d1e47ca7b40767136a2d97d7133d14faaeca50986f66cdbc0faec0a3fabbd0ba5d08d5322b6b53da021aacfc439c45bec0e9fe02ad81db82f94e9bd36a7d4d76b505c2339fcd46565d3abab958fbeb1de8bfc53beb96cde8fe44128965477c9ef0762c62bbb1d66532b4888e174ea949db54374a2ed9686a63eb0b5b17ae293f7410bb4ae5106f108314a259c5fd097d558515d79350713412159103a8a174cd384a14f3da45efe18044e1146036000231f6042577d0add98fc959d265368e398dc1550b0bc693e9023cd9d51b40e701bd786e19c3a281a90465aa6ea3f9e756d430164ab2eb43be5b6796d7ac15b2fe99217410f2"; +static char ST_HASH_15300[] = "$DPAPImk$2*1*S-15-21-439882973-489230393-482956683-1522*aes256*sha512*12900*79f7ca399f2626e21aad108c3922af7c*288*c47bc8a985ca6aa708b01c97b004bff20cc52379dc2635b4acf59ce17970a2cb47ace98c7e8de977f265243c5c03d0a97e4b954b494d9e38d9158d0c1e729d16a28ba69e2e7c6c3bc0e3afc9c9b6306b83372ccb35d89b98925728fd36315b8ee95b4d4eccdcb31564769f9a4b9ee10828184e16d4af336675d5e31d987dd87233d34fbbb98880c5e1f64cbb9b043ad8"; +static char ST_HASH_15400[] = "$chacha20$*0400000000000003*35*0200000000000001*3961626364656667*8a152c57a7a856a8"; +static char ST_HASH_15500[] = "$jksprivk$*338BD2FBEBA7B3EF198A4CBFC6E18AFF1E229367*5225850113575146134463704406336350011656*D5253EB151EB92DC73E542D8C0A4D7A848A5B0C0E370E625E6547D4E6F23416FC85A27BC295731B8021CDFBD003551C66C434FFBC87DACAD1FDF39022320034A2F86E779F2B1B3325428A666518FA89507AD63E15FD9C57B9E36EF5B642A2F448A9A3F09B79AD93D65F46B8692CD07539FD140146F8F219DC262971AF019E18EDC16C3C240569E1673F4D98BC818CCF28298D5A7BFF038A663DD10FE5E48643C3217C237D342164E2D41EF15075431FBD5B34800E5AE7EB80FAA5AE9982A55F35379AA7B31217E7F1C5F1964A15024A305AE4B3981FE1C80C163BC38ECA5581F11867E5C34C5D124D0367B3737E5E5BB14D2CAB26A698C8DAAB755C82BA6B823BCAECDD4A89C831651ACE5A6029FD0D3515C5D1D53AD8B9062CE8C445373862035CBBF60D490CA2E4975EE6E0358EC32E871FAB15347E3032E21F30F543BAAB01D779BA833CA0B8C7591B42C7C59A8FDD46D7DECEC0E91ADBF331177605E7830ABED62FAD7D5D806D8EFD01C38765940B7F97168FC72C39BF4C98F944FFC310CA8F4EB1D0F960F352CC5E2BB23A1EB221072A5471EDA2CE81C04595B8D37088CFB5C14F6A4A881AD12125DEFBB8154EB4C130AB7FD9933FD36DF1A6A26B51AB169866788678FCED988C8E017CA84354F487A5508210181AFB8B3AD0753E3E28BE674DFBD4E4FBDFD1E30D592F4EA3A77A2F0F5CF9A175DBC590EF5D42971A39918F12B92DCD8BFD56BE9A3459856B5587603C7B53062663A4C8894BBC9894FB1663BF30F32D907664328138B7A50EAC7F8E3183D74562A5C90FE1889AC4C5FE43EBEB8974563B6682F92591ECA4FA0DA72236C3851DA102DB6BA0CC07BFD32F7E962AB0EDCF4A8DEA6525174F5BB5C021E2A9A3F7F761E9CA90B6E27FB7E55CD91DA184FAC5E534E8AD25314C56CE5796506A0CA70881782F9C5147D87705065D68BD67D2B0344205BA6445D562273690004CA5A303274FB283A75F49BA968D7947943AA98F2AF9CB8253B425B86225E7395A331AC4CB1B1700C64D4F458D5D642C54148AE6DA41D9E26657D331B157D76042C2CF3057B83997C23D8BF68FB3C7337CAFB8B324AD0DF7A80B554B4D7F9AD6ED527E7932F1741A573C152A41610F6517E3F4A3BC6B66685871A7CE3795C559BD47CDB8E34CB2C1DFE980518D79E2078C258C54F312EB38609F640E7DC013E0F2A16A25BB5971882B4308D27930CA99FEC231AE927B62215A1B56098C362B7F20593953B29428681875070E84BF5B60BEA3948127151634123DA77C814AAD54CE10905763C8C19BC191C0C40458C809402E1957C4C05C4EAE27576B2D30593F7FDCC9A248DB5DB23CF2FA22A92C016090F611690BF0AB5B8B2866ED25F345EFE85DF3311C9E91C37CEE709CF16E7CB09D01BECD2961D094C02D42EC85BF47FAB1B67A13B9A1741C15F7156D57A71BFFABB03B71E69707913A5C136B3D69CE3F71ABFE376F0A21D723FFA2E60AC180689D3E8AF4348C9F555CD897387327FC8BA2B9C51A7298547E556A11A60441EF5331A1BFB847A3D23DD9F7C50E636A2C6309BC82E1A8852F5A8569B6D93*14*78D6A2424484CF5149932B7EA8BF*test"; +static char ST_HASH_15600[] = "$ethereum$p*1024*38353131353831333338313138363430*a8b4dfe92687dbc0afeb5dae7863f18964241e96b264f09959903c8c924583fc*0a9252861d1e235994ce33dbca91c98231764d8ecb4950015a8ae20d6415b986"; +static char ST_HASH_15700[] = "$ethereum$s*1024*1*1*3033363133373132373638333437323331383637383437333631373038323434*69eaf081695cf971ef7ee5a49997c1a3922e7efef59068109e83853755ee31c3*64a1adec1750ee4416b22b81111dd2a3c2fede820d6da8bf788dca2641d5b181"; +static char ST_HASH_99999[] = "hashcat"; + static const char OPTI_STR_ZERO_BYTE[] = "Zero-Byte"; static const char OPTI_STR_PRECOMPUTE_INIT[] = "Precompute-Init"; static const char OPTI_STR_PRECOMPUTE_MERKLE[] = "Precompute-Merkle-Demgard"; @@ -9580,6 +9799,11 @@ int oldoffice34cm2_parse_hash (u8 *input_buf, u32 input_len, hash_t *hash_buf, M salt->salt_buf[2] = hex_to_u32 ((const u8 *) &osalt_pos[16]); salt->salt_buf[3] = hex_to_u32 ((const u8 *) &osalt_pos[24]); + salt->salt_buf[0] = byte_swap_32 (salt->salt_buf[0]); + salt->salt_buf[1] = byte_swap_32 (salt->salt_buf[1]); + salt->salt_buf[2] = byte_swap_32 (salt->salt_buf[2]); + salt->salt_buf[3] = byte_swap_32 (salt->salt_buf[3]); + // this is a workaround as office produces multiple documents with the same salt salt->salt_len += 32; @@ -19315,6 +19539,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos3 = 0; hashconfig->parse_func = NULL; hashconfig->separator = user_options->separator; + hashconfig->st_hash = NULL; + hashconfig->st_pass = NULL; switch (hashconfig->hash_mode) { @@ -19339,6 +19565,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19362,6 +19590,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00010; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19385,6 +19615,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00011; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19408,6 +19640,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00012; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 20: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19430,6 +19664,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00020; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 21: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19452,6 +19688,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00021; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 22: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19474,6 +19712,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00022; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 23: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19496,6 +19736,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00023; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 30: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19520,6 +19762,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00030; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 40: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19543,6 +19787,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00040; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 50: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19560,6 +19806,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00050; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 60: hashconfig->hash_type = HASH_TYPE_MD5; @@ -19577,6 +19825,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00060; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 100: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19599,6 +19849,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 101: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19621,6 +19873,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00101; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 110: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19643,6 +19897,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00110; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 111: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19665,6 +19921,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00111; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 112: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19688,6 +19946,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00112; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 120: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19710,6 +19970,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00120; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 121: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19733,6 +19995,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00121; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 122: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19756,6 +20020,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00122; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 124: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19778,6 +20044,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00124; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 125: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19801,6 +20069,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00125; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 130: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19824,6 +20094,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00130; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 131: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19849,6 +20121,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00131; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 132: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19873,6 +20147,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00132; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 133: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19896,6 +20172,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00133; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 140: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19919,6 +20197,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00140; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 141: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19943,6 +20223,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00141; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 150: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19960,6 +20242,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00150; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 160: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -19977,6 +20261,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00160; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 200: hashconfig->hash_type = HASH_TYPE_MYSQL; @@ -19991,6 +20277,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_00200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 300: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -20012,6 +20300,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 400: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20027,6 +20317,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_00400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 500: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20041,6 +20333,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_00500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 501: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20056,6 +20350,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_00501; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 600: hashconfig->hash_type = HASH_TYPE_BLAKE2B; @@ -20072,6 +20368,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 0; hashconfig->dgst_pos2 = 3; hashconfig->dgst_pos3 = 2; + hashconfig->st_hash = ST_HASH_00600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 900: hashconfig->hash_type = HASH_TYPE_MD4; @@ -20095,6 +20393,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_00900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1000: hashconfig->hash_type = HASH_TYPE_MD4; @@ -20119,6 +20419,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_01000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1100: hashconfig->hash_type = HASH_TYPE_MD4; @@ -20143,6 +20445,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_01100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1300: hashconfig->hash_type = HASH_TYPE_SHA224; @@ -20165,6 +20469,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 5; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1400: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20187,6 +20493,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1410: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20209,6 +20517,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01410; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1411: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20231,6 +20541,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01411; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1420: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20253,6 +20565,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01420; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1421: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20275,6 +20589,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01421; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1430: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20298,6 +20614,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01430; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1440: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20321,6 +20639,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01440; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1441: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20345,6 +20665,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01441; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1450: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20361,6 +20683,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01450; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1460: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -20378,6 +20702,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_01460; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1500: hashconfig->hash_type = HASH_TYPE_DESCRYPT; @@ -20394,6 +20720,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1600: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20408,6 +20736,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_01600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1700: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20431,6 +20761,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1710: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20454,6 +20786,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01710; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1711: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20477,6 +20811,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01711; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1720: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20500,6 +20836,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01720; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1722: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20524,6 +20862,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01722; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1730: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20548,6 +20888,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01730; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1731: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20573,6 +20915,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01731; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1740: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20597,6 +20941,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01740; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1750: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20614,6 +20960,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01750; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1760: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20632,6 +20980,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_01760; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 1800: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -20647,6 +20997,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_01800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2000: hashconfig->hash_type = HASH_TYPE_STDOUT; @@ -20661,6 +21013,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 0; hashconfig->dgst_pos2 = 0; hashconfig->dgst_pos3 = 0; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2100: hashconfig->hash_type = HASH_TYPE_DCC2; @@ -20678,6 +21032,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_02100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2400: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20697,6 +21053,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2410: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20715,6 +21073,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02410; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2500: hashconfig->hash_type = HASH_TYPE_WPA; @@ -20731,6 +21091,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_EXCL; break; case 2600: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20751,6 +21113,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2611: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20771,6 +21135,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02611; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2612: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20792,6 +21158,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02612; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2711: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20811,6 +21179,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02711; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 2811: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20830,6 +21200,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_02811; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3000: hashconfig->hash_type = HASH_TYPE_LM; @@ -20849,6 +21221,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_03000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3100: hashconfig->hash_type = HASH_TYPE_ORACLEH; @@ -20865,6 +21239,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_03100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3200: hashconfig->hash_type = HASH_TYPE_BCRYPT; @@ -20880,6 +21256,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_03200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3710: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20899,6 +21277,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_03710; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3711: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20918,6 +21298,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_03711; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3800: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20938,6 +21320,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_03800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 3910: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20959,6 +21343,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_03910; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4010: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20978,6 +21364,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04010; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4110: hashconfig->hash_type = HASH_TYPE_MD5; @@ -20995,6 +21383,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04110; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4300: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21015,6 +21405,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4400: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21037,6 +21429,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4500: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21057,6 +21451,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4520: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21076,6 +21472,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04520; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4521: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21095,6 +21493,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04521; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4522: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21114,6 +21514,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04522; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4700: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21136,6 +21538,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4800: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21157,6 +21561,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 4900: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21174,6 +21580,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_04900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5000: hashconfig->hash_type = HASH_TYPE_KECCAK; @@ -21191,6 +21599,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 4; hashconfig->dgst_pos3 = 5; + hashconfig->st_hash = ST_HASH_05000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5100: hashconfig->hash_type = HASH_TYPE_MD5H; @@ -21208,6 +21618,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_05100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5200: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21223,6 +21635,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5300: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21238,6 +21652,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_05300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5400: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21253,6 +21669,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_05400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5500: hashconfig->hash_type = HASH_TYPE_NETNTLM; @@ -21272,6 +21690,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_05500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5600: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21289,6 +21709,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_05600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5700: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21311,6 +21733,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_05700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 5800: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21326,6 +21750,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_05800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6000: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21341,6 +21767,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6100: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -21356,6 +21784,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6211: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21371,6 +21801,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6212: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21386,6 +21818,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6213: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21401,6 +21835,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6221: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21417,6 +21853,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6222: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21433,6 +21871,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6223: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21449,6 +21889,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6231: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -21464,6 +21906,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6232: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -21479,6 +21923,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6233: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -21494,6 +21940,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6241: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21509,6 +21957,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6242: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21524,6 +21974,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6243: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -21539,6 +21991,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6300: hashconfig->hash_type = HASH_TYPE_MD5; @@ -21553,6 +22007,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6400: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21567,6 +22023,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6500: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21582,6 +22040,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6600: hashconfig->hash_type = HASH_TYPE_AES; @@ -21596,6 +22056,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6700: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21610,6 +22072,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6800: hashconfig->hash_type = HASH_TYPE_AES; @@ -21624,6 +22088,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 6900: hashconfig->hash_type = HASH_TYPE_GOST; @@ -21638,6 +22104,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_06900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7000: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21655,6 +22123,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_07000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7100: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21671,6 +22141,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7200: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21687,6 +22159,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7300: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21704,6 +22178,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_07300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7400: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21718,6 +22194,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7500: hashconfig->hash_type = HASH_TYPE_KRB5PA; @@ -21733,6 +22211,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7700: hashconfig->hash_type = HASH_TYPE_SAPB; @@ -21751,6 +22231,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7800: hashconfig->hash_type = HASH_TYPE_SAPG; @@ -21769,6 +22251,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_07800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 7900: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -21784,6 +22268,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_07900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8000: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21805,6 +22291,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_08000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8100: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21825,6 +22313,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_08100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8200: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21839,6 +22329,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8300: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21855,6 +22347,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_08300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8400: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21873,6 +22367,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_08400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8500: hashconfig->hash_type = HASH_TYPE_DESRACF; @@ -21889,6 +22385,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8600: hashconfig->hash_type = HASH_TYPE_LOTUS5; @@ -21906,6 +22404,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8700: hashconfig->hash_type = HASH_TYPE_LOTUS6; @@ -21922,6 +22422,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8800: hashconfig->hash_type = HASH_TYPE_ANDROIDFDE; @@ -21936,6 +22438,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 8900: hashconfig->hash_type = HASH_TYPE_SCRYPT; @@ -21950,6 +22454,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_08900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9000: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -21966,6 +22472,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9100: hashconfig->hash_type = HASH_TYPE_LOTUS8; @@ -21980,6 +22488,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9200: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -21995,6 +22505,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9300: hashconfig->hash_type = HASH_TYPE_SCRYPT; @@ -22009,6 +22521,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9400: hashconfig->hash_type = HASH_TYPE_OFFICE2007; @@ -22023,6 +22537,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9500: hashconfig->hash_type = HASH_TYPE_OFFICE2010; @@ -22037,6 +22553,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9600: hashconfig->hash_type = HASH_TYPE_OFFICE2013; @@ -22051,6 +22569,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9700: hashconfig->hash_type = HASH_TYPE_OLDOFFICE01; @@ -22069,6 +22589,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9710: hashconfig->hash_type = HASH_TYPE_OLDOFFICE01; @@ -22086,6 +22608,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09710; + hashconfig->st_pass = ST_PASS_BIN_09710; break; case 9720: hashconfig->hash_type = HASH_TYPE_OLDOFFICE01; @@ -22105,6 +22629,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09720; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9800: hashconfig->hash_type = HASH_TYPE_OLDOFFICE34; @@ -22123,6 +22649,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9810: hashconfig->hash_type = HASH_TYPE_OLDOFFICE34; @@ -22139,6 +22667,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09810; + hashconfig->st_pass = ST_PASS_BIN_09810; break; case 9820: hashconfig->hash_type = HASH_TYPE_OLDOFFICE34; @@ -22158,6 +22688,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_09820; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 9900: hashconfig->hash_type = HASH_TYPE_MD5; @@ -22176,6 +22708,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_09900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10000: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -22191,6 +22725,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10100: hashconfig->hash_type = HASH_TYPE_SIPHASH; @@ -22207,6 +22743,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10200: hashconfig->hash_type = HASH_TYPE_MD5; @@ -22224,6 +22762,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_10200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10300: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -22238,6 +22778,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10400: hashconfig->hash_type = HASH_TYPE_PDFU16; @@ -22253,6 +22795,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10410: hashconfig->hash_type = HASH_TYPE_PDFU16; @@ -22268,6 +22812,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10410; + hashconfig->st_pass = ST_PASS_BIN_10410; break; case 10420: hashconfig->hash_type = HASH_TYPE_PDFU16; @@ -22283,6 +22829,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10420; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10500: hashconfig->hash_type = HASH_TYPE_PDFU16; @@ -22298,6 +22846,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10600: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -22321,6 +22871,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_10600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10700: hashconfig->hash_type = HASH_TYPE_PDFU32; @@ -22337,6 +22889,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10800: hashconfig->hash_type = HASH_TYPE_SHA384; @@ -22360,6 +22914,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 4; hashconfig->dgst_pos3 = 5; + hashconfig->st_hash = ST_HASH_10800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 10900: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA256; @@ -22377,6 +22933,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_10900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11000: hashconfig->hash_type = HASH_TYPE_MD5; @@ -22395,6 +22953,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_11000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11100: hashconfig->hash_type = HASH_TYPE_MD5; @@ -22413,6 +22973,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_11100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11200: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -22430,6 +22992,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_11200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11300: hashconfig->hash_type = HASH_TYPE_BITCOIN_WALLET; @@ -22446,6 +23010,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_11300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11400: hashconfig->hash_type = HASH_TYPE_MD5; @@ -22462,6 +23028,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_11400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11500: hashconfig->hash_type = HASH_TYPE_CRC32; @@ -22478,6 +23046,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_11500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11600: hashconfig->hash_type = HASH_TYPE_AES; @@ -22493,6 +23063,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11700: hashconfig->hash_type = HASH_TYPE_GOST_2012SBOG_256; @@ -22508,6 +23080,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_11700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11800: hashconfig->hash_type = HASH_TYPE_GOST_2012SBOG_512; @@ -22523,6 +23097,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_11800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 11900: hashconfig->hash_type = HASH_TYPE_PBKDF2_MD5; @@ -22540,6 +23116,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_11900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12000: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA1; @@ -22557,6 +23135,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12001: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA1; @@ -22573,6 +23153,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12001; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12100: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA512; @@ -22591,6 +23173,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12200: hashconfig->hash_type = HASH_TYPE_ECRYPTFS; @@ -22606,6 +23190,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12300: hashconfig->hash_type = HASH_TYPE_ORACLET; @@ -22621,6 +23207,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12400: hashconfig->hash_type = HASH_TYPE_BSDICRYPT; @@ -22636,6 +23224,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12500: hashconfig->hash_type = HASH_TYPE_RAR3HP; @@ -22650,6 +23240,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12600: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -22668,6 +23260,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_12600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12700: hashconfig->hash_type = HASH_TYPE_AES; @@ -22683,6 +23277,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12800: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA256; @@ -22697,6 +23293,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 12900: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA256; @@ -22711,6 +23309,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_12900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13000: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA256; @@ -22725,6 +23325,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_13000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13100: hashconfig->hash_type = HASH_TYPE_KRB5TGS; @@ -22740,6 +23342,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_13100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13200: hashconfig->hash_type = HASH_TYPE_AES; @@ -22754,6 +23358,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_13200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13300: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -22774,6 +23380,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 3; hashconfig->dgst_pos3 = 2; + hashconfig->st_hash = ST_HASH_13300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13400: hashconfig->hash_type = HASH_TYPE_AES; @@ -22788,6 +23396,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_13400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13500: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -22808,6 +23418,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_13500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13600: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA1; @@ -22822,6 +23434,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_13600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13711: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -22837,6 +23451,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13712: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -22852,6 +23468,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13713: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -22867,6 +23485,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13721: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -22883,6 +23503,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13722: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -22899,6 +23521,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13723: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -22915,6 +23539,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13731: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -22930,6 +23556,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13732: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -22945,6 +23573,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13733: hashconfig->hash_type = HASH_TYPE_WHIRLPOOL; @@ -22960,6 +23590,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13741: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -22975,6 +23607,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13742: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -22990,6 +23624,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13743: hashconfig->hash_type = HASH_TYPE_RIPEMD160; @@ -23005,6 +23641,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13751: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23020,6 +23658,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13752: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23035,6 +23675,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13753: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23050,6 +23692,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13761: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23065,6 +23709,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13762: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23080,6 +23726,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13763: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23095,6 +23743,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13800: hashconfig->hash_type = HASH_TYPE_SHA256; @@ -23114,6 +23764,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 7; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 6; + hashconfig->st_hash = ST_HASH_13800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 13900: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -23132,6 +23784,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_13900; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 14000: hashconfig->hash_type = HASH_TYPE_DES; @@ -23150,6 +23804,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_14000; + hashconfig->st_pass = ST_PASS_HASHCAT_ONE; break; case 14100: hashconfig->hash_type = HASH_TYPE_DES; @@ -23167,6 +23823,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_14100; + hashconfig->st_pass = ST_PASS_HASHCAT_ONET3; break; case 14400: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -23183,6 +23841,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_14400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 14600: hashconfig->hash_type = HASH_TYPE_LUKS; @@ -23198,6 +23858,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = NULL; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 14700: hashconfig->hash_type = HASH_TYPE_ITUNES_BACKUP_9; @@ -23215,6 +23877,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_14700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 14800: hashconfig->hash_type = HASH_TYPE_ITUNES_BACKUP_10; @@ -23234,6 +23898,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_14800; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 14900: hashconfig->hash_type = HASH_TYPE_SKIP32; @@ -23250,6 +23916,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_14900; + hashconfig->st_pass = ST_PASS_HASHCAT_EXCL3; break; case 15000: hashconfig->hash_type = HASH_TYPE_SHA512; @@ -23270,6 +23938,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 15; hashconfig->dgst_pos2 = 6; hashconfig->dgst_pos3 = 7; + hashconfig->st_hash = ST_HASH_15000; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15100: hashconfig->hash_type = HASH_TYPE_SHA1; @@ -23284,6 +23954,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15100; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15200: hashconfig->hash_type = HASH_TYPE_AES; @@ -23299,6 +23971,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15200; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15300: hashconfig->hash_type = HASH_TYPE_DPAPIMK; @@ -23313,6 +23987,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15300; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15400: hashconfig->hash_type = HASH_TYPE_CHACHA20; @@ -23329,6 +24005,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15400; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15500: hashconfig->hash_type = HASH_TYPE_JKS_SHA1; @@ -23349,6 +24027,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 4; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_15500; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15600: hashconfig->hash_type = HASH_TYPE_PBKDF2_SHA256; @@ -23365,6 +24045,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15600; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 15700: hashconfig->hash_type = HASH_TYPE_SCRYPT; @@ -23380,6 +24062,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 1; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 3; + hashconfig->st_hash = ST_HASH_15700; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; case 99999: hashconfig->hash_type = HASH_TYPE_PLAINTEXT; @@ -23403,6 +24087,8 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx) hashconfig->dgst_pos1 = 3; hashconfig->dgst_pos2 = 2; hashconfig->dgst_pos3 = 1; + hashconfig->st_hash = ST_HASH_99999; + hashconfig->st_pass = ST_PASS_HASHCAT_PLAIN; break; default: event_log_error (hashcat_ctx, "Unknown hash-type '%u' selected.", hashconfig->hash_mode); @@ -23750,6 +24436,36 @@ void hashconfig_destroy (hashcat_ctx_t *hashcat_ctx) memset (hashconfig, 0, sizeof (hashconfig_t)); } +u32 hashconfig_forced_kernel_threads (hashcat_ctx_t *hashcat_ctx) +{ + const hashconfig_t *hashconfig = hashcat_ctx->hashconfig; + + u32 kernel_threads = 0; + + // DES kernels needs to have a minimum thread count only + // because of the bitsliced kernel and the workgroup division done on it + + if (hashconfig->hash_mode == 1500) kernel_threads = 64; // DES + if (hashconfig->hash_mode == 3000) kernel_threads = 64; // DES + if (hashconfig->hash_mode == 3100) kernel_threads = 64; // DES + if (hashconfig->hash_mode == 3200) kernel_threads = 8; // Blowfish + if (hashconfig->hash_mode == 7500) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 8500) kernel_threads = 64; // DES + if (hashconfig->hash_mode == 9000) kernel_threads = 8; // Blowfish + if (hashconfig->hash_mode == 9700) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 9710) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 9800) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 9810) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 10400) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 10410) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 10500) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 13100) kernel_threads = 64; // RC4 + if (hashconfig->hash_mode == 14000) kernel_threads = 64; // DES + if (hashconfig->hash_mode == 14100) kernel_threads = 64; // DES + + return kernel_threads; +} + u32 hashconfig_get_kernel_threads (hashcat_ctx_t *hashcat_ctx, const hc_device_param_t *device_param) { const hashconfig_t *hashconfig = hashcat_ctx->hashconfig; @@ -23779,23 +24495,9 @@ u32 hashconfig_get_kernel_threads (hashcat_ctx_t *hashcat_ctx, const hc_device_p kernel_threads = KERNEL_THREADS_MAX_CPU; } - if (hashconfig->hash_mode == 1500) kernel_threads = 64; // DES - if (hashconfig->hash_mode == 3000) kernel_threads = 64; // DES - if (hashconfig->hash_mode == 3100) kernel_threads = 64; // DES - if (hashconfig->hash_mode == 3200) kernel_threads = 8; // Blowfish - if (hashconfig->hash_mode == 7500) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 8500) kernel_threads = 64; // DES - if (hashconfig->hash_mode == 9000) kernel_threads = 8; // Blowfish - if (hashconfig->hash_mode == 9700) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 9710) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 9800) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 9810) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 10400) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 10410) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 10500) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 13100) kernel_threads = 64; // RC4 - if (hashconfig->hash_mode == 14000) kernel_threads = 64; // DES - if (hashconfig->hash_mode == 14100) kernel_threads = 64; // DES + const u32 forced_kernel_threads = hashconfig_forced_kernel_threads (hashcat_ctx); + + if (forced_kernel_threads) kernel_threads = forced_kernel_threads; return kernel_threads; } diff --git a/src/opencl.c b/src/opencl.c index ca1485ed2..529726f56 100644 --- a/src/opencl.c +++ b/src/opencl.c @@ -1371,17 +1371,19 @@ int run_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, con int CL_rc; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 24, sizeof (cl_uint), device_param->kernel_params[24]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 25, sizeof (cl_uint), device_param->kernel_params[25]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 26, sizeof (cl_uint), device_param->kernel_params[26]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 27, sizeof (cl_uint), device_param->kernel_params[27]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 28, sizeof (cl_uint), device_param->kernel_params[28]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 29, sizeof (cl_uint), device_param->kernel_params[29]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 30, sizeof (cl_uint), device_param->kernel_params[30]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 31, sizeof (cl_uint), device_param->kernel_params[31]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 32, sizeof (cl_uint), device_param->kernel_params[32]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 33, sizeof (cl_uint), device_param->kernel_params[33]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, 34, sizeof (cl_uint), device_param->kernel_params[34]); if (CL_rc == -1) return -1; + for (u32 i = 0; i <= 23; i++) + { + CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, i, sizeof (cl_mem), device_param->kernel_params[i]); + + if (CL_rc == -1) return -1; + } + + for (u32 i = 24; i <= 34; i++) + { + CL_rc = hc_clSetKernelArg (hashcat_ctx, kernel, i, sizeof (cl_uint), device_param->kernel_params[i]); + + if (CL_rc == -1) return -1; + } cl_event event; @@ -3653,6 +3655,14 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) size_t size_bfs = KERNEL_BFS * sizeof (bf_t); size_t size_tm = 32 * sizeof (bs_word_t); + size_t size_st_digests = 1 * hashconfig->dgst_size; + size_t size_st_salts = 1 * sizeof (salt_t); + size_t size_st_esalts = 1 * hashconfig->esalt_size; + + device_param->size_st_digests = size_st_digests; + device_param->size_st_salts = size_st_salts; + device_param->size_st_esalts = size_st_esalts; + // scryptV stuff u32 scrypt_tmp_size = 0; @@ -3760,7 +3770,10 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) + size_salts + size_shown + size_tm - + size_tmps; + + size_tmps + + size_st_digests + + size_st_salts + + size_st_esalts; bool not_enough_memory = true; @@ -3891,7 +3904,10 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) + size_scrypt4 + size_shown + size_tm - + size_tmps; + + size_tmps + + size_st_digests + + size_st_salts + + size_st_esalts; if (size_total > device_param->device_global_mem) memory_limit_hit = 1; @@ -4526,18 +4542,19 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_WRITE, size_scrypt4, NULL, &device_param->d_scryptV1_buf); if (CL_rc == -1) return -1; CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_WRITE, size_scrypt4, NULL, &device_param->d_scryptV2_buf); if (CL_rc == -1) return -1; CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_WRITE, size_scrypt4, NULL, &device_param->d_scryptV3_buf); if (CL_rc == -1) return -1; - - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_a, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_a, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_b, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_b, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_c, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_c, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_d, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_d, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_a, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_a, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_b, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_b, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_c, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_c, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_d, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_d, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_digests_buf, CL_TRUE, 0, size_digests, hashes->digests_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_digests_shown, CL_TRUE, 0, size_shown, hashes->digests_shown, 0, NULL, NULL); if (CL_rc == -1) return -1; - CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_salt_bufs, CL_TRUE, 0, size_salts, hashes->salts_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_ONLY, size_st_digests, NULL, &device_param->d_st_digests_buf); if (CL_rc == -1) return -1; + CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_ONLY, size_st_salts, NULL, &device_param->d_st_salts_buf); if (CL_rc == -1) return -1; + + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_a, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_a, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_b, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_b, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_c, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_c, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s1_d, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s1_d, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_a, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_a, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_b, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_b, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_c, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_c, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bitmap_s2_d, CL_TRUE, 0, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_s2_d, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_digests_buf, CL_TRUE, 0, size_digests, hashes->digests_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_salt_bufs, CL_TRUE, 0, size_salts, hashes->salts_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; /** * special buffers @@ -4577,6 +4594,23 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) if (CL_rc == -1) return -1; } + if (hashconfig->st_hash != NULL) + { + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_st_digests_buf, CL_TRUE, 0, size_st_digests, hashes->st_digests_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_st_salts_buf, CL_TRUE, 0, size_st_salts, hashes->st_salts_buf, 0, NULL, NULL); if (CL_rc == -1) return -1; + + if (size_esalts) + { + CL_rc = hc_clCreateBuffer (hashcat_ctx, device_param->context, CL_MEM_READ_ONLY, size_st_esalts, NULL, &device_param->d_st_esalts_buf); + + if (CL_rc == -1) return -1; + + CL_rc = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_st_esalts_buf, CL_TRUE, 0, size_st_esalts, hashes->st_esalts_buf, 0, NULL, NULL); + + if (CL_rc == -1) return -1; + } + } + /** * main host data */ @@ -4891,30 +4925,6 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) if (CL_rc == -1) return -1; - for (u32 i = 0; i <= 23; i++) - { - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel1, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel2, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel3, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - - if (hashconfig->opts_type & OPTS_TYPE_HOOK12) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel12, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_HOOK23) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel23, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_INIT2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_init2, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_LOOP2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_loop2, i, sizeof (cl_mem), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - } - - for (u32 i = 24; i <= 34; i++) - { - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel1, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel2, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel3, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; - - if (hashconfig->opts_type & OPTS_TYPE_HOOK12) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel12, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_HOOK23) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel23, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_INIT2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_init2, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - if (hashconfig->opts_type & OPTS_TYPE_LOOP2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_loop2, i, sizeof (cl_uint), device_param->kernel_params[i]); if (CL_rc == -1) return -1; } - } - // GPU memset CL_rc = hc_clCreateKernel (hashcat_ctx, device_param->program, "gpu_memset", &device_param->kernel_memset); @@ -5018,12 +5028,13 @@ int opencl_session_begin (hashcat_ctx_t *hashcat_ctx) // zero some data buffers - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_buf, size_pws); if (CL_rc == -1) return -1; - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_amp_buf, size_pws); if (CL_rc == -1) return -1; - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_tmps, size_tmps); if (CL_rc == -1) return -1; - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_hooks, size_hooks); if (CL_rc == -1) return -1; - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_plain_bufs, size_plains); if (CL_rc == -1) return -1; - CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_result, size_results); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_buf, device_param->size_pws); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_amp_buf, device_param->size_pws); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_tmps, device_param->size_tmps); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_hooks, device_param->size_hooks); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_plain_bufs, device_param->size_plains); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_digests_shown, device_param->size_shown); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_result, device_param->size_results); if (CL_rc == -1) return -1; /** * special buffers @@ -5171,6 +5182,9 @@ void opencl_session_destroy (hashcat_ctx_t *hashcat_ctx) if (device_param->d_root_css_buf) hc_clReleaseMemObject (hashcat_ctx, device_param->d_root_css_buf); if (device_param->d_markov_css_buf) hc_clReleaseMemObject (hashcat_ctx, device_param->d_markov_css_buf); if (device_param->d_tm_c) hc_clReleaseMemObject (hashcat_ctx, device_param->d_tm_c); + if (device_param->d_st_digests_buf) hc_clReleaseMemObject (hashcat_ctx, device_param->d_st_digests_buf); + if (device_param->d_st_salts_buf) hc_clReleaseMemObject (hashcat_ctx, device_param->d_st_salts_buf); + if (device_param->d_st_esalts_buf) hc_clReleaseMemObject (hashcat_ctx, device_param->d_st_esalts_buf); if (device_param->kernel1) hc_clReleaseKernel (hashcat_ctx, device_param->kernel1); if (device_param->kernel12) hc_clReleaseKernel (hashcat_ctx, device_param->kernel12); @@ -5229,6 +5243,9 @@ void opencl_session_destroy (hashcat_ctx_t *hashcat_ctx) device_param->d_root_css_buf = NULL; device_param->d_markov_css_buf = NULL; device_param->d_tm_c = NULL; + device_param->d_st_digests_buf = NULL; + device_param->d_st_salts_buf = NULL; + device_param->d_st_esalts_buf = NULL; device_param->kernel1 = NULL; device_param->kernel12 = NULL; device_param->kernel2 = NULL; @@ -5293,7 +5310,7 @@ void opencl_session_reset (hashcat_ctx_t *hashcat_ctx) int opencl_session_update_combinator (hashcat_ctx_t *hashcat_ctx) { combinator_ctx_t *combinator_ctx = hashcat_ctx->combinator_ctx; - hashconfig_t *hashconfig = hashcat_ctx->hashconfig; + //hashconfig_t *hashconfig = hashcat_ctx->hashconfig; opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; if (opencl_ctx->enabled == false) return 0; @@ -5308,6 +5325,7 @@ int opencl_session_update_combinator (hashcat_ctx_t *hashcat_ctx) device_param->kernel_params_buf32[33] = combinator_ctx->combs_mode; + /* int CL_rc; CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel1, 33, sizeof (cl_uint), device_param->kernel_params[33]); if (CL_rc == -1) return -1; @@ -5318,17 +5336,20 @@ int opencl_session_update_combinator (hashcat_ctx_t *hashcat_ctx) if (hashconfig->opts_type & OPTS_TYPE_HOOK23) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel23, 33, sizeof (cl_uint), device_param->kernel_params[33]); if (CL_rc == -1) return -1; } if (hashconfig->opts_type & OPTS_TYPE_INIT2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_init2, 33, sizeof (cl_uint), device_param->kernel_params[33]); if (CL_rc == -1) return -1; } if (hashconfig->opts_type & OPTS_TYPE_LOOP2) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_loop2, 33, sizeof (cl_uint), device_param->kernel_params[33]); if (CL_rc == -1) return -1; } + */ // kernel_params_amp device_param->kernel_params_amp_buf32[5] = combinator_ctx->combs_mode; + /* if (hashconfig->attack_exec == ATTACK_EXEC_OUTSIDE_KERNEL) { CL_rc = hc_clSetKernelArg (hashcat_ctx, device_param->kernel_amp, 5, sizeof (cl_uint), device_param->kernel_params_amp[5]); if (CL_rc == -1) return -1; } + */ } return 0; diff --git a/src/selftest.c b/src/selftest.c new file mode 100644 index 000000000..458be273a --- /dev/null +++ b/src/selftest.c @@ -0,0 +1,454 @@ +/** + * Author......: See docs/credits.txt + * License.....: MIT + */ + +#include "common.h" +#include "types.h" +#include "event.h" +#include "bitops.h" +#include "convert.h" +#include "opencl.h" +#include "interface.h" +#include "thread.h" +#include "selftest.h" + +static int selftest (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param) +{ + hashconfig_t *hashconfig = hashcat_ctx->hashconfig; + hashes_t *hashes = hashcat_ctx->hashes; + status_ctx_t *status_ctx = hashcat_ctx->status_ctx; + user_options_extra_t *user_options_extra = hashcat_ctx->user_options_extra; + + cl_int CL_err; + + int CL_rc; + + if (hashconfig->st_hash == NULL) return 0; + + // init : replace hashes with selftest hash + + device_param->kernel_params[15] = &device_param->d_st_digests_buf; + device_param->kernel_params[17] = &device_param->d_st_salts_buf; + device_param->kernel_params[18] = &device_param->d_st_esalts_buf; + + device_param->kernel_params_buf32[31] = 1; + device_param->kernel_params_buf32[32] = 0; + + const u32 kernel_threads_by_wgs_kernel1_sav = device_param->kernel_threads_by_wgs_kernel1; + const u32 kernel_threads_by_wgs_kernel12_sav = device_param->kernel_threads_by_wgs_kernel12; + const u32 kernel_threads_by_wgs_kernel2_sav = device_param->kernel_threads_by_wgs_kernel2; + const u32 kernel_threads_by_wgs_kernel23_sav = device_param->kernel_threads_by_wgs_kernel23; + const u32 kernel_threads_by_wgs_kernel3_sav = device_param->kernel_threads_by_wgs_kernel3; + const u32 kernel_threads_by_wgs_kernel_init2_sav = device_param->kernel_threads_by_wgs_kernel_init2; + const u32 kernel_threads_by_wgs_kernel_loop2_sav = device_param->kernel_threads_by_wgs_kernel_loop2; + + if (hashconfig_forced_kernel_threads (hashcat_ctx) == 0) + { + device_param->kernel_threads_by_wgs_kernel1 = 1; + device_param->kernel_threads_by_wgs_kernel12 = 1; + device_param->kernel_threads_by_wgs_kernel2 = 1; + device_param->kernel_threads_by_wgs_kernel23 = 1; + device_param->kernel_threads_by_wgs_kernel3 = 1; + device_param->kernel_threads_by_wgs_kernel_init2 = 1; + device_param->kernel_threads_by_wgs_kernel_loop2 = 1; + } + + // password : move the known password into a fake buffer + + u32 highest_pw_len = 0; + + if (hashconfig->attack_exec == ATTACK_EXEC_INSIDE_KERNEL) + { + if (user_options_extra->attack_kern == ATTACK_KERN_STRAIGHT) + { + device_param->kernel_params_buf32[30] = 1; + + pw_t pw; memset (&pw, 0, sizeof (pw)); + + char *pw_ptr = (char *) &pw.i; + + int pw_len = strlen (hashconfig->st_pass); + + memcpy (pw_ptr, hashconfig->st_pass, pw_len); + + pw.pw_len = pw_len; + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_pws_buf, CL_TRUE, 0, 1 * sizeof (pw_t), &pw, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + } + else if (user_options_extra->attack_kern == ATTACK_KERN_COMBI) + { + device_param->kernel_params_buf32[30] = 1; + device_param->kernel_params_buf32[33] = COMBINATOR_MODE_BASE_LEFT; + + pw_t pw; memset (&pw, 0, sizeof (pw)); + + char *pw_ptr = (char *) &pw.i; + + int pw_len = strlen (hashconfig->st_pass); + + memcpy (pw_ptr, hashconfig->st_pass, pw_len - 1); + + pw.pw_len = pw_len - 1; + + comb_t comb; memset (&comb, 0, sizeof (comb)); + + char *comb_ptr = (char *) &comb.i; + + memcpy (comb_ptr, hashconfig->st_pass + pw_len - 1, 1); + + comb.pw_len = 1; + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADD01) + { + comb_ptr[comb.pw_len] = 0x01; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADD80) + { + comb_ptr[comb.pw_len] = 0x80; + } + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_combs_c, CL_TRUE, 0, 1 * sizeof (comb_t), &comb, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_pws_buf, CL_TRUE, 0, 1 * sizeof (pw_t), &pw, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + } + else if (user_options_extra->attack_kern == ATTACK_KERN_BF) + { + device_param->kernel_params_buf32[30] = 1; + + if (hashconfig->opts_type & OPTS_TYPE_PT_BITSLICE) + { + pw_t pw; memset (&pw, 0, sizeof (pw)); + + char *pw_ptr = (char *) &pw.i; + + int pw_len = strlen (hashconfig->st_pass); + + memcpy (pw_ptr, hashconfig->st_pass, pw_len); + + if (hashconfig->opts_type & OPTS_TYPE_PT_UPPER) + { + uppercase ((u8 *) pw_ptr, pw_len); + } + + pw.pw_len = pw_len; + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_pws_buf, CL_TRUE, 0, 1 * sizeof (pw_t), &pw, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + } + else + { + bf_t bf; memset (&bf, 0, sizeof (bf)); + + char *bf_ptr = (char *) &bf.i; + + memcpy (bf_ptr, hashconfig->st_pass, 1); + + if (hashconfig->opts_type & OPTS_TYPE_PT_UTF16LE) + { + memset (bf_ptr, 0, 4); + + for (int i = 0, j = 0; i < 1; i += 1, j += 2) + { + bf_ptr[j + 0] = hashconfig->st_pass[i]; + bf_ptr[j + 1] = 0; + } + } + else if (hashconfig->opts_type & OPTS_TYPE_PT_UTF16BE) + { + memset (bf_ptr, 0, 4); + + for (int i = 0, j = 0; i < 1; i += 1, j += 2) + { + bf_ptr[j + 0] = 0; + bf_ptr[j + 1] = hashconfig->st_pass[i]; + } + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_UPPER) + { + uppercase ((u8 *) bf_ptr, 4); + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_GENERATE_BE) + { + bf.i = byte_swap_32 (bf.i); + } + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_bfs_c, CL_TRUE, 0, 1 * sizeof (bf_t), &bf, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + + pw_t pw; memset (&pw, 0, sizeof (pw)); + + char *pw_ptr = (char *) &pw.i; + + int pw_len = strlen (hashconfig->st_pass); + + memcpy (pw_ptr + 1, hashconfig->st_pass + 1, pw_len - 1); + + int new_pass_len = pw_len; + + if (hashconfig->opts_type & OPTS_TYPE_PT_UTF16LE) + { + memset (pw_ptr, 0, pw_len); + + for (int i = 1, j = 2; i < new_pass_len; i += 1, j += 2) + { + pw_ptr[j + 0] = hashconfig->st_pass[i]; + pw_ptr[j + 1] = 0; + } + + new_pass_len *= 2; + } + else if (hashconfig->opts_type & OPTS_TYPE_PT_UTF16BE) + { + memset (pw_ptr, 0, pw_len); + + for (int i = 1, j = 2; i < new_pass_len; i += 1, j += 2) + { + pw_ptr[j + 0] = 0; + pw_ptr[j + 1] = hashconfig->st_pass[i]; + } + + new_pass_len *= 2; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_UPPER) + { + uppercase ((u8 *) pw_ptr, new_pass_len); + } + + if (hashconfig->opti_type & OPTI_TYPE_SINGLE_HASH) + { + if (hashconfig->opti_type & OPTI_TYPE_APPENDED_SALT) + { + memcpy (pw_ptr + new_pass_len, (char *) hashes->st_salts_buf[0].salt_buf, 64 - new_pass_len); + + new_pass_len += hashes->st_salts_buf[0].salt_len; + } + } + + pw.pw_len = new_pass_len; + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADD01) + { + pw_ptr[new_pass_len] = 0x01; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADD80) + { + pw_ptr[new_pass_len] = 0x80; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADDBITS14) + { + pw.i[14] = new_pass_len * 8; + pw.i[15] = 0; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_ADDBITS15) + { + pw.i[14] = 0; + pw.i[15] = new_pass_len * 8; + } + + if (hashconfig->opts_type & OPTS_TYPE_PT_GENERATE_BE) + { + for (int i = 0; i < 14; i++) pw.i[i] = byte_swap_32 (pw.i[i]); + } + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_pws_buf, CL_TRUE, 0, 1 * sizeof (pw_t), &pw, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + + highest_pw_len = pw.pw_len; + } + } + } + else + { + pw_t pw; memset (&pw, 0, sizeof (pw)); + + char *pw_ptr = (char *) &pw.i; + + int pw_len = strlen (hashconfig->st_pass); + + memcpy (pw_ptr, hashconfig->st_pass, pw_len); + + pw.pw_len = pw_len; + + CL_err = hc_clEnqueueWriteBuffer (hashcat_ctx, device_param->command_queue, device_param->d_pws_amp_buf, CL_TRUE, 0, 1 * sizeof (pw_t), &pw, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + } + + // main : run the kernel + + if (hashconfig->attack_exec == ATTACK_EXEC_INSIDE_KERNEL) + { + if (highest_pw_len < 16) + { + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_1, 1, false, 0); + + if (CL_rc == -1) return -1; + } + else if (highest_pw_len < 32) + { + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_2, 1, false, 0); + + if (CL_rc == -1) return -1; + } + else + { + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_3, 1, false, 0); + + if (CL_rc == -1) return -1; + } + } + else + { + // missing handling hooks + + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_1, 1, false, 0); + + if (CL_rc == -1) return -1; + + const u32 salt_pos = 0; + + salt_t *salt_buf = &hashes->st_salts_buf[salt_pos]; + + const u32 kernel_loops_fixed = hashconfig_get_kernel_loops (hashcat_ctx); + + const u32 loop_step = (kernel_loops_fixed) ? kernel_loops_fixed : 1; + + const u32 iter = salt_buf->salt_iter; + + for (u32 loop_pos = 0; loop_pos < iter; loop_pos += loop_step) + { + u32 loop_left = iter - loop_pos; + + loop_left = MIN (loop_left, loop_step); + + device_param->kernel_params_buf32[28] = loop_pos; + device_param->kernel_params_buf32[29] = loop_left; + + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_2, 1, false, 0); + + if (CL_rc == -1) return -1; + } + + CL_rc = run_kernel (hashcat_ctx, device_param, KERN_RUN_3, 1, false, 0); + + if (CL_rc == -1) return -1; + } + + // check : check if cracked + + u32 num_cracked; + + CL_err = hc_clEnqueueReadBuffer (hashcat_ctx, device_param->command_queue, device_param->d_result, CL_TRUE, 0, sizeof (u32), &num_cracked, 0, NULL, NULL); + + if (CL_err != CL_SUCCESS) return -1; + + // finish : cleanup and restore + + device_param->kernel_threads_by_wgs_kernel1 = kernel_threads_by_wgs_kernel1_sav; + device_param->kernel_threads_by_wgs_kernel12 = kernel_threads_by_wgs_kernel12_sav; + device_param->kernel_threads_by_wgs_kernel2 = kernel_threads_by_wgs_kernel2_sav; + device_param->kernel_threads_by_wgs_kernel23 = kernel_threads_by_wgs_kernel23_sav; + device_param->kernel_threads_by_wgs_kernel3 = kernel_threads_by_wgs_kernel3_sav; + device_param->kernel_threads_by_wgs_kernel_init2 = kernel_threads_by_wgs_kernel_init2_sav; + device_param->kernel_threads_by_wgs_kernel_loop2 = kernel_threads_by_wgs_kernel_loop2_sav; + + device_param->kernel_params_buf32[27] = 0; + device_param->kernel_params_buf32[28] = 0; + device_param->kernel_params_buf32[29] = 0; + device_param->kernel_params_buf32[30] = 0; + device_param->kernel_params_buf32[31] = 0; + device_param->kernel_params_buf32[32] = 0; + device_param->kernel_params_buf32[33] = 0; + device_param->kernel_params_buf32[34] = 0; + + device_param->kernel_params[15] = &device_param->d_digests_buf; + device_param->kernel_params[17] = &device_param->d_salt_bufs; + device_param->kernel_params[18] = &device_param->d_esalt_bufs; + + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_buf, device_param->size_pws); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_pws_amp_buf, device_param->size_pws); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_tmps, device_param->size_tmps); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_hooks, device_param->size_hooks); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_plain_bufs, device_param->size_plains); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_digests_shown, device_param->size_shown); if (CL_rc == -1) return -1; + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_result, device_param->size_results); if (CL_rc == -1) return -1; + + if (user_options_extra->attack_kern == ATTACK_KERN_STRAIGHT) + { + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_rules_c, device_param->size_rules_c); + + if (CL_rc == -1) return -1; + } + else if (user_options_extra->attack_kern == ATTACK_KERN_COMBI) + { + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_combs_c, device_param->size_combs); + + if (CL_rc == -1) return -1; + } + else if (user_options_extra->attack_kern == ATTACK_KERN_BF) + { + CL_rc = run_kernel_bzero (hashcat_ctx, device_param, device_param->d_bfs_c, device_param->size_bfs); + + if (CL_rc == -1) return -1; + } + + // check return + + if (num_cracked == 0) + { + hc_thread_mutex_lock (status_ctx->mux_display); + + event_log_error (hashcat_ctx, "* Device #%u: ATTENTION! OpenCL kernel self-test failed.", device_param->device_id + 1); + + event_log_warning (hashcat_ctx, "Your device driver installation is probably broken."); + event_log_warning (hashcat_ctx, "See also: https://hashcat.net/faq/wrongdriver"); + event_log_warning (hashcat_ctx, NULL); + + hc_thread_mutex_unlock (status_ctx->mux_display); + + return -1; + } + + return 0; +} + +void *thread_selftest (void *p) +{ + thread_param_t *thread_param = (thread_param_t *) p; + + hashcat_ctx_t *hashcat_ctx = thread_param->hashcat_ctx; + + opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; + + if (opencl_ctx->enabled == false) return NULL; + + hc_device_param_t *device_param = opencl_ctx->devices_param + thread_param->tid; + + if (device_param->skipped == true) return NULL; + + const int rc_selftest = selftest (hashcat_ctx, device_param); + + if (rc_selftest == -1) + { + // we should do something here, tell hashcat main that autotune failed to abort + } + + return NULL; +} diff --git a/src/status.c b/src/status.c index 0497641f6..3070b2a6d 100644 --- a/src/status.c +++ b/src/status.c @@ -21,16 +21,17 @@ static const char ST_0000[] = "Initializing"; static const char ST_0001[] = "Autotuning"; -static const char ST_0002[] = "Running"; -static const char ST_0003[] = "Paused"; -static const char ST_0004[] = "Exhausted"; -static const char ST_0005[] = "Cracked"; -static const char ST_0006[] = "Aborted"; -static const char ST_0007[] = "Quit"; -static const char ST_0008[] = "Bypass"; -static const char ST_0009[] = "Aborted (Checkpoint)"; -static const char ST_0010[] = "Aborted (Runtime)"; -static const char ST_0011[] = "Running (Checkpoint Quit requested)"; +static const char ST_0002[] = "Selftest"; +static const char ST_0003[] = "Running"; +static const char ST_0004[] = "Paused"; +static const char ST_0005[] = "Exhausted"; +static const char ST_0006[] = "Cracked"; +static const char ST_0007[] = "Aborted"; +static const char ST_0008[] = "Quit"; +static const char ST_0009[] = "Bypass"; +static const char ST_0010[] = "Aborted (Checkpoint)"; +static const char ST_0011[] = "Aborted (Runtime)"; +static const char ST_0012[] = "Running (Checkpoint Quit requested)"; static const char ST_9999[] = "Unknown! Bug!"; static const char UNITS[7] = { ' ', 'k', 'M', 'G', 'T', 'P', 'E' }; @@ -204,7 +205,7 @@ char *status_get_status_string (const hashcat_ctx_t *hashcat_ctx) { if (status_ctx->checkpoint_shutdown == true) { - return ((char *) ST_0011); + return ((char *) ST_0012); } } @@ -212,15 +213,16 @@ char *status_get_status_string (const hashcat_ctx_t *hashcat_ctx) { case STATUS_INIT: return ((char *) ST_0000); case STATUS_AUTOTUNE: return ((char *) ST_0001); - case STATUS_RUNNING: return ((char *) ST_0002); - case STATUS_PAUSED: return ((char *) ST_0003); - case STATUS_EXHAUSTED: return ((char *) ST_0004); - case STATUS_CRACKED: return ((char *) ST_0005); - case STATUS_ABORTED: return ((char *) ST_0006); - case STATUS_QUIT: return ((char *) ST_0007); - case STATUS_BYPASS: return ((char *) ST_0008); - case STATUS_ABORTED_CHECKPOINT: return ((char *) ST_0009); - case STATUS_ABORTED_RUNTIME: return ((char *) ST_0010); + case STATUS_SELFTEST: return ((char *) ST_0002); + case STATUS_RUNNING: return ((char *) ST_0003); + case STATUS_PAUSED: return ((char *) ST_0004); + case STATUS_EXHAUSTED: return ((char *) ST_0005); + case STATUS_CRACKED: return ((char *) ST_0006); + case STATUS_ABORTED: return ((char *) ST_0007); + case STATUS_QUIT: return ((char *) ST_0008); + case STATUS_BYPASS: return ((char *) ST_0009); + case STATUS_ABORTED_CHECKPOINT: return ((char *) ST_0010); + case STATUS_ABORTED_RUNTIME: return ((char *) ST_0011); } return ((char *) ST_9999);