mirror of
https://github.com/hashcat/hashcat.git
synced 2025-01-24 14:41:16 +00:00
Merge pull request #2672 from matrix/example2info
Replaced --example-hashes with --hash-info
This commit is contained in:
commit
d53913f444
@ -20,6 +20,13 @@
|
|||||||
- Added hash-mode: Umbraco HMAC-SHA1
|
- Added hash-mode: Umbraco HMAC-SHA1
|
||||||
- Added hash-mode: sha1(sha1($pass).$salt)
|
- Added hash-mode: sha1(sha1($pass).$salt)
|
||||||
|
|
||||||
|
##
|
||||||
|
## Features
|
||||||
|
##
|
||||||
|
|
||||||
|
- Added option --hash-info to show generic information for each hash-mode
|
||||||
|
- Removed option --example-hashes, now is an alias of --hash-info
|
||||||
|
|
||||||
##
|
##
|
||||||
## Bugs
|
## Bugs
|
||||||
##
|
##
|
||||||
|
@ -41,7 +41,7 @@ int tty_fix(void);
|
|||||||
|
|
||||||
void compress_terminal_line_length (char *out_buf, const size_t keep_from_beginning, const size_t keep_from_end);
|
void compress_terminal_line_length (char *out_buf, const size_t keep_from_beginning, const size_t keep_from_end);
|
||||||
|
|
||||||
void example_hashes (hashcat_ctx_t *hashcat_ctx);
|
void hash_info (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
|
||||||
void backend_info (hashcat_ctx_t *hashcat_ctx);
|
void backend_info (hashcat_ctx_t *hashcat_ctx);
|
||||||
void backend_info_compact (hashcat_ctx_t *hashcat_ctx);
|
void backend_info_compact (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -591,10 +591,10 @@ typedef enum user_options_defaults
|
|||||||
BRAIN_SESSION = 0,
|
BRAIN_SESSION = 0,
|
||||||
#endif
|
#endif
|
||||||
DEBUG_MODE = 0,
|
DEBUG_MODE = 0,
|
||||||
EXAMPLE_HASHES = false,
|
|
||||||
FORCE = false,
|
FORCE = false,
|
||||||
HWMON_DISABLE = false,
|
HWMON_DISABLE = false,
|
||||||
HWMON_TEMP_ABORT = 90,
|
HWMON_TEMP_ABORT = 90,
|
||||||
|
HASH_INFO = false,
|
||||||
HASH_MODE = 0,
|
HASH_MODE = 0,
|
||||||
HCCAPX_MESSAGE_PAIR = 0,
|
HCCAPX_MESSAGE_PAIR = 0,
|
||||||
HEX_CHARSET = false,
|
HEX_CHARSET = false,
|
||||||
@ -696,7 +696,7 @@ typedef enum user_options_map
|
|||||||
IDX_DEBUG_MODE = 0xff11,
|
IDX_DEBUG_MODE = 0xff11,
|
||||||
IDX_ENCODING_FROM = 0xff12,
|
IDX_ENCODING_FROM = 0xff12,
|
||||||
IDX_ENCODING_TO = 0xff13,
|
IDX_ENCODING_TO = 0xff13,
|
||||||
IDX_EXAMPLE_HASHES = 0xff14,
|
IDX_HASH_INFO = 0xff14,
|
||||||
IDX_FORCE = 0xff15,
|
IDX_FORCE = 0xff15,
|
||||||
IDX_HWMON_DISABLE = 0xff16,
|
IDX_HWMON_DISABLE = 0xff16,
|
||||||
IDX_HWMON_TEMP_ABORT = 0xff17,
|
IDX_HWMON_TEMP_ABORT = 0xff17,
|
||||||
@ -1938,9 +1938,9 @@ typedef struct user_options
|
|||||||
bool brain_client;
|
bool brain_client;
|
||||||
bool brain_server;
|
bool brain_server;
|
||||||
#endif
|
#endif
|
||||||
bool example_hashes;
|
|
||||||
bool force;
|
bool force;
|
||||||
bool hwmon_disable;
|
bool hwmon_disable;
|
||||||
|
bool hash_info;
|
||||||
bool hex_charset;
|
bool hex_charset;
|
||||||
bool hex_salt;
|
bool hex_salt;
|
||||||
bool hex_wordlist;
|
bool hex_wordlist;
|
||||||
|
@ -4956,7 +4956,7 @@ int backend_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
backend_ctx->enabled = false;
|
backend_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->show == true) return 0;
|
if (user_options->show == true) return 0;
|
||||||
|
@ -79,7 +79,7 @@ int bitmap_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
bitmap_ctx->enabled = false;
|
bitmap_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -19,7 +19,7 @@ int combinator_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
combinator_ctx->enabled = false;
|
combinator_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
if (user_options->show == true) return 0;
|
if (user_options->show == true) return 0;
|
||||||
|
@ -15,7 +15,7 @@ int cpt_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
cpt_ctx->enabled = false;
|
cpt_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -87,7 +87,7 @@ int debugfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
debugfile_ctx->enabled = false;
|
debugfile_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -57,7 +57,7 @@ int dictstat_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
dictstat_ctx->enabled = false;
|
dictstat_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -901,7 +901,7 @@ int hashes_init_stage1 (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
hashes_cnt = 1;
|
hashes_cnt = 1;
|
||||||
}
|
}
|
||||||
else if (user_options->example_hashes == true)
|
else if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else if (user_options->keyspace == true)
|
else if (user_options->keyspace == true)
|
||||||
|
@ -2225,7 +2225,7 @@ int hwmon_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
return 0;
|
return 0;
|
||||||
#endif // WITH_HWMON
|
#endif // WITH_HWMON
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -40,7 +40,7 @@ int induct_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
induct_ctx->enabled = false;
|
induct_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -333,7 +333,7 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
hashconfig->has_optimized_kernel = hc_path_read (source_file);
|
hashconfig->has_optimized_kernel = hc_path_read (source_file);
|
||||||
|
|
||||||
if (user_options->example_hashes == false)
|
if (user_options->hash_info == false)
|
||||||
{
|
{
|
||||||
if (user_options->optimized_kernel_enable == true)
|
if (user_options->optimized_kernel_enable == true)
|
||||||
{
|
{
|
||||||
|
@ -61,7 +61,7 @@ int loopback_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
loopback_ctx->enabled = false;
|
loopback_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
23
src/main.c
23
src/main.c
@ -184,16 +184,19 @@ static void main_outerloop_starting (MAYBE_UNUSED hashcat_ctx_t *hashcat_ctx, MA
|
|||||||
|
|
||||||
status_ctx->shutdown_outer = false;
|
status_ctx->shutdown_outer = false;
|
||||||
|
|
||||||
if ((user_options->example_hashes == false) && (user_options->keyspace == false) && (user_options->stdout_flag == false) && (user_options->backend_info == false) && (user_options->speed_only == false))
|
if (user_options->hash_info == true) return;
|
||||||
|
if (user_options->keyspace == true) return;
|
||||||
|
if (user_options->stdout_flag == true) return;
|
||||||
|
if (user_options->backend_info == true) return;
|
||||||
|
if (user_options->speed_only == true) return;
|
||||||
|
|
||||||
|
if ((user_options_extra->wordlist_mode == WL_MODE_FILE) || (user_options_extra->wordlist_mode == WL_MODE_MASK))
|
||||||
{
|
{
|
||||||
if ((user_options_extra->wordlist_mode == WL_MODE_FILE) || (user_options_extra->wordlist_mode == WL_MODE_MASK))
|
// see thread_keypress() how to access status information
|
||||||
{
|
|
||||||
// see thread_keypress() how to access status information
|
|
||||||
|
|
||||||
hc_thread_create (hashcat_user->outer_threads[hashcat_user->outer_threads_cnt], thread_keypress, hashcat_ctx);
|
hc_thread_create (hashcat_user->outer_threads[hashcat_user->outer_threads_cnt], thread_keypress, hashcat_ctx);
|
||||||
|
|
||||||
hashcat_user->outer_threads_cnt++;
|
hashcat_user->outer_threads_cnt++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +260,7 @@ static void main_cracker_finished (MAYBE_UNUSED hashcat_ctx_t *hashcat_ctx, MAYB
|
|||||||
const user_options_t *user_options = hashcat_ctx->user_options;
|
const user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
const user_options_extra_t *user_options_extra = hashcat_ctx->user_options_extra;
|
const user_options_extra_t *user_options_extra = hashcat_ctx->user_options_extra;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return;
|
if (user_options->hash_info == true) return;
|
||||||
if (user_options->keyspace == true) return;
|
if (user_options->keyspace == true) return;
|
||||||
if (user_options->backend_info == true) return;
|
if (user_options->backend_info == true) return;
|
||||||
if (user_options->stdout_flag == true) return;
|
if (user_options->stdout_flag == true) return;
|
||||||
@ -1157,9 +1160,9 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
rc_final = 0;
|
rc_final = 0;
|
||||||
}
|
}
|
||||||
else if (user_options->example_hashes == true)
|
else if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
example_hashes (hashcat_ctx);
|
hash_info (hashcat_ctx);
|
||||||
|
|
||||||
rc_final = 0;
|
rc_final = 0;
|
||||||
}
|
}
|
||||||
|
@ -1391,7 +1391,7 @@ int mask_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
mask_ctx->enabled = false;
|
mask_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
if (user_options->show == true) return 0;
|
if (user_options->show == true) return 0;
|
||||||
|
@ -360,7 +360,7 @@ int outcheck_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->speed_only == true) return 0;
|
if (user_options->speed_only == true) return 0;
|
||||||
if (user_options->progress_only == true) return 0;
|
if (user_options->progress_only == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -111,7 +111,7 @@ int potfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
potfile_ctx->enabled = false;
|
potfile_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
if (user_options->stdout_flag == true) return 0;
|
if (user_options->stdout_flag == true) return 0;
|
||||||
|
@ -299,7 +299,7 @@ int restore_ctx_init (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
|
|||||||
restore_ctx->enabled = false;
|
restore_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -261,7 +261,7 @@ int straight_ctx_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
straight_ctx->enabled = false;
|
straight_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
if (user_options->show == true) return 0;
|
if (user_options->show == true) return 0;
|
||||||
|
205
src/terminal.c
205
src/terminal.c
@ -537,67 +537,114 @@ void compress_terminal_line_length (char *out_buf, const size_t keep_from_beginn
|
|||||||
*ptr1 = 0;
|
*ptr1 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void example_hashes (hashcat_ctx_t *hashcat_ctx)
|
void hash_info_single (hashcat_ctx_t *hashcat_ctx, user_options_t *user_options)
|
||||||
|
{
|
||||||
|
if (hashconfig_init (hashcat_ctx) == 0)
|
||||||
|
{
|
||||||
|
hashconfig_t *hashconfig = hashcat_ctx->hashconfig;
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, "Hash mode #%u", hashconfig->hash_mode);
|
||||||
|
event_log_info (hashcat_ctx, " Name................: %s", hashconfig->hash_name);
|
||||||
|
event_log_info (hashcat_ctx, " Category............: %s", strhashcategory (hashconfig->hash_category));
|
||||||
|
event_log_info (hashcat_ctx, " Slow.Hash...........: %s", (hashconfig->attack_exec == ATTACK_EXEC_INSIDE_KERNEL) ? "No" : "Yes");
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, " Password.Len.Min....: %d", hashconfig->pw_min);
|
||||||
|
event_log_info (hashcat_ctx, " Password.Len.Max....: %d", hashconfig->pw_max);
|
||||||
|
|
||||||
|
if (hashconfig->is_salted == true)
|
||||||
|
{
|
||||||
|
u32 t = hashconfig->salt_type;
|
||||||
|
char *t_desc = (t == SALT_TYPE_EMBEDDED) ? "Embedded\0" : (t == SALT_TYPE_GENERIC) ? "Generic\0" : "Virtual\0";
|
||||||
|
event_log_info (hashcat_ctx, " Salt.Type...........: %s", t_desc);
|
||||||
|
event_log_info (hashcat_ctx, " Salt.Len.Min........: %d", hashconfig->salt_min);
|
||||||
|
event_log_info (hashcat_ctx, " Salt.Len.Max........: %d", hashconfig->salt_max);
|
||||||
|
}
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, " Hashes.Count.Min....: %d", hashconfig->hashes_count_min);
|
||||||
|
event_log_info (hashcat_ctx, " Hashes.Count.Max....: %u", hashconfig->hashes_count_max);
|
||||||
|
|
||||||
|
char kernel_types[15];
|
||||||
|
|
||||||
|
memset (kernel_types, 0, sizeof (kernel_types));
|
||||||
|
|
||||||
|
if (hashconfig->has_pure_kernel) strncat (kernel_types, "pure ", 5);
|
||||||
|
if (hashconfig->has_optimized_kernel) strncat (kernel_types, "optimized", 9);
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, " Kernel.Type(s)......: %s", kernel_types);
|
||||||
|
|
||||||
|
if ((hashconfig->st_hash != NULL) && (hashconfig->st_pass != NULL))
|
||||||
|
{
|
||||||
|
if (hashconfig->opts_type & OPTS_TYPE_BINARY_HASHFILE)
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash.Format.: hex-encoded");
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash........: %s", hashconfig->st_hash);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash.Format.: plain");
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash........: %s", hashconfig->st_hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (need_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), user_options->separator, false))
|
||||||
|
{
|
||||||
|
char tmp_buf[HCBUFSIZ_LARGE] = { 0 };
|
||||||
|
|
||||||
|
int tmp_len = 0;
|
||||||
|
|
||||||
|
tmp_buf[tmp_len++] = '$';
|
||||||
|
tmp_buf[tmp_len++] = 'H';
|
||||||
|
tmp_buf[tmp_len++] = 'E';
|
||||||
|
tmp_buf[tmp_len++] = 'X';
|
||||||
|
tmp_buf[tmp_len++] = '[';
|
||||||
|
|
||||||
|
exec_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), (u8 *) tmp_buf + tmp_len);
|
||||||
|
|
||||||
|
tmp_len += strlen (hashconfig->st_pass) * 2;
|
||||||
|
|
||||||
|
tmp_buf[tmp_len++] = ']';
|
||||||
|
tmp_buf[tmp_len++] = 0;
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, " Example.Pass........: %s", tmp_buf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Example.Pass........: %s", hashconfig->st_pass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash.Format.: N/A");
|
||||||
|
event_log_info (hashcat_ctx, " Example.Hash........: N/A");
|
||||||
|
event_log_info (hashcat_ctx, " Example.Pass........: N/A");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hashconfig->benchmark_mask != NULL)
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Benchmark.Mask......: %s", hashconfig->benchmark_mask);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event_log_info (hashcat_ctx, " Benchmark.Mask......: N/A");
|
||||||
|
}
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
hashconfig_destroy (hashcat_ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void hash_info (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
||||||
user_options_t *user_options = hashcat_ctx->user_options;
|
user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, "Hash Info:");
|
||||||
|
event_log_info (hashcat_ctx, "==========");
|
||||||
|
event_log_info (hashcat_ctx, NULL);
|
||||||
|
|
||||||
if (user_options->hash_mode_chgd == true)
|
if (user_options->hash_mode_chgd == true)
|
||||||
{
|
{
|
||||||
if (hashconfig_init (hashcat_ctx) == 0)
|
hash_info_single (hashcat_ctx, user_options);
|
||||||
{
|
|
||||||
hashconfig_t *hashconfig = hashcat_ctx->hashconfig;
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, "MODE: %u", hashconfig->hash_mode);
|
|
||||||
event_log_info (hashcat_ctx, "TYPE: %s", hashconfig->hash_name);
|
|
||||||
|
|
||||||
if ((hashconfig->st_hash != NULL) && (hashconfig->st_pass != NULL))
|
|
||||||
{
|
|
||||||
if (hashconfig->opts_type & OPTS_TYPE_BINARY_HASHFILE)
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "HASH (hex-encoded): %s", hashconfig->st_hash);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "HASH: %s", hashconfig->st_hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (need_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), user_options->separator, false))
|
|
||||||
{
|
|
||||||
char tmp_buf[HCBUFSIZ_LARGE] = { 0 };
|
|
||||||
|
|
||||||
int tmp_len = 0;
|
|
||||||
|
|
||||||
tmp_buf[tmp_len++] = '$';
|
|
||||||
tmp_buf[tmp_len++] = 'H';
|
|
||||||
tmp_buf[tmp_len++] = 'E';
|
|
||||||
tmp_buf[tmp_len++] = 'X';
|
|
||||||
tmp_buf[tmp_len++] = '[';
|
|
||||||
|
|
||||||
exec_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), (u8 *) tmp_buf + tmp_len);
|
|
||||||
|
|
||||||
tmp_len += strlen (hashconfig->st_pass) * 2;
|
|
||||||
|
|
||||||
tmp_buf[tmp_len++] = ']';
|
|
||||||
tmp_buf[tmp_len++] = 0;
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, "PASS: %s", tmp_buf);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "PASS: %s", hashconfig->st_pass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "HASH: not stored");
|
|
||||||
event_log_info (hashcat_ctx, "PASS: not stored");
|
|
||||||
}
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
hashconfig_destroy (hashcat_ctx);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -611,53 +658,7 @@ void example_hashes (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
if (hc_path_exist (modulefile) == false) continue;
|
if (hc_path_exist (modulefile) == false) continue;
|
||||||
|
|
||||||
if (hashconfig_init (hashcat_ctx) == 0)
|
hash_info_single (hashcat_ctx, user_options);
|
||||||
{
|
|
||||||
hashconfig_t *hashconfig = hashcat_ctx->hashconfig;
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, "MODE: %u", hashconfig->hash_mode);
|
|
||||||
event_log_info (hashcat_ctx, "TYPE: %s", hashconfig->hash_name);
|
|
||||||
|
|
||||||
if ((hashconfig->st_hash != NULL) && (hashconfig->st_pass != NULL))
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "HASH: %s", hashconfig->st_hash);
|
|
||||||
|
|
||||||
if (need_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), user_options->separator, false))
|
|
||||||
{
|
|
||||||
char tmp_buf[HCBUFSIZ_LARGE] = { 0 };
|
|
||||||
|
|
||||||
int tmp_len = 0;
|
|
||||||
|
|
||||||
tmp_buf[tmp_len++] = '$';
|
|
||||||
tmp_buf[tmp_len++] = 'H';
|
|
||||||
tmp_buf[tmp_len++] = 'E';
|
|
||||||
tmp_buf[tmp_len++] = 'X';
|
|
||||||
tmp_buf[tmp_len++] = '[';
|
|
||||||
|
|
||||||
exec_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), (u8 *) tmp_buf + tmp_len);
|
|
||||||
|
|
||||||
tmp_len += strlen (hashconfig->st_pass) * 2;
|
|
||||||
|
|
||||||
tmp_buf[tmp_len++] = ']';
|
|
||||||
tmp_buf[tmp_len++] = 0;
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, "PASS: %s", tmp_buf);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "PASS: %s", hashconfig->st_pass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "HASH: not stored");
|
|
||||||
event_log_info (hashcat_ctx, "PASS: not stored");
|
|
||||||
}
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
hashconfig_destroy (hashcat_ctx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hcfree (modulefile);
|
hcfree (modulefile);
|
||||||
|
@ -54,7 +54,7 @@ int tuning_db_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
tuning_db->enabled = false;
|
tuning_db->enabled = false;
|
||||||
|
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->keyspace == true) return 0;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
|
@ -89,7 +89,8 @@ static const char *const USAGE_BIG_PRE_HASHMODES[] =
|
|||||||
" --bitmap-max | Num | Sets maximum bits allowed for bitmaps to X | --bitmap-max=24",
|
" --bitmap-max | Num | Sets maximum bits allowed for bitmaps to X | --bitmap-max=24",
|
||||||
" --cpu-affinity | Str | Locks to CPU devices, separated with commas | --cpu-affinity=1,2,3",
|
" --cpu-affinity | Str | Locks to CPU devices, separated with commas | --cpu-affinity=1,2,3",
|
||||||
" --hook-threads | Num | Sets number of threads for a hook (per compute unit) | --hook-threads=8",
|
" --hook-threads | Num | Sets number of threads for a hook (per compute unit) | --hook-threads=8",
|
||||||
" --example-hashes | | Show an example hash for each hash-mode |",
|
" --hash-info | | Show information for each hash-mode |",
|
||||||
|
" --example-hashes | | Alias of --hash-info |",
|
||||||
" --backend-ignore-cuda | | Do not try to open CUDA interface on startup |",
|
" --backend-ignore-cuda | | Do not try to open CUDA interface on startup |",
|
||||||
" --backend-ignore-opencl | | Do not try to open OpenCL interface on startup |",
|
" --backend-ignore-opencl | | Do not try to open OpenCL interface on startup |",
|
||||||
" -I, --backend-info | | Show info about detected backend API devices | -I",
|
" -I, --backend-info | | Show info about detected backend API devices | -I",
|
||||||
|
@ -47,7 +47,7 @@ static const struct option long_options[] =
|
|||||||
{"debug-mode", required_argument, NULL, IDX_DEBUG_MODE},
|
{"debug-mode", required_argument, NULL, IDX_DEBUG_MODE},
|
||||||
{"encoding-from", required_argument, NULL, IDX_ENCODING_FROM},
|
{"encoding-from", required_argument, NULL, IDX_ENCODING_FROM},
|
||||||
{"encoding-to", required_argument, NULL, IDX_ENCODING_TO},
|
{"encoding-to", required_argument, NULL, IDX_ENCODING_TO},
|
||||||
{"example-hashes", no_argument, NULL, IDX_EXAMPLE_HASHES},
|
{"example-hashes", no_argument, NULL, IDX_HASH_INFO}, // alias of hash-info
|
||||||
{"force", no_argument, NULL, IDX_FORCE},
|
{"force", no_argument, NULL, IDX_FORCE},
|
||||||
{"generate-rules-func-max", required_argument, NULL, IDX_RP_GEN_FUNC_MAX},
|
{"generate-rules-func-max", required_argument, NULL, IDX_RP_GEN_FUNC_MAX},
|
||||||
{"generate-rules-func-min", required_argument, NULL, IDX_RP_GEN_FUNC_MIN},
|
{"generate-rules-func-min", required_argument, NULL, IDX_RP_GEN_FUNC_MIN},
|
||||||
@ -55,6 +55,7 @@ static const struct option long_options[] =
|
|||||||
{"generate-rules-seed", required_argument, NULL, IDX_RP_GEN_SEED},
|
{"generate-rules-seed", required_argument, NULL, IDX_RP_GEN_SEED},
|
||||||
{"hwmon-disable", no_argument, NULL, IDX_HWMON_DISABLE},
|
{"hwmon-disable", no_argument, NULL, IDX_HWMON_DISABLE},
|
||||||
{"hwmon-temp-abort", required_argument, NULL, IDX_HWMON_TEMP_ABORT},
|
{"hwmon-temp-abort", required_argument, NULL, IDX_HWMON_TEMP_ABORT},
|
||||||
|
{"hash-info", no_argument, NULL, IDX_HASH_INFO},
|
||||||
{"hash-type", required_argument, NULL, IDX_HASH_MODE},
|
{"hash-type", required_argument, NULL, IDX_HASH_MODE},
|
||||||
{"hccapx-message-pair", required_argument, NULL, IDX_HCCAPX_MESSAGE_PAIR},
|
{"hccapx-message-pair", required_argument, NULL, IDX_HCCAPX_MESSAGE_PAIR},
|
||||||
{"help", no_argument, NULL, IDX_HELP},
|
{"help", no_argument, NULL, IDX_HELP},
|
||||||
@ -184,10 +185,10 @@ int user_options_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
user_options->debug_mode = DEBUG_MODE;
|
user_options->debug_mode = DEBUG_MODE;
|
||||||
user_options->encoding_from = ENCODING_FROM;
|
user_options->encoding_from = ENCODING_FROM;
|
||||||
user_options->encoding_to = ENCODING_TO;
|
user_options->encoding_to = ENCODING_TO;
|
||||||
user_options->example_hashes = EXAMPLE_HASHES;
|
|
||||||
user_options->force = FORCE;
|
user_options->force = FORCE;
|
||||||
user_options->hwmon_disable = HWMON_DISABLE;
|
user_options->hwmon_disable = HWMON_DISABLE;
|
||||||
user_options->hwmon_temp_abort = HWMON_TEMP_ABORT;
|
user_options->hwmon_temp_abort = HWMON_TEMP_ABORT;
|
||||||
|
user_options->hash_info = HASH_INFO;
|
||||||
user_options->hash_mode = HASH_MODE;
|
user_options->hash_mode = HASH_MODE;
|
||||||
user_options->hccapx_message_pair = HCCAPX_MESSAGE_PAIR;
|
user_options->hccapx_message_pair = HCCAPX_MESSAGE_PAIR;
|
||||||
user_options->hex_charset = HEX_CHARSET;
|
user_options->hex_charset = HEX_CHARSET;
|
||||||
@ -380,7 +381,7 @@ int user_options_getopt (hashcat_ctx_t *hashcat_ctx, int argc, char **argv)
|
|||||||
case IDX_ENCODING_TO: user_options->encoding_to = optarg; break;
|
case IDX_ENCODING_TO: user_options->encoding_to = optarg; break;
|
||||||
case IDX_INDUCTION_DIR: user_options->induction_dir = optarg; break;
|
case IDX_INDUCTION_DIR: user_options->induction_dir = optarg; break;
|
||||||
case IDX_OUTFILE_CHECK_DIR: user_options->outfile_check_dir = optarg; break;
|
case IDX_OUTFILE_CHECK_DIR: user_options->outfile_check_dir = optarg; break;
|
||||||
case IDX_EXAMPLE_HASHES: user_options->example_hashes = true; break;
|
case IDX_HASH_INFO: user_options->hash_info = true; break;
|
||||||
case IDX_FORCE: user_options->force = true; break;
|
case IDX_FORCE: user_options->force = true; break;
|
||||||
case IDX_SELF_TEST_DISABLE: user_options->self_test_disable = true; break;
|
case IDX_SELF_TEST_DISABLE: user_options->self_test_disable = true; break;
|
||||||
case IDX_SKIP: user_options->skip = hc_strtoull (optarg, NULL, 10);
|
case IDX_SKIP: user_options->skip = hc_strtoull (optarg, NULL, 10);
|
||||||
@ -1391,7 +1392,7 @@ int user_options_sanity (hashcat_ctx_t *hashcat_ctx)
|
|||||||
show_error = false;
|
show_error = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (user_options->example_hashes == true)
|
else if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
if (user_options->hc_argc == 0)
|
if (user_options->hc_argc == 0)
|
||||||
{
|
{
|
||||||
@ -1589,9 +1590,9 @@ void user_options_session_auto (hashcat_ctx_t *hashcat_ctx)
|
|||||||
user_options->session = "benchmark";
|
user_options->session = "benchmark";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->example_hashes == true)
|
if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
user_options->session = "example_hashes";
|
user_options->session = "hash_info";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->usage == true)
|
if (user_options->usage == true)
|
||||||
@ -1667,7 +1668,7 @@ void user_options_preprocess (hashcat_ctx_t *hashcat_ctx)
|
|||||||
user_options->bitmap_max = 1;
|
user_options->bitmap_max = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->example_hashes == true
|
if (user_options->hash_info == true
|
||||||
|| user_options->backend_info == true
|
|| user_options->backend_info == true
|
||||||
|| user_options->keyspace == true
|
|| user_options->keyspace == true
|
||||||
|| user_options->speed_only == true
|
|| user_options->speed_only == true
|
||||||
@ -1723,7 +1724,7 @@ void user_options_preprocess (hashcat_ctx_t *hashcat_ctx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->example_hashes == true)
|
if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
user_options->quiet = true;
|
user_options->quiet = true;
|
||||||
}
|
}
|
||||||
@ -1837,7 +1838,7 @@ void user_options_preprocess (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
if (user_options->attack_mode == ATTACK_MODE_BF)
|
if (user_options->attack_mode == ATTACK_MODE_BF)
|
||||||
{
|
{
|
||||||
if (user_options->example_hashes == true)
|
if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2058,7 +2059,7 @@ void user_options_extra_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (user_options->example_hashes == true)
|
else if (user_options->hash_info == true)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -3001,7 +3002,7 @@ void user_options_logger (hashcat_ctx_t *hashcat_ctx)
|
|||||||
logfile_top_uint (user_options->bitmap_max);
|
logfile_top_uint (user_options->bitmap_max);
|
||||||
logfile_top_uint (user_options->bitmap_min);
|
logfile_top_uint (user_options->bitmap_min);
|
||||||
logfile_top_uint (user_options->debug_mode);
|
logfile_top_uint (user_options->debug_mode);
|
||||||
logfile_top_uint (user_options->example_hashes);
|
logfile_top_uint (user_options->hash_info);
|
||||||
logfile_top_uint (user_options->force);
|
logfile_top_uint (user_options->force);
|
||||||
logfile_top_uint (user_options->hwmon_disable);
|
logfile_top_uint (user_options->hwmon_disable);
|
||||||
logfile_top_uint (user_options->hwmon_temp_abort);
|
logfile_top_uint (user_options->hwmon_temp_abort);
|
||||||
|
@ -588,7 +588,7 @@ int wl_data_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
wl_data->enabled = false;
|
wl_data->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return 0;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->example_hashes == true) return 0;
|
if (user_options->hash_info == true) return 0;
|
||||||
if (user_options->left == true) return 0;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->backend_info == true) return 0;
|
if (user_options->backend_info == true) return 0;
|
||||||
if (user_options->usage == true) return 0;
|
if (user_options->usage == true) return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user