diff --git a/docs/changes.txt b/docs/changes.txt index 262be5028..6604d68f1 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -19,6 +19,7 @@ - Fixed race condition resulting in out of memory error on startup if multiple hashcat instances are started at the same time - Fixed unexpected non-unique salts in multi-hash cracking in Bitcoin/Litecoin wallet.dat module which lead to false negatives - Fixed rare case of misalignment of the status prompt when other user warnings are shown within the hashcat output +- Fixed password reassembling for cracked hashes on host for slow hashes in optimized mode that are longer than 32 characters ## ## Improvements diff --git a/src/outfile.c b/src/outfile.c index ca58aa267..f68a9f75e 100644 --- a/src/outfile.c +++ b/src/outfile.c @@ -155,12 +155,24 @@ int build_plain (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, pl if (hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL) { - for (int i = 0; i < 8; i++) + if ((user_options->rp_files_cnt == 0) || (user_options->rp_gen == 0)) { - plain_buf[i] = pw.i[i]; + for (int i = 0; i < 14; i++) + { + plain_buf[i] = pw.i[i]; + } + + plain_len = pw.pw_len; } + else + { + for (int i = 0; i < 8; i++) + { + plain_buf[i] = pw.i[i]; + } - plain_len = apply_rules_optimized (straight_ctx->kernel_rules_buf[off].cmds, &plain_buf[0], &plain_buf[4], pw.pw_len); + plain_len = apply_rules_optimized (straight_ctx->kernel_rules_buf[off].cmds, &plain_buf[0], &plain_buf[4], pw.pw_len); + } } else {