diff --git a/include/status.h b/include/status.h index 8773f16e3..bce8abc39 100644 --- a/include/status.h +++ b/include/status.h @@ -81,7 +81,9 @@ int status_get_cpt_avg_day (const hashcat_ctx_t *hashcat_ char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx); int status_get_salt_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); int status_get_innerloop_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); +int status_get_innerloop_left_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); int status_get_iteration_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); +int status_get_iteration_left_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); char *status_get_hwmon_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); int status_get_corespeed_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); int status_get_memoryspeed_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id); diff --git a/include/types.h b/include/types.h index a027dce5b..6ef9cf940 100644 --- a/include/types.h +++ b/include/types.h @@ -689,7 +689,7 @@ typedef enum user_options_map IDX_VERACRYPT_PIM = 0xff3e, IDX_VERSION_LOWER = 'v', IDX_VERSION = 'V', - IDX_WORKLOAD_PROFILE = 'w' + IDX_WORKLOAD_PROFILE = 'w', } user_options_map_t; @@ -1864,7 +1864,9 @@ typedef struct device_info int vector_width_dev; int salt_pos_dev; int innerloop_pos_dev; + int innerloop_left_dev; int iteration_pos_dev; + int iteration_left_dev; } device_info_t; diff --git a/src/hashcat.c b/src/hashcat.c index 4e03e7161..7b933d163 100644 --- a/src/hashcat.c +++ b/src/hashcat.c @@ -1403,7 +1403,9 @@ int hashcat_get_status (hashcat_ctx_t *hashcat_ctx, hashcat_status_t *hashcat_st device_info->vector_width_dev = status_get_vector_width_dev (hashcat_ctx, device_id); device_info->salt_pos_dev = status_get_salt_pos_dev (hashcat_ctx, device_id); device_info->innerloop_pos_dev = status_get_innerloop_pos_dev (hashcat_ctx, device_id); + device_info->innerloop_left_dev = status_get_innerloop_left_dev (hashcat_ctx, device_id); device_info->iteration_pos_dev = status_get_iteration_pos_dev (hashcat_ctx, device_id); + device_info->iteration_left_dev = status_get_iteration_left_dev (hashcat_ctx, device_id); } hashcat_status->hashes_msec_all = status_get_hashes_msec_all (hashcat_ctx); diff --git a/src/status.c b/src/status.c index 8fa42c89b..3f38ada96 100644 --- a/src/status.c +++ b/src/status.c @@ -1688,6 +1688,22 @@ int status_get_innerloop_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int de return innerloop_pos; } +int status_get_innerloop_left_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id) +{ + const opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; + + hc_device_param_t *device_param = &opencl_ctx->devices_param[device_id]; + + int innerloop_left = 0; + + if (device_param->skipped == false) + { + innerloop_left = (int) device_param->innerloop_left; + } + + return innerloop_left; +} + int status_get_iteration_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id) { const opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; @@ -1704,6 +1720,22 @@ int status_get_iteration_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int de return iteration_pos; } +int status_get_iteration_left_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id) +{ + const opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; + + hc_device_param_t *device_param = &opencl_ctx->devices_param[device_id]; + + int iteration_left = 0; + + if (device_param->skipped == false) + { + iteration_left = (int) device_param->kernel_params_buf32[29]; + } + + return iteration_left; +} + char *status_get_hwmon_dev (const hashcat_ctx_t *hashcat_ctx, const int device_id) { const opencl_ctx_t *opencl_ctx = hashcat_ctx->opencl_ctx; diff --git a/src/terminal.c b/src/terminal.c index 29767f94b..c11029464 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -1297,10 +1297,12 @@ void status_display (hashcat_ctx_t *hashcat_ctx) if (device_info->skipped_dev == true) continue; event_log_info (hashcat_ctx, - "Restore.Sub.#%d...: Salt:%d Amplifier:%d Iteration:%d", device_id + 1, + "Restore.Sub.#%d...: Salt:%d Amplifier:%d-%d Iteration:%d-%d", device_id + 1, device_info->salt_pos_dev, device_info->innerloop_pos_dev, - device_info->iteration_pos_dev); + device_info->innerloop_pos_dev + device_info->innerloop_left_dev, + device_info->iteration_pos_dev, + device_info->iteration_pos_dev + device_info->iteration_left_dev); } for (int device_id = 0; device_id < hashcat_status->device_info_cnt; device_id++)