1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-11-26 09:58:16 +00:00

fixes #1321: new option --wordlist-autohex-disable

This commit is contained in:
philsmd 2017-08-16 12:07:14 +02:00
parent 79a0345430
commit bc1a101d2b
6 changed files with 200 additions and 188 deletions

View File

@ -14,6 +14,7 @@
- Added option --length-limit-disable to disable optimization based on password- and salt-length - Added option --length-limit-disable to disable optimization based on password- and salt-length
- Added self-test functionality for OpenCL kernels on startup - Added self-test functionality for OpenCL kernels on startup
- Added option --self-test-disable to disable self-test functionality on startup - Added option --self-test-disable to disable self-test functionality on startup
- Added option --wordlist-autohex-disable to disable the automatical conversion of $HEX[] words from the word list
## ##
## Bugs ## Bugs

View File

@ -189,7 +189,7 @@ _hashcat ()
local BUILD_IN_CHARSETS='?l ?u ?d ?a ?b ?s ?h ?H' local BUILD_IN_CHARSETS='?l ?u ?d ?a ?b ?s ?h ?H'
local SHORT_OPTS="-m -a -V -v -h -b -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -i -I -s -l -O" local SHORT_OPTS="-m -a -V -v -h -b -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -i -I -s -l -O"
local LONG_OPTS="--hash-type --attack-mode --version --help --quiet --benchmark --hex-salt --hex-wordlist --hex-charset --force --status --status-timer --machine-readable --loopback --weak-hash-threshold --markov-hcstat --markov-disable --markov-classic --markov-threshold --runtime --session --speed-only --progress-only --restore --restore-file-path --restore-disable --outfile --outfile-format --outfile-autohex-disable --outfile-check-timer --outfile-check-dir --separator --show --left --username --remove --remove-timer --potfile-disable --potfile-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --opencl-info --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-disable --gpu-temp-abort --gpu-temp-retain --powertune-enable --skip --limit --keyspace --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment --increment-min --increment-max --logfile-disable --scrypt-tmto --truecrypt-keyfiles --stdout --keep-guessing --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to --optimized-kernel-enable --self-test-disable" local LONG_OPTS="--hash-type --attack-mode --version --help --quiet --benchmark --hex-salt --hex-wordlist --hex-charset --force --status --status-timer --machine-readable --loopback --weak-hash-threshold --markov-hcstat --markov-disable --markov-classic --markov-threshold --runtime --session --speed-only --progress-only --restore --restore-file-path --restore-disable --outfile --outfile-format --outfile-autohex-disable --outfile-check-timer --outfile-check-dir --wordlist-autohex-disable --separator --show --left --username --remove --remove-timer --potfile-disable --potfile-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --opencl-info --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-disable --gpu-temp-abort --gpu-temp-retain --powertune-enable --skip --limit --keyspace --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment --increment-min --increment-max --logfile-disable --scrypt-tmto --truecrypt-keyfiles --stdout --keep-guessing --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to --optimized-kernel-enable --self-test-disable"
local OPTIONS="-m -a -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -s -l --hash-type --attack-mode --status-timer --weak-hash-threshold --markov-hcstat --markov-threshold --runtime --session --timer --outfile --outfile-format --outfile-check-timer --outfile-check-dir --separator --remove-timer --potfile-path --restore-file-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-abort --gpu-temp-retain -disable --skip --limit --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment-min --increment-max --scrypt-tmto --truecrypt-keyfiles --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to --optimized-kernel-enable --self-test-disable" local OPTIONS="-m -a -t -o -p -c -d -w -n -u -j -k -r -g -1 -2 -3 -4 -s -l --hash-type --attack-mode --status-timer --weak-hash-threshold --markov-hcstat --markov-threshold --runtime --session --timer --outfile --outfile-format --outfile-check-timer --outfile-check-dir --separator --remove-timer --potfile-path --restore-file-path --debug-mode --debug-file --induction-dir --segment-size --bitmap-min --bitmap-max --cpu-affinity --opencl-devices --opencl-platforms --opencl-device-types --opencl-vector-width --workload-profile --kernel-accel --kernel-loops --nvidia-spin-damp --gpu-temp-abort --gpu-temp-retain -disable --skip --limit --rule-left --rule-right --rules-file --generate-rules --generate-rules-func-min --generate-rules-func-max --generate-rules-seed --custom-charset1 --custom-charset2 --custom-charset3 --custom-charset4 --increment-min --increment-max --scrypt-tmto --truecrypt-keyfiles --hccapx-message-pair --nonce-error-corrections --encoding-from --encoding-to --optimized-kernel-enable --self-test-disable"
COMPREPLY=() COMPREPLY=()

