1
mirror of https://github.com/hashcat/hashcat synced 2024-11-24 14:27:14 +01:00

Merge pull request #3236 from philsmd/philsmd-stdout-a7-O

fixes #3201: fixed -O with -a 7 in --stdout mode
This commit is contained in:
Jens Steube 2022-03-23 19:01:19 +01:00 committed by GitHub
commit 781ceb1df0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 1 deletions

View File

@ -44,6 +44,7 @@
- Fixed --hash-info example password output: force uppercase if OPTS_TYPE_PT_UPPER is set
- Fixed method of how OPTS_TYPE_AUX* kernels are called in an association attack, for example in WPA/WPA2 kernel
- Fixed missing option flag OPTS_TYPE_SUGGEST_KG for hash-mode 11600 to inform the user about possible false positives in this mode
- Fixed optimized (-O) candidate generation with --stdout and -a 7
- Fixed password limit in optimized kernel for hash-mode 10700
- Fixed undefined function call to hc_byte_perm_S() in hash-mode 17010 on non-CUDA compute devices
- Fixed Unit Test early exit on luks test file download/extract failure

View File

@ -130,7 +130,7 @@ int process_stdout (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
}
}
}
else if (user_options->attack_mode == ATTACK_MODE_HYBRID2)
else if ((user_options->attack_mode == ATTACK_MODE_HYBRID2) && ((hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL) == 0))
{
for (u64 gidvid = 0; gidvid < pws_cnt; gidvid++)
{
@ -302,6 +302,36 @@ int process_stdout (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
}
}
}
else if ((user_options->attack_mode == ATTACK_MODE_HYBRID2) && (hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL))
{
while (pw_idx <= pw_idx_last)
{
char *pw = (char *) (pws_comp_blk + (pw_idx->off - off_blk));
u32 pw_len = (pw_idx->len);
pw_idx++;
for (u32 il_pos = 0; il_pos < il_cnt; il_pos++)
{
u64 off = device_param->kernel_params_mp_buf64[3] + il_pos;
u32 start = 0;
u32 stop = device_param->kernel_params_mp_buf32[4];
sp_exec (off, (char *) plain_ptr, mask_ctx->root_css_buf, mask_ctx->markov_css_buf, start, start + stop);
plain_len = stop;
memcpy (plain_ptr + plain_len, pw, pw_len);
plain_len += pw_len;
if (plain_len > hashconfig->pw_max) plain_len = hashconfig->pw_max;
out_push (&out, plain_ptr, plain_len);
}
}
}
gidvid_blk += blk_cnt; // prepare for next block
}