mirror of
https://github.com/hashcat/hashcat.git
synced 2025-07-19 13:08:19 +00:00
Update edge, modules
Fix deprecation warning on m30906.pm Fix pipeline error with -m 32600 on Apple Update edge_test.sh Fix edge test vectors generation for hash-type 28501, 28502, 28503, 28504, 28505, 28506
This commit is contained in:
parent
3c8cc1f65e
commit
0428e1ef3d
@ -98,6 +98,7 @@
|
|||||||
- Fixed bug in 23800/unrar with Apple Silicon
|
- Fixed bug in 23800/unrar with Apple Silicon
|
||||||
- Fixed bug in 26900 module_hash_encode
|
- Fixed bug in 26900 module_hash_encode
|
||||||
- Fixed bug in 29600 module OPTS_TYPE setting
|
- Fixed bug in 29600 module OPTS_TYPE setting
|
||||||
|
- Fixed bug in 32600 by adding missing module_jit_build_options
|
||||||
- Fixed bug in grep out-of-memory workaround on Unit Test
|
- Fixed bug in grep out-of-memory workaround on Unit Test
|
||||||
- Fixed bug in input_tokenizer when TOKEN_ATTR_FIXED_LENGTH is used and refactor modules
|
- Fixed bug in input_tokenizer when TOKEN_ATTR_FIXED_LENGTH is used and refactor modules
|
||||||
- Fixed bug in --stdout that caused certain rules to malfunction
|
- Fixed bug in --stdout that caused certain rules to malfunction
|
||||||
@ -113,6 +114,7 @@
|
|||||||
- Fixed clang identification in src/Makefile
|
- Fixed clang identification in src/Makefile
|
||||||
- Fixed build failure for almost all hash modes that make use of hc_swap64 and/or hc_swap64_S with Apple Metal / Apple Silicon
|
- Fixed build failure for almost all hash modes that make use of hc_swap64 and/or hc_swap64_S with Apple Metal / Apple Silicon
|
||||||
- Fixed debug mode 5 by adding the missing colon between original-word and finding-rule
|
- Fixed debug mode 5 by adding the missing colon between original-word and finding-rule
|
||||||
|
- Fixed perl deprecation warnings on test module for 30906
|
||||||
- Fixed display problem of the "Optimizers applied" list for algorithms using OPTI_TYPE_SLOW_HASH_SIMD_INIT2 and/or OPTI_TYPE_SLOW_HASH_SIMD_LOOP2
|
- Fixed display problem of the "Optimizers applied" list for algorithms using OPTI_TYPE_SLOW_HASH_SIMD_INIT2 and/or OPTI_TYPE_SLOW_HASH_SIMD_LOOP2
|
||||||
- Fixed incompatible pointer types (salt1 and salt2 buf) in 3730 a3 kernel
|
- Fixed incompatible pointer types (salt1 and salt2 buf) in 3730 a3 kernel
|
||||||
- Fixed incorrect plaintext check for 25400 and 26610. Increased plaintext check to 32 bytes to prevent false positives.
|
- Fixed incorrect plaintext check for 25400 and 26610. Increased plaintext check to 32 bytes to prevent false positives.
|
||||||
|
@ -60,6 +60,22 @@ bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *module_jit_build_options (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const hc_device_param_t *device_param)
|
||||||
|
{
|
||||||
|
char *jit_build_options = NULL;
|
||||||
|
|
||||||
|
// Extra treatment for Apple systems
|
||||||
|
if (device_param->opencl_platform_vendor_id == VENDOR_ID_APPLE)
|
||||||
|
{
|
||||||
|
// hc_mtlCreateKernel_block_invoke(): failed to create 'm32600_sxx' pipeline, Threadgroup memory size (33024) exceeds the maximum threadgroup memory allowed (32768)
|
||||||
|
hc_asprintf (&jit_build_options, "-D FORCE_DISABLE_SHM");
|
||||||
|
|
||||||
|
return jit_build_options;
|
||||||
|
}
|
||||||
|
|
||||||
|
return jit_build_options;
|
||||||
|
}
|
||||||
|
|
||||||
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)
|
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;
|
u32 *digest = (u32 *) digest_buf;
|
||||||
@ -261,7 +277,7 @@ void module_init (module_ctx_t *module_ctx)
|
|||||||
module_ctx->module_hook23 = MODULE_DEFAULT;
|
module_ctx->module_hook23 = MODULE_DEFAULT;
|
||||||
module_ctx->module_hook_salt_size = MODULE_DEFAULT;
|
module_ctx->module_hook_salt_size = MODULE_DEFAULT;
|
||||||
module_ctx->module_hook_size = MODULE_DEFAULT;
|
module_ctx->module_hook_size = MODULE_DEFAULT;
|
||||||
module_ctx->module_jit_build_options = MODULE_DEFAULT;
|
module_ctx->module_jit_build_options = module_jit_build_options;
|
||||||
module_ctx->module_jit_cache_disable = MODULE_DEFAULT;
|
module_ctx->module_jit_cache_disable = MODULE_DEFAULT;
|
||||||
module_ctx->module_kernel_accel_max = MODULE_DEFAULT;
|
module_ctx->module_kernel_accel_max = MODULE_DEFAULT;
|
||||||
module_ctx->module_kernel_accel_min = MODULE_DEFAULT;
|
module_ctx->module_kernel_accel_min = MODULE_DEFAULT;
|
||||||
|
@ -94,6 +94,11 @@ sub edge_format
|
|||||||
$word = random_numeric_string ($word_len) // "";
|
$word = random_numeric_string ($word_len) // "";
|
||||||
$salt = random_numeric_string ($salt_len) // "";
|
$salt = random_numeric_string ($salt_len) // "";
|
||||||
|
|
||||||
|
if (exists &{module_get_random_password}) # if hash mode requires special format of passwords
|
||||||
|
{
|
||||||
|
$word = module_get_random_password ($word);
|
||||||
|
}
|
||||||
|
|
||||||
$hash = module_generate_hash ($word, $salt);
|
$hash = module_generate_hash ($word, $salt);
|
||||||
|
|
||||||
$cond = 1;
|
$cond = 1;
|
||||||
|
@ -95,8 +95,9 @@ ALL_ATTACKS=0
|
|||||||
OPTS="--quiet --potfile-disable --hwmon-disable --self-test-disable --machine-readable --logfile-disable"
|
OPTS="--quiet --potfile-disable --hwmon-disable --self-test-disable --machine-readable --logfile-disable"
|
||||||
|
|
||||||
SKIP_HASH_TYPES="" #2000 2500 2501 16800 16801 99999 32000"
|
SKIP_HASH_TYPES="" #2000 2500 2501 16800 16801 99999 32000"
|
||||||
SKIP_HASH_TYPES_METAL="" #1800 10700 11700 11750 11760 11800 11850 11860 19200 21600"
|
SKIP_HASH_TYPES_METAL="21800"
|
||||||
SKIP_METAL_SCRYPT="" #8900 15700 9300 22700 27700 28200 29800"
|
|
||||||
|
METAL_FORCE_KEEPFREE="8900 22700 27700 28200 29800"
|
||||||
|
|
||||||
SKIP_OUT_MATCH_HASH_TYPES="14000 14100 22000"
|
SKIP_OUT_MATCH_HASH_TYPES="14000 14100 22000"
|
||||||
SKIP_SAME_SALT_HASH_TYPES="6600 7100 7200 8200 13200 13400 15300 15310 15900 15910 16900 18300 18900 20200 20300 20400 27000 27100 29700 29930 29940"
|
SKIP_SAME_SALT_HASH_TYPES="6600 7100 7200 8200 13200 13400 15300 15310 15900 15910 16900 18300 18900 20200 20300 20400 27000 27100 29700 29930 29940"
|
||||||
@ -547,11 +548,6 @@ for hash_type in $(ls tools/test_modules/*.pm | cut -d'm' -f3 | cut -d'.' -f1 |
|
|||||||
echo "[ ${OUTD} ] > Skip processing Hash-Type ${hash_type} (due to metal kernel build failed)" | tee -a ${OUTD}/test_edge.details.log
|
echo "[ ${OUTD} ] > Skip processing Hash-Type ${hash_type} (due to metal kernel build failed)" | tee -a ${OUTD}/test_edge.details.log
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if is_in_array "${hash_type}" ${SKIP_METAL_SCRYPT}; then
|
|
||||||
echo "[ ${OUTD} ] > Skip processing Hash-Type ${hash_type} (due to metal scrypt is broken)" | tee -a ${OUTD}/test_edge.details.log
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
deprecated=$(./hashcat -m ${hash_type} -HH | grep "Deprecated\\.\\." | awk '{print $2}')
|
deprecated=$(./hashcat -m ${hash_type} -HH | grep "Deprecated\\.\\." | awk '{print $2}')
|
||||||
@ -657,6 +653,12 @@ for hash_type in $(ls tools/test_modules/*.pm | cut -d'm' -f3 | cut -d'.' -f1 |
|
|||||||
CUR_OPTS_V="${CUR_OPTS_V} --hex-charset"
|
CUR_OPTS_V="${CUR_OPTS_V} --hex-charset"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $METAL_BACKEND -eq 1 ]; then
|
||||||
|
if is_in_array "${hash_type}" ${METAL_FORCE_KEEPFREE}; then
|
||||||
|
CUR_OPTS_V="${CUR_OPTS_V} --backend-devices-keepfree 1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# single hash
|
# single hash
|
||||||
if [ $TARGET_TYPE == all ] || [ $TARGET_TYPE == 0 ]; then
|
if [ $TARGET_TYPE == all ] || [ $TARGET_TYPE == 0 ]; then
|
||||||
|
|
||||||
|
@ -8,9 +8,12 @@
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use Bitcoin::Crypto qw (btc_prv btc_extprv);
|
use Bitcoin::Crypto qw (btc_extprv);
|
||||||
|
use Bitcoin::Crypto::Util qw (to_format);
|
||||||
use Bitcoin::Crypto::Base58 qw (decode_base58check);
|
use Bitcoin::Crypto::Base58 qw (decode_base58check);
|
||||||
|
|
||||||
|
use Bitcoin::Crypto::Key::Private;
|
||||||
|
|
||||||
sub module_constraints { [[51, 51], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
|
sub module_constraints { [[51, 51], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
|
||||||
|
|
||||||
# Note:
|
# Note:
|
||||||
@ -23,14 +26,7 @@ sub module_generate_hash
|
|||||||
|
|
||||||
return unless ($word =~ m/^[0-9a-fA-F]{64}$/);
|
return unless ($word =~ m/^[0-9a-fA-F]{64}$/);
|
||||||
|
|
||||||
my $priv = "";
|
my $priv = Bitcoin::Crypto::Key::Private->from_serialized([hex => $word]);
|
||||||
|
|
||||||
my @is_valid_hex = eval
|
|
||||||
{
|
|
||||||
$priv = btc_prv->from_hex ($word);
|
|
||||||
};
|
|
||||||
|
|
||||||
return if (! @is_valid_hex);
|
|
||||||
|
|
||||||
my $IS_COMPRESSED = 0;
|
my $IS_COMPRESSED = 0;
|
||||||
|
|
||||||
@ -79,7 +75,7 @@ sub module_get_random_password
|
|||||||
|
|
||||||
my $priv = $derived_key->get_basic_key ();
|
my $priv = $derived_key->get_basic_key ();
|
||||||
|
|
||||||
return $priv->to_hex (); # the result is padded (32 raw bytes)
|
return to_format([hex => $priv->to_serialized()]); # the result is padded (32 raw bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
Loading…
Reference in New Issue
Block a user