mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-20 05:28:19 +00:00
Fixed bug in module_constraints and kernel for hash-mode 7800
This commit is contained in:
parent
5af377ac4f
commit
dbd41ca750
@ -62,16 +62,12 @@ DECLSPEC void m07800m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
* salt
|
||||
*/
|
||||
|
||||
u32 salt_buf[8];
|
||||
u32 salt_buf[4];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[7]);
|
||||
|
||||
const u32 salt_len = salt_bufs[SALT_POS_HOST].salt_len;
|
||||
|
||||
@ -84,10 +80,10 @@ DECLSPEC void m07800m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
s0[1] = salt_buf[1];
|
||||
s0[2] = salt_buf[2];
|
||||
s0[3] = salt_buf[3];
|
||||
s1[0] = salt_buf[4];
|
||||
s1[1] = salt_buf[5];
|
||||
s1[2] = salt_buf[6];
|
||||
s1[3] = salt_buf[7];
|
||||
s1[0] = 0;
|
||||
s1[1] = 0;
|
||||
s1[2] = 0;
|
||||
s1[3] = 0;
|
||||
s2[0] = 0;
|
||||
s2[1] = 0;
|
||||
s2[2] = 0;
|
||||
@ -206,8 +202,8 @@ DECLSPEC void m07800m (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[ 8] = w2[0];
|
||||
final[ 9] = w2[1];
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
@ -279,16 +275,12 @@ DECLSPEC void m07800s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
* salt
|
||||
*/
|
||||
|
||||
u32 salt_buf[8];
|
||||
u32 salt_buf[4];
|
||||
|
||||
salt_buf[0] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[0]);
|
||||
salt_buf[1] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[1]);
|
||||
salt_buf[2] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[2]);
|
||||
salt_buf[3] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[3]);
|
||||
salt_buf[4] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[4]);
|
||||
salt_buf[5] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[5]);
|
||||
salt_buf[6] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[6]);
|
||||
salt_buf[7] = hc_swap32_S (salt_bufs[SALT_POS_HOST].salt_buf[7]);
|
||||
|
||||
const u32 salt_len = salt_bufs[SALT_POS_HOST].salt_len;
|
||||
|
||||
@ -301,10 +293,10 @@ DECLSPEC void m07800s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
s0[1] = salt_buf[1];
|
||||
s0[2] = salt_buf[2];
|
||||
s0[3] = salt_buf[3];
|
||||
s1[0] = salt_buf[4];
|
||||
s1[1] = salt_buf[5];
|
||||
s1[2] = salt_buf[6];
|
||||
s1[3] = salt_buf[7];
|
||||
s1[0] = 0;
|
||||
s1[1] = 0;
|
||||
s1[2] = 0;
|
||||
s1[3] = 0;
|
||||
s2[0] = 0;
|
||||
s2[1] = 0;
|
||||
s2[2] = 0;
|
||||
@ -435,8 +427,8 @@ DECLSPEC void m07800s (PRIVATE_AS u32 *w0, PRIVATE_AS u32 *w1, PRIVATE_AS u32 *w
|
||||
final[ 5] = w1[1];
|
||||
final[ 6] = w1[2];
|
||||
final[ 7] = w1[3];
|
||||
final[ 8] = 0;
|
||||
final[ 9] = 0;
|
||||
final[ 8] = w2[0];
|
||||
final[ 9] = w2[1];
|
||||
final[10] = 0;
|
||||
final[11] = 0;
|
||||
final[12] = 0;
|
||||
@ -514,8 +506,6 @@ KERNEL_FQ KERNEL_FA void m07800_m04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -569,8 +559,6 @@ KERNEL_FQ KERNEL_FA void m07800_m08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -610,6 +598,55 @@ KERNEL_FQ KERNEL_FA void m07800_m08 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ KERNEL_FA void m07800_m16 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
if (gid >= GID_CNT) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
w0[1] = pws[gid].i[ 1];
|
||||
w0[2] = pws[gid].i[ 2];
|
||||
w0[3] = pws[gid].i[ 3];
|
||||
|
||||
u32 w1[4];
|
||||
|
||||
w1[0] = pws[gid].i[ 4];
|
||||
w1[1] = pws[gid].i[ 5];
|
||||
w1[2] = pws[gid].i[ 6];
|
||||
w1[3] = pws[gid].i[ 7];
|
||||
|
||||
u32 w2[4];
|
||||
|
||||
w2[0] = pws[gid].i[ 8];
|
||||
w2[1] = pws[gid].i[ 9];
|
||||
w2[2] = pws[gid].i[10];
|
||||
w2[3] = pws[gid].i[11];
|
||||
|
||||
u32 w3[4];
|
||||
|
||||
w3[0] = pws[gid].i[12];
|
||||
w3[1] = pws[gid].i[13];
|
||||
w3[2] = 0;
|
||||
w3[3] = 0;
|
||||
|
||||
const u32 pw_len = pws[gid].pw_len & 63;
|
||||
|
||||
/**
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800m (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, bitmaps_buf_s1_a, bitmaps_buf_s1_b, bitmaps_buf_s1_c, bitmaps_buf_s1_d, bitmaps_buf_s2_a, bitmaps_buf_s2_b, bitmaps_buf_s2_c, bitmaps_buf_s2_d, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, kernel_param, gid, lid, lsz);
|
||||
}
|
||||
|
||||
KERNEL_FQ KERNEL_FA void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
@ -628,8 +665,6 @@ KERNEL_FQ KERNEL_FA void m07800_s04 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -683,8 +718,6 @@ KERNEL_FQ KERNEL_FA void m07800_s08 (KERN_ATTR_BASIC ())
|
||||
* modifier
|
||||
*/
|
||||
|
||||
//const u64 lid = get_local_id (0);
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
@ -724,4 +757,53 @@ KERNEL_FQ KERNEL_FA void m07800_s08 (KERN_ATTR_BASIC ())
|
||||
|
||||
KERNEL_FQ KERNEL_FA void m07800_s16 (KERN_ATTR_BASIC ())
|
||||
{
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
|
||||
const u64 lid = get_local_id (0);
|
||||
const u64 gid = get_global_id (0);
|
||||
const u64 lsz = get_local_size (0);
|
||||
|
||||
if (gid >= GID_CNT) return;
|
||||
|
||||
/**
|
||||
* modifier
|
||||
*/
|
||||
|
||||
u32 w0[4];
|
||||
|
||||
w0[0] = pws[gid].i[ 0];
|
||||
w0[1] = pws[gid].i[ 1];
|
||||
w0[2] = pws[gid].i[ 2];
|
||||
w0[3] = pws[gid].i[ 3];
|
||||
|
||||
u32 w1[4];
|
||||
|
||||
w1[0] = pws[gid].i[ 4];
|
||||
w1[1] = pws[gid].i[ 5];
|
||||
w1[2] = pws[gid].i[ 6];
|
||||
w1[3] = pws[gid].i[ 7];
|
||||
|
||||
u32 w2[4];
|
||||
|
||||
w2[0] = pws[gid].i[ 8];
|
||||
w2[1] = pws[gid].i[ 9];
|
||||
w2[2] = pws[gid].i[10];
|
||||
w2[3] = pws[gid].i[11];
|
||||
|
||||
u32 w3[4];
|
||||
|
||||
w3[0] = pws[gid].i[12];
|
||||
w3[1] = pws[gid].i[13];
|
||||
w3[2] = 0;
|
||||
w3[3] = 0;
|
||||
|
||||
const u32 pw_len = pws[gid].pw_len & 63;
|
||||
|
||||
/**
|
||||
* main
|
||||
*/
|
||||
|
||||
m07800s (w0, w1, w2, w3, pw_len, pws, rules_buf, combs_buf, bfs_buf, tmps, hooks, bitmaps_buf_s1_a, bitmaps_buf_s1_b, bitmaps_buf_s1_c, bitmaps_buf_s1_d, bitmaps_buf_s2_a, bitmaps_buf_s2_b, bitmaps_buf_s2_c, bitmaps_buf_s2_d, plains_buf, digests_buf, hashes_shown, salt_bufs, esalt_bufs, d_return_buf, d_extra0_buf, d_extra1_buf, d_extra2_buf, d_extra3_buf, kernel_param, gid, lid, lsz);
|
||||
}
|
||||
|
@ -91,6 +91,7 @@
|
||||
- Added verification of token buffer length when using TOKEN_ATTR_FIXED_LENGTH
|
||||
- Fixed a bug in all SCRYPT-based hash modes with Apple Metal
|
||||
- Fixed buffer overflow on module_26600.c / module_hash_encode()
|
||||
- Fixed bug in module_constraints and kernel for hash-mode 7800
|
||||
- Fixed bug in 18400 module_hash_encode
|
||||
- Fixed bug in 23800/unrar with Apple Silicon
|
||||
- Fixed bug in 26900 module_hash_encode
|
||||
|
@ -10,7 +10,7 @@ use warnings;
|
||||
|
||||
use Digest::SHA qw (sha1 sha1_hex);
|
||||
|
||||
sub module_constraints { [[-1, -1], [-1, -1], [0, 55], [1, 12], [0, 55]] }
|
||||
sub module_constraints { [[-1, -1], [-1, -1], [0, 40], [1, 12], [0, 55]] }
|
||||
|
||||
sub module_generate_hash
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user