View File

@ -546,6 +546,7 @@ typedef enum user_options_defaults
OUTFILE_AUTOHEX = true, OUTFILE_AUTOHEX = true,
OUTFILE_CHECK_TIMER = 5, OUTFILE_CHECK_TIMER = 5,
OUTFILE_FORMAT = 3, OUTFILE_FORMAT = 3,
WORDLIST_AUTOHEX_DISABLE = false,
POTFILE_DISABLE = false, POTFILE_DISABLE = false,
POWERTUNE_ENABLE = false, POWERTUNE_ENABLE = false,
QUIET = false, QUIET = false,
@ -634,42 +635,43 @@ typedef enum user_options_map
IDX_OUTFILE_CHECK_TIMER = 0xff22, IDX_OUTFILE_CHECK_TIMER = 0xff22,
IDX_OUTFILE_FORMAT = 0xff23, IDX_OUTFILE_FORMAT = 0xff23,
IDX_OUTFILE = 'o', IDX_OUTFILE = 'o',
IDX_POTFILE_DISABLE = 0xff24, IDX_WORDLIST_AUTOHEX_DISABLE = 0xff24,
IDX_POTFILE_PATH = 0xff25, IDX_POTFILE_DISABLE = 0xff25,
IDX_POWERTUNE_ENABLE = 0xff26, IDX_POTFILE_PATH = 0xff26,
IDX_QUIET = 0xff27, IDX_POWERTUNE_ENABLE = 0xff27,
IDX_REMOVE = 0xff28, IDX_QUIET = 0xff28,
IDX_REMOVE_TIMER = 0xff29, IDX_REMOVE = 0xff29,
IDX_RESTORE = 0xff2a, IDX_REMOVE_TIMER = 0xff2a,
IDX_RESTORE_DISABLE = 0xff2b, IDX_RESTORE = 0xff2b,
IDX_RESTORE_FILE_PATH = 0xff2c, IDX_RESTORE_DISABLE = 0xff2c,
IDX_RESTORE_FILE_PATH = 0xff2d,
IDX_RP_FILE = 'r', IDX_RP_FILE = 'r',
IDX_RP_GEN_FUNC_MAX = 0xff2d, IDX_RP_GEN_FUNC_MAX = 0xff2e,
IDX_RP_GEN_FUNC_MIN = 0xff2e, IDX_RP_GEN_FUNC_MIN = 0xff2f,
IDX_RP_GEN = 'g', IDX_RP_GEN = 'g',
IDX_RP_GEN_SEED = 0xff2f, IDX_RP_GEN_SEED = 0xff30,
IDX_RULE_BUF_L = 'j', IDX_RULE_BUF_L = 'j',
IDX_RULE_BUF_R = 'k', IDX_RULE_BUF_R = 'k',
IDX_RUNTIME = 0xff30, IDX_RUNTIME = 0xff31,
IDX_SCRYPT_TMTO = 0xff31, IDX_SCRYPT_TMTO = 0xff32,
IDX_SELF_TEST_DISABLE = 0xff32, IDX_SELF_TEST_DISABLE = 0xff33,
IDX_SEGMENT_SIZE = 'c', IDX_SEGMENT_SIZE = 'c',
IDX_SEPARATOR = 'p', IDX_SEPARATOR = 'p',
IDX_SESSION = 0xff33, IDX_SESSION = 0xff34,
IDX_SHOW = 0xff34, IDX_SHOW = 0xff35,
IDX_SKIP = 's', IDX_SKIP = 's',
IDX_STATUS = 0xff35, IDX_STATUS = 0xff36,
IDX_STATUS_TIMER = 0xff36, IDX_STATUS_TIMER = 0xff37,
IDX_STDOUT_FLAG = 0xff37, IDX_STDOUT_FLAG = 0xff38,
IDX_SPEED_ONLY = 0xff38, IDX_SPEED_ONLY = 0xff39,
IDX_PROGRESS_ONLY = 0xff39, IDX_PROGRESS_ONLY = 0xff3a,
IDX_TRUECRYPT_KEYFILES = 0xff3a, IDX_TRUECRYPT_KEYFILES = 0xff3b,
IDX_USERNAME = 0xff3b, IDX_USERNAME = 0xff3c,
IDX_VERACRYPT_KEYFILES = 0xff3c, IDX_VERACRYPT_KEYFILES = 0xff3d,
IDX_VERACRYPT_PIM = 0xff3d, IDX_VERACRYPT_PIM = 0xff3e,
IDX_VERSION_LOWER = 'v', IDX_VERSION_LOWER = 'v',
IDX_VERSION = 'V', IDX_VERSION = 'V',
IDX_WEAK_HASH_THRESHOLD = 0xff3e, IDX_WEAK_HASH_THRESHOLD = 0xff3f,
IDX_WORKLOAD_PROFILE = 'w' IDX_WORKLOAD_PROFILE = 'w'
} user_options_map_t; } user_options_map_t;
@ -1470,6 +1472,7 @@ typedef struct user_options
bool opencl_info; bool opencl_info;
bool optimized_kernel_enable; bool optimized_kernel_enable;
bool outfile_autohex; bool outfile_autohex;
bool wordlist_autohex_disable;
bool potfile_disable; bool potfile_disable;
bool powertune_enable; bool powertune_enable;
bool quiet; bool quiet;

