mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-23 07:08:19 +00:00
commit
58ddb104c0
@ -76,18 +76,18 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
const u32 salt_len = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_len;
|
||||
|
||||
u32 s[64] = { 0 };
|
||||
|
||||
|
||||
for (u32 i = 0, idx = 0; i < salt_len; i += 4, idx += 1)
|
||||
{
|
||||
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
||||
}
|
||||
|
||||
|
||||
md5_ctx_t ctx0;
|
||||
|
||||
md5_init (&ctx0);
|
||||
|
||||
|
||||
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
||||
|
||||
|
||||
/**
|
||||
* loop
|
||||
*/
|
||||
@ -97,7 +97,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
pw_t tmp = PASTE_PW;
|
||||
|
||||
md5_ctx_t ctx1 = ctx0;
|
||||
|
||||
|
||||
md5_update(&ctx1, pws[gid].i, pws[gid].pw_len);
|
||||
|
||||
md5_final (&ctx1);
|
||||
@ -142,7 +142,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
w3[1] = 0;
|
||||
w3[2] = 0;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
md5_update_64 (&ctx, w0, w1, w2, w3, 32);
|
||||
|
||||
md5_final (&ctx);
|
||||
@ -169,7 +169,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
/**
|
||||
* bin2asc uppercase table
|
||||
*/
|
||||
|
||||
|
||||
LOCAL_VK u32 u_bin2asc[256];
|
||||
|
||||
for (u32 j = lid; j < 256; j += lsz)
|
||||
@ -217,7 +217,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
md5_init (&ctx0);
|
||||
|
||||
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
||||
|
||||
|
||||
/**
|
||||
* loop
|
||||
*/
|
||||
@ -227,7 +227,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
pw_t tmp = PASTE_PW;
|
||||
|
||||
md5_ctx_t ctx1 = ctx0;
|
||||
|
||||
|
||||
md5_update (&ctx1, pws[gid].i, pws[gid].pw_len);
|
||||
|
||||
md5_final (&ctx1);
|
||||
|
@ -49,7 +49,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
/**
|
||||
* bin2asc uppercase array
|
||||
*/
|
||||
|
||||
|
||||
LOCAL_VK u32 u_bin2asc[256];
|
||||
|
||||
for (u32 j = lid; j < 256; j += lsz)
|
||||
@ -83,9 +83,9 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
md5_init (&ctx0);
|
||||
|
||||
md5_update_global (&ctx0, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_buf, esalt_bufs[DIGESTS_OFFSET_HOST].salt2_len);
|
||||
|
||||
|
||||
md5_update_global (&ctx0, pws[gid].i, pws[gid].pw_len);
|
||||
|
||||
|
||||
/**
|
||||
* loop
|
||||
*/
|
||||
@ -135,10 +135,10 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
|
||||
md5_ctx_t ctx;
|
||||
|
||||
md5_init (&ctx);
|
||||
md5_init (&ctx);
|
||||
|
||||
md5_update (&ctx, s, salt_len);
|
||||
|
||||
|
||||
md5_update_64 (&ctx, w0, w1, w2, w3, 32);
|
||||
|
||||
md5_final (&ctx);
|
||||
@ -165,7 +165,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
/**
|
||||
* bin2asc uppercase array
|
||||
*/
|
||||
|
||||
|
||||
LOCAL_VK u32 u_bin2asc[256];
|
||||
|
||||
for (u32 j = lid; j < 256; j += lsz)
|
||||
@ -201,7 +201,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
{
|
||||
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* base
|
||||
*/
|
||||
@ -262,8 +262,8 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_ESALT (md5_double_salt_t))
|
||||
w3[3] = 0;
|
||||
|
||||
md5_ctx_t ctx;
|
||||
|
||||
md5_init (&ctx);
|
||||
|
||||
md5_init (&ctx);
|
||||
|
||||
md5_update (&ctx, s, salt_len);
|
||||
|
||||
|
@ -49,7 +49,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_VECTOR_ESALT (md5_double_salt_t))
|
||||
/**
|
||||
* bin2asc uppercase array
|
||||
*/
|
||||
|
||||
|
||||
LOCAL_VK u32 u_bin2asc[256];
|
||||
|
||||
for (u32 j = lid; j < 256; j += lsz)
|
||||
@ -86,7 +86,7 @@ KERNEL_FQ void m03730_mxx (KERN_ATTR_VECTOR_ESALT (md5_double_salt_t))
|
||||
{
|
||||
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
||||
}
|
||||
|
||||
|
||||
md5_ctx_vector_t ctx0;
|
||||
|
||||
md5_init_vector (&ctx0);
|
||||
@ -180,7 +180,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_VECTOR_ESALT (md5_double_salt_t))
|
||||
/*
|
||||
* bin2asc uppercase table
|
||||
*/
|
||||
|
||||
|
||||
LOCAL_VK u32 u_bin2asc[256];
|
||||
|
||||
for (u32 j = lid; j < 256; j += lsz)
|
||||
@ -191,7 +191,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_VECTOR_ESALT (md5_double_salt_t))
|
||||
u_bin2asc[j] = ((i0 < 10) ? '0' + i0 : 'A' - 10 + i0) << 8
|
||||
| ((i1 < 10) ? '0' + i1 : 'A' - 10 + i1) << 0;
|
||||
}
|
||||
|
||||
|
||||
SYNC_THREADS ();
|
||||
|
||||
if (gid >= GID_CNT) return;
|
||||
@ -229,7 +229,7 @@ KERNEL_FQ void m03730_sxx (KERN_ATTR_VECTOR_ESALT (md5_double_salt_t))
|
||||
{
|
||||
s[idx] = esalt_bufs[DIGESTS_OFFSET_HOST].salt1_buf[idx];
|
||||
}
|
||||
|
||||
|
||||
md5_ctx_vector_t ctx0;
|
||||
|
||||
md5_init_vector (&ctx0);
|
||||
|
@ -215,7 +215,7 @@ KERNEL_FQ void m30500_m04 (KERN_ATTR_RULES ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -224,7 +224,7 @@ KERNEL_FQ void m30500_m04 (KERN_ATTR_RULES ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
@ -699,7 +699,7 @@ KERNEL_FQ void m30500_s04 (KERN_ATTR_RULES ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -708,7 +708,7 @@ KERNEL_FQ void m30500_s04 (KERN_ATTR_RULES ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
|
@ -272,7 +272,7 @@ KERNEL_FQ void m30500_m04 (KERN_ATTR_BASIC ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -281,7 +281,7 @@ KERNEL_FQ void m30500_m04 (KERN_ATTR_BASIC ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
@ -815,7 +815,7 @@ KERNEL_FQ void m30500_s04 (KERN_ATTR_BASIC ())
|
||||
| uint_to_hex_lower8 ((d >> 8) & 255) << 16;
|
||||
w1[3] = uint_to_hex_lower8 ((d >> 16) & 255) << 0
|
||||
| uint_to_hex_lower8 ((d >> 24) & 255) << 16;
|
||||
|
||||
|
||||
w2[0] = 0x80;
|
||||
w2[1] = 0;
|
||||
w2[2] = 0;
|
||||
@ -824,7 +824,7 @@ KERNEL_FQ void m30500_s04 (KERN_ATTR_BASIC ())
|
||||
w3[1] = 0;
|
||||
w3[2] = 32 * 8;
|
||||
w3[3] = 0;
|
||||
|
||||
|
||||
a = MD5M_A;
|
||||
b = MD5M_B;
|
||||
c = MD5M_C;
|
||||
|
@ -66,9 +66,9 @@ u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
|
||||
|
||||
md5_double_salt_t *md5_double_salt = (md5_double_salt_t *) esalt_buf;
|
||||
|
||||
|
||||
hc_token_t token;
|
||||
|
||||
token.token_cnt = 3;
|
||||
@ -88,7 +88,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
token.len_min[2] = SALT_MIN;
|
||||
token.len_max[2] = SALT_MAX;
|
||||
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH;
|
||||
|
||||
|
||||
if (hashconfig->opts_type & OPTS_TYPE_ST_HEX)
|
||||
{
|
||||
token.len_min[1] *= 2;
|
||||
@ -153,7 +153,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
const u32 *digest = (const u32 *) digest_buf;
|
||||
|
||||
const md5_double_salt_t *md5_double_salt = (const md5_double_salt_t *) esalt_buf;
|
||||
|
||||
|
||||
// we can not change anything in the original buffer, otherwise destroying sorting
|
||||
// therefore create some local buffer
|
||||
|
||||
@ -273,4 +273,4 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_tmp_size = MODULE_DEFAULT;
|
||||
module_ctx->module_unstable_warning = MODULE_DEFAULT;
|
||||
module_ctx->module_warmup_disable = MODULE_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ int module_hash_binary_parse (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE
|
||||
if (last_error != 0)
|
||||
{
|
||||
return last_error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return PARSER_LUKS_KEY_DISABLED;
|
||||
|
@ -13,8 +13,8 @@
|
||||
# https://github.com/gurnec/btcrecover/blob/master/btcrecover/btcrpass.py
|
||||
#
|
||||
|
||||
# Updated script in order to work with Bisq wallet v1.9.5 (2022)
|
||||
# Author:
|
||||
# Updated script in order to work with Bisq wallet v1.9.5 (2022)
|
||||
# Author:
|
||||
# https://github.com/Banaanhangwagen
|
||||
# License: MIT
|
||||
|
||||
|
@ -20,14 +20,14 @@ my $ENC_DEFAULT_MD5_ITERATIONS = 1000;
|
||||
|
||||
my @default_salts =
|
||||
(
|
||||
"\x0f\xc9\xe7\xd0\x8b\xe4\x24\xf6\x56\x9d\x4e\x72\xed\xbc\x2c\x5c",
|
||||
"\xdd\x79\x74\xf3\x3d\x83\x00\xc2\x9b\xd2\x93\xd5\x7f\x9d\x9b\x8c",
|
||||
"\x60\x85\x0c\x47\x58\x46\xe2\x96\x2d\x99\x5d\x5e\xf1\xd0\x6a\x28",
|
||||
"\xe2\x3f\x3d\x6b\x99\x61\x4b\xa9\xc4\xed\xc5\xdd\xd8\x25\x3c\xe1",
|
||||
"\x2c\xa4\x59\x89\x1d\x78\x52\xdb\x30\x31\xd0\x9f\x9f\x34\x88\x35",
|
||||
"\xdb\x1b\xb5\x27\xe8\x21\x4f\x79\xa0\xb2\xcb\x32\x42\xd9\xf2\x0a",
|
||||
"\xae\xa8\xb6\x8e\xd0\x7b\x62\xa1\x40\x0e\x17\xc6\xad\x64\x20\xc8",
|
||||
"\xea\xe3\xf4\x4e\xaf\x4a\x8f\x84\xf1\xfa\xb3\x08\x85\x69\xbe\xf8"
|
||||
"\x0f\xc9\xe7\xd0\x8b\xe4\x24\xf6\x56\x9d\x4e\x72\xed\xbc\x2c\x5c",
|
||||
"\xdd\x79\x74\xf3\x3d\x83\x00\xc2\x9b\xd2\x93\xd5\x7f\x9d\x9b\x8c",
|
||||
"\x60\x85\x0c\x47\x58\x46\xe2\x96\x2d\x99\x5d\x5e\xf1\xd0\x6a\x28",
|
||||
"\xe2\x3f\x3d\x6b\x99\x61\x4b\xa9\xc4\xed\xc5\xdd\xd8\x25\x3c\xe1",
|
||||
"\x2c\xa4\x59\x89\x1d\x78\x52\xdb\x30\x31\xd0\x9f\x9f\x34\x88\x35",
|
||||
"\xdb\x1b\xb5\x27\xe8\x21\x4f\x79\xa0\xb2\xcb\x32\x42\xd9\xf2\x0a",
|
||||
"\xae\xa8\xb6\x8e\xd0\x7b\x62\xa1\x40\x0e\x17\xc6\xad\x64\x20\xc8",
|
||||
"\xea\xe3\xf4\x4e\xaf\x4a\x8f\x84\xf1\xfa\xb3\x08\x85\x69\xbe\xf8"
|
||||
);
|
||||
|
||||
sub module_constraints { [[0, 256], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
|
||||
|
@ -20,14 +20,14 @@ my $ENC_DEFAULT_MD5_ITERATIONS = 1000;
|
||||
|
||||
my @default_salts =
|
||||
(
|
||||
"\x0f\xc9\xe7\xd0\x8b\xe4\x24\xf6\x56\x9d\x4e\x72\xed\xbc\x2c\x5c",
|
||||
"\xdd\x79\x74\xf3\x3d\x83\x00\xc2\x9b\xd2\x93\xd5\x7f\x9d\x9b\x8c",
|
||||
"\x60\x85\x0c\x47\x58\x46\xe2\x96\x2d\x99\x5d\x5e\xf1\xd0\x6a\x28",
|
||||
"\xe2\x3f\x3d\x6b\x99\x61\x4b\xa9\xc4\xed\xc5\xdd\xd8\x25\x3c\xe1",
|
||||
"\x2c\xa4\x59\x89\x1d\x78\x52\xdb\x30\x31\xd0\x9f\x9f\x34\x88\x35",
|
||||
"\xdb\x1b\xb5\x27\xe8\x21\x4f\x79\xa0\xb2\xcb\x32\x42\xd9\xf2\x0a",
|
||||
"\xae\xa8\xb6\x8e\xd0\x7b\x62\xa1\x40\x0e\x17\xc6\xad\x64\x20\xc8",
|
||||
"\xea\xe3\xf4\x4e\xaf\x4a\x8f\x84\xf1\xfa\xb3\x08\x85\x69\xbe\xf8"
|
||||
"\x0f\xc9\xe7\xd0\x8b\xe4\x24\xf6\x56\x9d\x4e\x72\xed\xbc\x2c\x5c",
|
||||
"\xdd\x79\x74\xf3\x3d\x83\x00\xc2\x9b\xd2\x93\xd5\x7f\x9d\x9b\x8c",
|
||||
"\x60\x85\x0c\x47\x58\x46\xe2\x96\x2d\x99\x5d\x5e\xf1\xd0\x6a\x28",
|
||||
"\xe2\x3f\x3d\x6b\x99\x61\x4b\xa9\xc4\xed\xc5\xdd\xd8\x25\x3c\xe1",
|
||||
"\x2c\xa4\x59\x89\x1d\x78\x52\xdb\x30\x31\xd0\x9f\x9f\x34\x88\x35",
|
||||
"\xdb\x1b\xb5\x27\xe8\x21\x4f\x79\xa0\xb2\xcb\x32\x42\xd9\xf2\x0a",
|
||||
"\xae\xa8\xb6\x8e\xd0\x7b\x62\xa1\x40\x0e\x17\xc6\xad\x64\x20\xc8",
|
||||
"\xea\xe3\xf4\x4e\xaf\x4a\x8f\x84\xf1\xfa\xb3\x08\x85\x69\xbe\xf8"
|
||||
);
|
||||
|
||||
sub module_constraints { [[0, 256], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
|
||||
|
Loading…
Reference in New Issue
Block a user