mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-27 00:48:14 +00:00
PR comments polish 1
This commit is contained in:
parent
ad03dcaffa
commit
d0dc41f98d
1
.gitignore
vendored
1
.gitignore
vendored
@ -24,4 +24,3 @@ obj/*.o
|
|||||||
obj/*.a
|
obj/*.a
|
||||||
include/CL
|
include/CL
|
||||||
tools/luks_tests
|
tools/luks_tests
|
||||||
.vscode/
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
// m12150-pure.cl
|
/**
|
||||||
//#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
|
* Author......: See docs/credits.txt
|
||||||
|
* License.....: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#define NEW_SIMD_CODE
|
#define NEW_SIMD_CODE
|
||||||
|
|
||||||
@ -39,28 +41,16 @@ KERNEL_FQ void m12150_init (KERN_ATTR_TMPS_ESALT (shiro1_sha512_tmp_t, shiro1_sh
|
|||||||
|
|
||||||
sha512_init (&ctx);
|
sha512_init (&ctx);
|
||||||
|
|
||||||
/*printf("Salt length: %d\n", salt_bufs[SALT_POS_HOST].salt_len);
|
|
||||||
printf("Iterations: %d\n", esalt_bufs[DIGESTS_OFFSET_HOST].iterations);
|
|
||||||
printf("Password: %s length: %d\n", pws[gid].i, pws[gid].pw_len);
|
|
||||||
printf("Salt: ");
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
printf("%08x", esalt_bufs[DIGESTS_OFFSET_HOST].salt_buf[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
|
|
||||||
sha512_update_global_swap (&ctx, salt_bufs[SALT_POS_HOST].salt_buf, salt_bufs[SALT_POS_HOST].salt_len);
|
sha512_update_global_swap (&ctx, salt_bufs[SALT_POS_HOST].salt_buf, salt_bufs[SALT_POS_HOST].salt_len);
|
||||||
|
|
||||||
sha512_update_global_swap (&ctx, pws[gid].i, pws[gid].pw_len);
|
sha512_update_global_swap (&ctx, pws[gid].i, pws[gid].pw_len);
|
||||||
|
|
||||||
sha512_final (&ctx);
|
sha512_final (&ctx);
|
||||||
|
|
||||||
//printf("Initial hash: ");
|
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
tmps[gid].dgst[i] = ctx.h[i];
|
tmps[gid].dgst[i] = ctx.h[i];
|
||||||
tmps[gid].out[i] = ctx.h[i];
|
tmps[gid].out[i] = ctx.h[i];
|
||||||
//printf("%016llx", ctx.h[i]);
|
|
||||||
}
|
}
|
||||||
//printf("\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KERNEL_FQ void m12150_loop(KERN_ATTR_TMPS_ESALT(shiro1_sha512_tmp_t, shiro1_sha512_t)) {
|
KERNEL_FQ void m12150_loop(KERN_ATTR_TMPS_ESALT(shiro1_sha512_tmp_t, shiro1_sha512_t)) {
|
||||||
@ -92,9 +82,9 @@ KERNEL_FQ void m12150_loop(KERN_ATTR_TMPS_ESALT(shiro1_sha512_tmp_t, shiro1_sha5
|
|||||||
digest_u32[15] = l32_from_64_S(tmps[gid].dgst[7]);
|
digest_u32[15] = l32_from_64_S(tmps[gid].dgst[7]);
|
||||||
|
|
||||||
for (u32 i = 0; i < LOOP_CNT; i++) {
|
for (u32 i = 0; i < LOOP_CNT; i++) {
|
||||||
sha512_init(&sha512_ctx);
|
sha512_init (&sha512_ctx);
|
||||||
sha512_update_global(&sha512_ctx, digest_u32, SHA512_DIGEST_LENGTH);
|
sha512_update (&sha512_ctx, digest_u32, SHA512_DIGEST_LENGTH);
|
||||||
sha512_final(&sha512_ctx);
|
sha512_final (&sha512_ctx);
|
||||||
|
|
||||||
for (int j = 0; j < 8; j++) {
|
for (int j = 0; j < 8; j++) {
|
||||||
tmps[gid].dgst[j] = sha512_ctx.h[j];
|
tmps[gid].dgst[j] = sha512_ctx.h[j];
|
||||||
@ -131,12 +121,6 @@ KERNEL_FQ void m12150_comp (KERN_ATTR_TMPS_ESALT (shiro1_sha512_tmp_t, shiro1_sh
|
|||||||
|
|
||||||
if (gid >= GID_CNT) return;
|
if (gid >= GID_CNT) return;
|
||||||
|
|
||||||
/*printf("Comparing hash: ");
|
|
||||||
for (int i = 0; i < 8; i++) {
|
|
||||||
printf("%016llx", tmps[gid].out[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
|
|
||||||
const u64 lid = get_local_id (0);
|
const u64 lid = get_local_id (0);
|
||||||
|
|
||||||
const u64 a = tmps[gid].out[0];
|
const u64 a = tmps[gid].out[0];
|
||||||
|
@ -85,4 +85,7 @@ Brandon Chalk <brandon@casaba.com> (@brandoncasaba)
|
|||||||
Jamie Riden <jamie@blacktraffic.co.uk>
|
Jamie Riden <jamie@blacktraffic.co.uk>
|
||||||
* Web2py pbkdf2-sha512 plugin
|
* Web2py pbkdf2-sha512 plugin
|
||||||
|
|
||||||
|
Dylan Evans <fin3ss3g0d@pm.me> (@fin3ss3g0d)
|
||||||
|
* Apache Shiro 1 SHA-512 plugin
|
||||||
|
|
||||||
!!! All the package maintainers of hashcat !!!
|
!!! All the package maintainers of hashcat !!!
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
// https://github.com/hashcat/hashcat/blob/master/docs/hashcat-plugin-development-guide.md
|
/**
|
||||||
|
* Author......: See docs/credits.txt
|
||||||
|
* License.....: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "modules.h"
|
#include "modules.h"
|
||||||
@ -120,11 +124,6 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
|||||||
|
|
||||||
const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token);
|
const int rc_tokenizer = input_tokenizer ((const u8 *) line_buf, line_len, &token);
|
||||||
|
|
||||||
/*for (int i = 0; i < token.token_cnt; i++) {
|
|
||||||
printf("Token %d: %.*s (length: %d)\n", i, token.len[i], token.buf[i], token.len[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
|
|
||||||
if (rc_tokenizer != PARSER_OK) { return (rc_tokenizer); }
|
if (rc_tokenizer != PARSER_OK) { return (rc_tokenizer); }
|
||||||
|
|
||||||
u8 tmp_buf[512];
|
u8 tmp_buf[512];
|
||||||
@ -140,31 +139,13 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
|||||||
const u8 *salt_pos = token.buf[3];
|
const u8 *salt_pos = token.buf[3];
|
||||||
const int salt_len = token.len[3];
|
const int salt_len = token.len[3];
|
||||||
memset (tmp_buf, 0, sizeof (tmp_buf));
|
memset (tmp_buf, 0, sizeof (tmp_buf));
|
||||||
//printf("Salt (b64): %.*s\n", salt_len, salt_pos);
|
|
||||||
tmp_len = base64_decode (base64_to_int, salt_pos, salt_len, tmp_buf);
|
tmp_len = base64_decode (base64_to_int, salt_pos, salt_len, tmp_buf);
|
||||||
/*printf("Decoded Salt (hex): ");
|
|
||||||
for (size_t i = 0; i < tmp_len; i++) {
|
|
||||||
printf("%02x", tmp_buf[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
memcpy (shiro_sha512->salt_buf, tmp_buf, tmp_len);
|
memcpy (shiro_sha512->salt_buf, tmp_buf, tmp_len);
|
||||||
salt->salt_len = tmp_len;
|
salt->salt_len = tmp_len;
|
||||||
salt->salt_buf[0] = shiro_sha512->salt_buf[0];
|
salt->salt_buf[0] = shiro_sha512->salt_buf[0];
|
||||||
salt->salt_buf[1] = shiro_sha512->salt_buf[1];
|
salt->salt_buf[1] = shiro_sha512->salt_buf[1];
|
||||||
salt->salt_buf[2] = shiro_sha512->salt_buf[2];
|
salt->salt_buf[2] = shiro_sha512->salt_buf[2];
|
||||||
salt->salt_buf[3] = shiro_sha512->salt_buf[3];
|
salt->salt_buf[3] = shiro_sha512->salt_buf[3];
|
||||||
// Print the salt as u32 values
|
|
||||||
/*printf("Salt (interpreted as u32): ");
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
printf("%08x", salt->salt_buf[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
// Print the salt as bytes for comparison
|
|
||||||
/*printf("Salt (interpreted as bytes): ");
|
|
||||||
for (int i = 0; i < tmp_len; i++) {
|
|
||||||
printf("%02x", ((u8 *)salt->salt_buf)[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
|
|
||||||
// hash
|
// hash
|
||||||
const u8 *hash_pos = token.buf[4];
|
const u8 *hash_pos = token.buf[4];
|
||||||
@ -181,11 +162,6 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
|||||||
digest[5] = byte_swap_64 (digest[5]);
|
digest[5] = byte_swap_64 (digest[5]);
|
||||||
digest[6] = byte_swap_64 (digest[6]);
|
digest[6] = byte_swap_64 (digest[6]);
|
||||||
digest[7] = byte_swap_64 (digest[7]);
|
digest[7] = byte_swap_64 (digest[7]);
|
||||||
/*printf("Hash: ");
|
|
||||||
for (int i = 0; i < 8; i++) {
|
|
||||||
printf("%016llx", digest[i]);
|
|
||||||
}
|
|
||||||
printf("\n");*/
|
|
||||||
|
|
||||||
return (PARSER_OK);
|
return (PARSER_OK);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user