mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-22 22:58:30 +00:00
Added status_get_input_candidates_dev() to status.c
This commit is contained in:
parent
8d81d3bd55
commit
2b28010aae
@ -25,6 +25,7 @@ int status_get_input_mode (const hashcat_ctx_t *hashcat_ctx)
|
|||||||
char *status_get_input_base (const hashcat_ctx_t *hashcat_ctx);
|
char *status_get_input_base (const hashcat_ctx_t *hashcat_ctx);
|
||||||
char *status_get_input_mod (const hashcat_ctx_t *hashcat_ctx);
|
char *status_get_input_mod (const hashcat_ctx_t *hashcat_ctx);
|
||||||
char *status_get_input_charset (const hashcat_ctx_t *hashcat_ctx);
|
char *status_get_input_charset (const hashcat_ctx_t *hashcat_ctx);
|
||||||
|
char *status_get_input_candidates_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id);
|
||||||
char *status_get_hash_type (const hashcat_ctx_t *hashcat_ctx);
|
char *status_get_hash_type (const hashcat_ctx_t *hashcat_ctx);
|
||||||
char *status_get_hash_target (const hashcat_ctx_t *hashcat_ctx);
|
char *status_get_hash_target (const hashcat_ctx_t *hashcat_ctx);
|
||||||
int status_get_digests_done (const hashcat_ctx_t *hashcat_ctx);
|
int status_get_digests_done (const hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -1486,6 +1486,7 @@ typedef struct
|
|||||||
double hashes_msec_dev;
|
double hashes_msec_dev;
|
||||||
double exec_msec_dev;
|
double exec_msec_dev;
|
||||||
char *speed_sec_dev;
|
char *speed_sec_dev;
|
||||||
|
char *input_candidates_dev;
|
||||||
|
|
||||||
} device_info_t;
|
} device_info_t;
|
||||||
|
|
||||||
|
@ -1186,10 +1186,11 @@ int hashcat_get_status (hashcat_ctx_t *hashcat_ctx, hashcat_status_t *hashcat_st
|
|||||||
{
|
{
|
||||||
device_info_t *device_info = hashcat_status->device_info_buf + device_id;
|
device_info_t *device_info = hashcat_status->device_info_buf + device_id;
|
||||||
|
|
||||||
device_info->skipped_dev = status_get_skipped_dev (hashcat_ctx, device_id);
|
device_info->skipped_dev = status_get_skipped_dev (hashcat_ctx, device_id);
|
||||||
device_info->hashes_msec_dev = status_get_hashes_msec_dev (hashcat_ctx, device_id);
|
device_info->hashes_msec_dev = status_get_hashes_msec_dev (hashcat_ctx, device_id);
|
||||||
device_info->exec_msec_dev = status_get_exec_msec_dev (hashcat_ctx, device_id);
|
device_info->exec_msec_dev = status_get_exec_msec_dev (hashcat_ctx, device_id);
|
||||||
device_info->speed_sec_dev = status_get_speed_sec_dev (hashcat_ctx, device_id);
|
device_info->speed_sec_dev = status_get_speed_sec_dev (hashcat_ctx, device_id);
|
||||||
|
device_info->input_candidates_dev = status_get_input_candidates_dev (hashcat_ctx, device_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
hashcat_status->hashes_msec_all = status_get_hashes_msec_all (hashcat_ctx);
|
hashcat_status->hashes_msec_all = status_get_hashes_msec_all (hashcat_ctx);
|
||||||
|
64
src/status.c
64
src/status.c
@ -511,6 +511,70 @@ char *status_get_input_charset (const hashcat_ctx_t *hashcat_ctx)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *status_get_input_candidates_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id)
|
||||||
|
{
|
||||||
|
const opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
|
||||||
|
const user_options_extra_t *user_options_extra = hashcat_ctx->user_options_extra;
|
||||||
|
|
||||||
|
hc_device_param_t *device_param = &opencl_ctx->devices_param[device_id];
|
||||||
|
|
||||||
|
char *display = (char *) malloc (HCBUFSIZ_TINY);
|
||||||
|
|
||||||
|
if (user_options_extra->attack_kern == ATTACK_KERN_BF)
|
||||||
|
{
|
||||||
|
snprintf (display, HCBUFSIZ_TINY - 1, "[Generating]");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf (display, HCBUFSIZ_TINY - 1, "[Copying]");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (device_param->skipped == true) return display;
|
||||||
|
|
||||||
|
if ((device_param->outerloop_left == 0) || (device_param->innerloop_left == 0)) return display;
|
||||||
|
|
||||||
|
const u32 outerloop_first = 0;
|
||||||
|
const u32 outerloop_last = device_param->outerloop_left - 1;
|
||||||
|
|
||||||
|
const u32 innerloop_first = 0;
|
||||||
|
const u32 innerloop_last = device_param->innerloop_left - 1;
|
||||||
|
|
||||||
|
plain_t plain1 = { 0, 0, 0, outerloop_first, innerloop_first };
|
||||||
|
plain_t plain2 = { 0, 0, 0, outerloop_last, innerloop_last };
|
||||||
|
|
||||||
|
u32 plain_buf1[16] = { 0 };
|
||||||
|
u32 plain_buf2[16] = { 0 };
|
||||||
|
|
||||||
|
u8 *plain_ptr1 = (u8 *) plain_buf1;
|
||||||
|
u8 *plain_ptr2 = (u8 *) plain_buf2;
|
||||||
|
|
||||||
|
int plain_len1 = 0;
|
||||||
|
int plain_len2 = 0;
|
||||||
|
|
||||||
|
build_plain ((hashcat_ctx_t *) hashcat_ctx, device_param, &plain1, plain_buf1, &plain_len1);
|
||||||
|
build_plain ((hashcat_ctx_t *) hashcat_ctx, device_param, &plain2, plain_buf2, &plain_len2);
|
||||||
|
|
||||||
|
const bool need_hex1 = need_hexify (plain_ptr1, plain_len1);
|
||||||
|
const bool need_hex2 = need_hexify (plain_ptr2, plain_len2);
|
||||||
|
|
||||||
|
if ((need_hex1 == true) || (need_hex2 == true))
|
||||||
|
{
|
||||||
|
exec_hexify (plain_ptr1, plain_len1, plain_ptr1);
|
||||||
|
exec_hexify (plain_ptr2, plain_len2, plain_ptr2);
|
||||||
|
|
||||||
|
plain_ptr1[plain_len1 * 2] = 0;
|
||||||
|
plain_ptr2[plain_len2 * 2] = 0;
|
||||||
|
|
||||||
|
snprintf (display, HCBUFSIZ_TINY - 1, "$HEX[%s] -> $HEX[%s]", plain_ptr1, plain_ptr2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf (display, HCBUFSIZ_TINY - 1, "%s -> %s", plain_ptr1, plain_ptr2);
|
||||||
|
}
|
||||||
|
|
||||||
|
return display;
|
||||||
|
}
|
||||||
|
|
||||||
int status_get_digests_done (const hashcat_ctx_t *hashcat_ctx)
|
int status_get_digests_done (const hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
const hashes_t *hashes = hashcat_ctx->hashes;
|
const hashes_t *hashes = hashcat_ctx->hashes;
|
||||||
|
@ -611,10 +611,9 @@ void status_display_machine_readable (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
void status_display (hashcat_ctx_t *hashcat_ctx)
|
void status_display (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
|
opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx;
|
||||||
status_ctx_t *status_ctx = hashcat_ctx->status_ctx;
|
status_ctx_t *status_ctx = hashcat_ctx->status_ctx;
|
||||||
user_options_extra_t *user_options_extra = hashcat_ctx->user_options_extra;
|
user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
user_options_t *user_options = hashcat_ctx->user_options;
|
|
||||||
|
|
||||||
if (status_ctx->devices_status == STATUS_INIT)
|
if (status_ctx->devices_status == STATUS_INIT)
|
||||||
{
|
{
|
||||||
@ -660,14 +659,6 @@ void status_display (hashcat_ctx_t *hashcat_ctx)
|
|||||||
status_get_time_estimated_relative (hashcat_ctx));
|
status_get_time_estimated_relative (hashcat_ctx));
|
||||||
event_log_info (hashcat_ctx, "Hash.Type......: %s", status_get_hash_type (hashcat_ctx));
|
event_log_info (hashcat_ctx, "Hash.Type......: %s", status_get_hash_type (hashcat_ctx));
|
||||||
event_log_info (hashcat_ctx, "Hash.Target....: %s", status_get_hash_target (hashcat_ctx));
|
event_log_info (hashcat_ctx, "Hash.Target....: %s", status_get_hash_target (hashcat_ctx));
|
||||||
event_log_info (hashcat_ctx, "Recovered......: %u/%u (%.2f%%) Digests, %u/%u (%.2f%%) Salts",
|
|
||||||
status_get_digests_done (hashcat_ctx),
|
|
||||||
status_get_digests_cnt (hashcat_ctx),
|
|
||||||
status_get_digests_percent (hashcat_ctx),
|
|
||||||
status_get_salts_done (hashcat_ctx),
|
|
||||||
status_get_salts_cnt (hashcat_ctx),
|
|
||||||
status_get_salts_percent (hashcat_ctx));
|
|
||||||
event_log_info (hashcat_ctx, "Recovered/Time.: %s", status_get_cpt (hashcat_ctx));
|
|
||||||
|
|
||||||
switch (status_get_input_mode (hashcat_ctx))
|
switch (status_get_input_mode (hashcat_ctx))
|
||||||
{
|
{
|
||||||
@ -728,6 +719,13 @@ void status_display (hashcat_ctx_t *hashcat_ctx)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int device_id = 0; device_id < status_get_device_info_cnt (hashcat_ctx); device_id++)
|
||||||
|
{
|
||||||
|
if (status_get_skipped_dev (hashcat_ctx, device_id) == true) continue;
|
||||||
|
|
||||||
|
event_log_info (hashcat_ctx, "Candidates.#%d..: %s", device_id + 1, status_get_input_candidates_dev (hashcat_ctx, device_id));
|
||||||
|
}
|
||||||
|
|
||||||
switch (status_get_progress_mode (hashcat_ctx))
|
switch (status_get_progress_mode (hashcat_ctx))
|
||||||
{
|
{
|
||||||
case PROGRESS_MODE_KEYSPACE_KNOWN:
|
case PROGRESS_MODE_KEYSPACE_KNOWN:
|
||||||
@ -751,10 +749,16 @@ void status_display (hashcat_ctx_t *hashcat_ctx)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const int device_info_cnt = status_get_device_info_cnt (hashcat_ctx);
|
event_log_info (hashcat_ctx, "Recovered......: %u/%u (%.2f%%) Digests, %u/%u (%.2f%%) Salts",
|
||||||
const int device_info_active = status_get_device_info_active (hashcat_ctx);
|
status_get_digests_done (hashcat_ctx),
|
||||||
|
status_get_digests_cnt (hashcat_ctx),
|
||||||
|
status_get_digests_percent (hashcat_ctx),
|
||||||
|
status_get_salts_done (hashcat_ctx),
|
||||||
|
status_get_salts_cnt (hashcat_ctx),
|
||||||
|
status_get_salts_percent (hashcat_ctx));
|
||||||
|
event_log_info (hashcat_ctx, "Recovered/Time.: %s", status_get_cpt (hashcat_ctx));
|
||||||
|
|
||||||
for (int device_id = 0; device_id < device_info_cnt; device_id++)
|
for (int device_id = 0; device_id < status_get_device_info_cnt (hashcat_ctx); device_id++)
|
||||||
{
|
{
|
||||||
if (status_get_skipped_dev (hashcat_ctx, device_id) == true) continue;
|
if (status_get_skipped_dev (hashcat_ctx, device_id) == true) continue;
|
||||||
|
|
||||||
@ -763,69 +767,7 @@ void status_display (hashcat_ctx_t *hashcat_ctx)
|
|||||||
status_get_exec_msec_dev (hashcat_ctx, device_id));
|
status_get_exec_msec_dev (hashcat_ctx, device_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device_info_active > 1) event_log_info (hashcat_ctx, "Speed.Dev.#*...: %9sH/s", status_get_speed_sec_all (hashcat_ctx));
|
if (status_get_device_info_active (hashcat_ctx) > 1) event_log_info (hashcat_ctx, "Speed.Dev.#*...: %9sH/s", status_get_speed_sec_all (hashcat_ctx));
|
||||||
|
|
||||||
if (status_ctx->run_main_level1 == false) return;
|
|
||||||
|
|
||||||
for (u32 device_id = 0; device_id < opencl_ctx->devices_cnt; device_id++)
|
|
||||||
{
|
|
||||||
hc_device_param_t *device_param = &opencl_ctx->devices_param[device_id];
|
|
||||||
|
|
||||||
if (device_param->skipped) continue;
|
|
||||||
|
|
||||||
if ((device_param->outerloop_left == 0) || (device_param->innerloop_left == 0))
|
|
||||||
{
|
|
||||||
if (user_options_extra->attack_kern == ATTACK_KERN_BF)
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "Candidates.#%d..: [Generating]", device_id + 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "Candidates.#%d..: [Copying]", device_id + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const u32 outerloop_first = 0;
|
|
||||||
const u32 outerloop_last = device_param->outerloop_left - 1;
|
|
||||||
|
|
||||||
const u32 innerloop_first = 0;
|
|
||||||
const u32 innerloop_last = device_param->innerloop_left - 1;
|
|
||||||
|
|
||||||
plain_t plain1 = { 0, 0, 0, outerloop_first, innerloop_first };
|
|
||||||
plain_t plain2 = { 0, 0, 0, outerloop_last, innerloop_last };
|
|
||||||
|
|
||||||
u32 plain_buf1[16] = { 0 };
|
|
||||||
u32 plain_buf2[16] = { 0 };
|
|
||||||
|
|
||||||
u8 *plain_ptr1 = (u8 *) plain_buf1;
|
|
||||||
u8 *plain_ptr2 = (u8 *) plain_buf2;
|
|
||||||
|
|
||||||
int plain_len1 = 0;
|
|
||||||
int plain_len2 = 0;
|
|
||||||
|
|
||||||
build_plain (hashcat_ctx, device_param, &plain1, plain_buf1, &plain_len1);
|
|
||||||
build_plain (hashcat_ctx, device_param, &plain2, plain_buf2, &plain_len2);
|
|
||||||
|
|
||||||
bool need_hex1 = need_hexify (plain_ptr1, plain_len1);
|
|
||||||
bool need_hex2 = need_hexify (plain_ptr2, plain_len2);
|
|
||||||
|
|
||||||
if ((need_hex1 == true) || (need_hex2 == true))
|
|
||||||
{
|
|
||||||
exec_hexify (plain_ptr1, plain_len1, plain_ptr1);
|
|
||||||
exec_hexify (plain_ptr2, plain_len2, plain_ptr2);
|
|
||||||
|
|
||||||
plain_ptr1[plain_len1 * 2] = 0;
|
|
||||||
plain_ptr2[plain_len2 * 2] = 0;
|
|
||||||
|
|
||||||
event_log_info (hashcat_ctx, "Candidates.#%d..: $HEX[%s] -> $HEX[%s]", device_id + 1, plain_ptr1, plain_ptr2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
event_log_info (hashcat_ctx, "Candidates.#%d..: %s -> %s", device_id + 1, plain_ptr1, plain_ptr2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (user_options->gpu_temp_disable == false)
|
if (user_options->gpu_temp_disable == false)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user