View File

@ -25,7 +25,7 @@ static const char *USAGE_BIG[] =
"- [ Options ] -", "- [ Options ] -",
"", "",
" Options Short / Long | Type | Description | Example", " Options Short / Long | Type | Description | Example",
"===============================+======+======================================================+=======================", "================================+======+======================================================+=======================",
" -m, --hash-type | Num | Hash-type, see references below | -m 1000", " -m, --hash-type | Num | Hash-type, see references below | -m 1000",
" -a, --attack-mode | Num | Attack-mode, see references below | -a 3", " -a, --attack-mode | Num | Attack-mode, see references below | -a 3",
" -V, --version | | Print version |", " -V, --version | | Print version |",
@ -50,11 +50,12 @@ static const char *USAGE_BIG[] =
" --session | Str | Define specific session name | --session=mysession", " --session | Str | Define specific session name | --session=mysession",
" --restore | | Restore session from --session |", " --restore | | Restore session from --session |",
" --restore-disable | | Do not write restore file |", " --restore-disable | | Do not write restore file |",
" --restore-file-path | File | Specific path to restore file | --restore-file-path=my.restore", " --restore-file-path | File | Specific path to restore file | --restore-file-path=x.restore",
" -o, --outfile | File | Define outfile for recovered hash | -o outfile.txt", " -o, --outfile | File | Define outfile for recovered hash | -o outfile.txt",
" --outfile-format | Num | Define outfile-format X for recovered hash | --outfile-format=7", " --outfile-format | Num | Define outfile-format X for recovered hash | --outfile-format=7",
" --outfile-autohex-disable | | Disable the use of $HEX[] in output plains |", " --outfile-autohex-disable | | Disable the use of $HEX[] in output plains |",
" --outfile-check-timer | Num | Sets seconds between outfile checks to X | --outfile-check=30", " --outfile-check-timer | Num | Sets seconds between outfile checks to X | --outfile-check=30",
" --wordlist-autohex-disable | | Disable the conversion of $HEX[] from the wordlist |",
" -p, --separator | Char | Separator char for hashlists and outfile | -p :", " -p, --separator | Char | Separator char for hashlists and outfile | -p :",
" --stdout | | Do not crack a hash, instead print candidates only |", " --stdout | | Do not crack a hash, instead print candidates only |",
" --show | | Compare hashlist with potfile; show cracked hashes |", " --show | | Compare hashlist with potfile; show cracked hashes |",

View File

