New Attack-Mode: Association Attack. Like JtR's single mode. Very early

stage. See hashcat Forum for detailed writeup.
This commit is contained in:
Jens Steube
2020-09-29 15:56:32 +02:00
parent 5b11cde49c
commit 04d5e5a119
951 changed files with 14977 additions and 14551 deletions

View File

@@ -173,8 +173,8 @@ KERNEL_FQ void m23700_loop (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
u32 salt_buf[2];
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
salt_buf[0] = salt_bufs[SALT_POS].salt_buf[0];
salt_buf[1] = salt_bufs[SALT_POS].salt_buf[1];
const u32 salt_len = 8;
@@ -503,8 +503,8 @@ KERNEL_FQ void m23700_loop (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
u32 salt_buf[2];
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
salt_buf[0] = salt_bufs[SALT_POS].salt_buf[0];
salt_buf[1] = salt_bufs[SALT_POS].salt_buf[1];
const u32 salt_len = 8;
@@ -817,8 +817,8 @@ KERNEL_FQ void m23700_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
u32 salt_buf[2];
salt_buf[0] = salt_bufs[salt_pos].salt_buf[0];
salt_buf[1] = salt_bufs[salt_pos].salt_buf[1];
salt_buf[0] = salt_bufs[SALT_POS].salt_buf[0];
salt_buf[1] = salt_bufs[SALT_POS].salt_buf[1];
//const u32 salt_len = 8;
@@ -883,8 +883,8 @@ KERNEL_FQ void m23700_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
iv[2] = hc_swap32_S (iv[2]);
iv[3] = hc_swap32_S (iv[3]);
const u32 pack_size = esalt_bufs[digests_offset].pack_size;
const u32 unpack_size = esalt_bufs[digests_offset].unpack_size;
const u32 pack_size = esalt_bufs[DIGESTS_OFFSET].pack_size;
const u32 unpack_size = esalt_bufs[DIGESTS_OFFSET].unpack_size;
if (pack_size > unpack_size) // could be aligned
{
@@ -894,10 +894,10 @@ KERNEL_FQ void m23700_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
u32 last_block_encrypted[4];
last_block_encrypted[0] = esalt_bufs[digests_offset].data[pack_size_elements - 4 + 0];
last_block_encrypted[1] = esalt_bufs[digests_offset].data[pack_size_elements - 4 + 1];
last_block_encrypted[2] = esalt_bufs[digests_offset].data[pack_size_elements - 4 + 2];
last_block_encrypted[3] = esalt_bufs[digests_offset].data[pack_size_elements - 4 + 3];
last_block_encrypted[0] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 4 + 0];
last_block_encrypted[1] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 4 + 1];
last_block_encrypted[2] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 4 + 2];
last_block_encrypted[3] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 4 + 3];
u32 last_block_decrypted[4];
@@ -905,10 +905,10 @@ KERNEL_FQ void m23700_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
u32 last_block_iv[4];
last_block_iv[0] = esalt_bufs[digests_offset].data[pack_size_elements - 8 + 0];
last_block_iv[1] = esalt_bufs[digests_offset].data[pack_size_elements - 8 + 1];
last_block_iv[2] = esalt_bufs[digests_offset].data[pack_size_elements - 8 + 2];
last_block_iv[3] = esalt_bufs[digests_offset].data[pack_size_elements - 8 + 3];
last_block_iv[0] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 8 + 0];
last_block_iv[1] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 8 + 1];
last_block_iv[2] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 8 + 2];
last_block_iv[3] = esalt_bufs[DIGESTS_OFFSET].data[pack_size_elements - 8 + 3];
last_block_decrypted[0] ^= last_block_iv[0];
last_block_decrypted[1] ^= last_block_iv[1];
@@ -927,10 +927,10 @@ KERNEL_FQ void m23700_comp (KERN_ATTR_TMPS_ESALT (rar3_tmp_t, rar3_t))
{
u32 data[4];
data[0] = esalt_bufs[digests_offset].data[j + 0];
data[1] = esalt_bufs[digests_offset].data[j + 1];
data[2] = esalt_bufs[digests_offset].data[j + 2];
data[3] = esalt_bufs[digests_offset].data[j + 3];
data[0] = esalt_bufs[DIGESTS_OFFSET].data[j + 0];
data[1] = esalt_bufs[DIGESTS_OFFSET].data[j + 1];
data[2] = esalt_bufs[DIGESTS_OFFSET].data[j + 2];
data[3] = esalt_bufs[DIGESTS_OFFSET].data[j + 3];
u32 out[4];