@ -76,6 +76,7 @@ static const struct option long_options[] =
{"outfile-check-timer", required_argument, 0, IDX_OUTFILE_CHECK_TIMER}, {"outfile-check-timer", required_argument, 0, IDX_OUTFILE_CHECK_TIMER},
{"outfile-format", required_argument, 0, IDX_OUTFILE_FORMAT}, {"outfile-format", required_argument, 0, IDX_OUTFILE_FORMAT},
{"outfile", required_argument, 0, IDX_OUTFILE}, {"outfile", required_argument, 0, IDX_OUTFILE},
{"wordlist-autohex-disable", no_argument, 0, IDX_WORDLIST_AUTOHEX_DISABLE},
{"potfile-disable", no_argument, 0, IDX_POTFILE_DISABLE}, {"potfile-disable", no_argument, 0, IDX_POTFILE_DISABLE},
{"potfile-path", required_argument, 0, IDX_POTFILE_PATH}, {"potfile-path", required_argument, 0, IDX_POTFILE_PATH},
{"powertune-enable", no_argument, 0, IDX_POWERTUNE_ENABLE}, {"powertune-enable", no_argument, 0, IDX_POWERTUNE_ENABLE},
@ -174,6 +175,7 @@ int user_options_init (hashcat_ctx_t *hashcat_ctx)
user_options->opencl_platforms = NULL; user_options->opencl_platforms = NULL;
user_options->opencl_vector_width = OPENCL_VECTOR_WIDTH; user_options->opencl_vector_width = OPENCL_VECTOR_WIDTH;
user_options->optimized_kernel_enable = OPTIMIZED_KERNEL_ENABLE; user_options->optimized_kernel_enable = OPTIMIZED_KERNEL_ENABLE;
user_options->wordlist_autohex_disable = WORDLIST_AUTOHEX_DISABLE;
user_options->outfile_autohex = OUTFILE_AUTOHEX; user_options->outfile_autohex = OUTFILE_AUTOHEX;
user_options->outfile_check_dir = NULL; user_options->outfile_check_dir = NULL;
user_options->outfile_check_timer = OUTFILE_CHECK_TIMER; user_options->outfile_check_timer = OUTFILE_CHECK_TIMER;
@ -375,6 +377,7 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
user_options->outfile_format_chgd = true; break; user_options->outfile_format_chgd = true; break;
case IDX_OUTFILE_AUTOHEX_DISABLE: user_options->outfile_autohex = false; break; case IDX_OUTFILE_AUTOHEX_DISABLE: user_options->outfile_autohex = false; break;
case IDX_OUTFILE_CHECK_TIMER: user_options->outfile_check_timer = atoi (optarg); break; case IDX_OUTFILE_CHECK_TIMER: user_options->outfile_check_timer = atoi (optarg); break;
case IDX_WORDLIST_AUTOHEX_DISABLE: user_options->wordlist_autohex_disable = true; break;
case IDX_HEX_CHARSET: user_options->hex_charset = true; break; case IDX_HEX_CHARSET: user_options->hex_charset = true; break;
case IDX_HEX_SALT: user_options->hex_salt = true; break; case IDX_HEX_SALT: user_options->hex_salt = true; break;
case IDX_HEX_WORDLIST: user_options->hex_wordlist = true; break; case IDX_HEX_WORDLIST: user_options->hex_wordlist = true; break;
@ -2133,6 +2136,7 @@ void user_options_logger (hashcat_ctx_t *hashcat_ctx)
logfile_top_uint (user_options->outfile_autohex); logfile_top_uint (user_options->outfile_autohex);
logfile_top_uint (user_options->outfile_check_timer); logfile_top_uint (user_options->outfile_check_timer);
logfile_top_uint (user_options->outfile_format); logfile_top_uint (user_options->outfile_format);
logfile_top_uint (user_options->wordlist_autohex_disable);
logfile_top_uint (user_options->potfile_disable); logfile_top_uint (user_options->potfile_disable);
logfile_top_uint (user_options->powertune_enable); logfile_top_uint (user_options->powertune_enable);
logfile_top_uint (user_options->progress_only); logfile_top_uint (user_options->progress_only);

View File

@ -35,12 +35,15 @@ u32 convert_from_hex (hashcat_ctx_t *hashcat_ctx, char *line_buf, const u32 line
return (i); return (i);
} }
if (user_options->wordlist_autohex_disable == false)
{
if (is_hexify ((const u8 *) line_buf, (const int) line_len) == true) if (is_hexify ((const u8 *) line_buf, (const int) line_len) == true)
{ {
const int new_len = exec_unhexify ((const u8 *) line_buf, (const int) line_len, (u8 *) line_buf, (const int) line_len); const int new_len = exec_unhexify ((const u8 *) line_buf, (const int) line_len, (u8 *) line_buf, (const int) line_len);
return (u32) new_len; return (u32) new_len;
} }
}
return (line_len); return (line_len);
} }