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

Fixed integer overflow in Recovered/Time status view column caused by division > 0 but < 1

This commit is contained in:
Jens Steube 2021-06-18 07:57:15 +02:00
parent 62397283c1
commit 3119525ea3
3 changed files with 48 additions and 32 deletions

View File

@ -6,6 +6,7 @@
- Fixed 'E' rule in pure kernel mode which was ignoring letters that are in positions that are multiples of 4 - Fixed 'E' rule in pure kernel mode which was ignoring letters that are in positions that are multiples of 4
- Fixed false negative in hash-mode 15900 (DPAPI masterkey file v2) if password was longer than 64 characters - Fixed false negative in hash-mode 15900 (DPAPI masterkey file v2) if password was longer than 64 characters
- Fixed integer overflow in Recovered/Time status view column caused by division > 0 but < 1
## ##
## Improvements ## Improvements

View File

@ -77,9 +77,9 @@ char *status_get_speed_sec_dev (const hashcat_ctx_t *hash
int status_get_cpt_cur_min (const hashcat_ctx_t *hashcat_ctx); int status_get_cpt_cur_min (const hashcat_ctx_t *hashcat_ctx);
int status_get_cpt_cur_hour (const hashcat_ctx_t *hashcat_ctx); int status_get_cpt_cur_hour (const hashcat_ctx_t *hashcat_ctx);
int status_get_cpt_cur_day (const hashcat_ctx_t *hashcat_ctx); int status_get_cpt_cur_day (const hashcat_ctx_t *hashcat_ctx);
int status_get_cpt_avg_min (const hashcat_ctx_t *hashcat_ctx); double status_get_cpt_avg_min (const hashcat_ctx_t *hashcat_ctx);
int status_get_cpt_avg_hour (const hashcat_ctx_t *hashcat_ctx); double status_get_cpt_avg_hour (const hashcat_ctx_t *hashcat_ctx);
int status_get_cpt_avg_day (const hashcat_ctx_t *hashcat_ctx); double status_get_cpt_avg_day (const hashcat_ctx_t *hashcat_ctx);
char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx); char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx);
int status_get_salt_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int backend_devices_idx); int status_get_salt_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int backend_devices_idx);
int status_get_innerloop_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int backend_devices_idx); int status_get_innerloop_pos_dev (const hashcat_ctx_t *hashcat_ctx, const int backend_devices_idx);

View File

@ -1618,37 +1618,58 @@ int status_get_cpt_cur_day (const hashcat_ctx_t *hashcat_ctx)
return cpt_cur_day; return cpt_cur_day;
} }
int status_get_cpt_avg_min (const hashcat_ctx_t *hashcat_ctx) double status_get_cpt_avg_min (const hashcat_ctx_t *hashcat_ctx)
{ {
const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx; const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx;
const double msec_real = status_get_msec_real (hashcat_ctx); const double msec_real = status_get_msec_real (hashcat_ctx);
const double cpt_avg_min = (double) cpt_ctx->cpt_total / ((msec_real / 1000) / 60); const double min_real = (msec_real / 1000) / 60;
return (int) cpt_avg_min; double cpt_avg_min = 0;
if (min_real > 1)
{
cpt_avg_min = (double) cpt_ctx->cpt_total / min_real;
} }
int status_get_cpt_avg_hour (const hashcat_ctx_t *hashcat_ctx) return cpt_avg_min;
{
const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx;
const double msec_real = status_get_msec_real (hashcat_ctx);
const double cpt_avg_hour = (double) cpt_ctx->cpt_total / ((msec_real / 1000) / 3600);
return (int) cpt_avg_hour;
} }
int status_get_cpt_avg_day (const hashcat_ctx_t *hashcat_ctx) double status_get_cpt_avg_hour (const hashcat_ctx_t *hashcat_ctx)
{ {
const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx; const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx;
const double msec_real = status_get_msec_real (hashcat_ctx); const double msec_real = status_get_msec_real (hashcat_ctx);
const double cpt_avg_day = (double) cpt_ctx->cpt_total / ((msec_real / 1000) / 86400); const double hour_real = (msec_real / 1000) / (60 * 60);
return (int) cpt_avg_day; double cpt_avg_hour = 0;
if (hour_real > 1)
{
cpt_avg_hour = (double) cpt_ctx->cpt_total / hour_real;
}
return cpt_avg_hour;
}
double status_get_cpt_avg_day (const hashcat_ctx_t *hashcat_ctx)
{
const cpt_ctx_t *cpt_ctx = hashcat_ctx->cpt_ctx;
const double msec_real = status_get_msec_real (hashcat_ctx);
const double day_real = (msec_real / 1000) / (60 * 60 * 24);
double cpt_avg_day = 0;
if (day_real > 1)
{
cpt_avg_day = (double) cpt_ctx->cpt_total / day_real;
}
return cpt_avg_day;
} }
char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx) char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx)
@ -1663,13 +1684,13 @@ char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx)
const int cpt_cur_hour = status_get_cpt_cur_hour (hashcat_ctx); const int cpt_cur_hour = status_get_cpt_cur_hour (hashcat_ctx);
const int cpt_cur_day = status_get_cpt_cur_day (hashcat_ctx); const int cpt_cur_day = status_get_cpt_cur_day (hashcat_ctx);
const int cpt_avg_min = status_get_cpt_avg_min (hashcat_ctx); const double cpt_avg_min = status_get_cpt_avg_min (hashcat_ctx);
const int cpt_avg_hour = status_get_cpt_avg_hour (hashcat_ctx); const double cpt_avg_hour = status_get_cpt_avg_hour (hashcat_ctx);
const int cpt_avg_day = status_get_cpt_avg_day (hashcat_ctx); const double cpt_avg_day = status_get_cpt_avg_day (hashcat_ctx);
if ((cpt_ctx->cpt_start + 86400) < now) if ((cpt_ctx->cpt_start + (60 * 60 * 24)) < now)
{ {
hc_asprintf (&cpt, "CUR:%d,%d,%d AVG:%d,%d,%d (Min,Hour,Day)", hc_asprintf (&cpt, "CUR:%d,%d,%d AVG:%.2f,%.2f,%.2f (Min,Hour,Day)",
cpt_cur_min, cpt_cur_min,
cpt_cur_hour, cpt_cur_hour,
cpt_cur_day, cpt_cur_day,
@ -1677,29 +1698,23 @@ char *status_get_cpt (const hashcat_ctx_t *hashcat_ctx)
cpt_avg_hour, cpt_avg_hour,
cpt_avg_day); cpt_avg_day);
} }
else if ((cpt_ctx->cpt_start + 3600) < now) else if ((cpt_ctx->cpt_start + (60 * 60)) < now)
{ {
hc_asprintf (&cpt, "CUR:%d,%d,N/A AVG:%d,%d,%d (Min,Hour,Day)", hc_asprintf (&cpt, "CUR:%d,%d,N/A AVG:%.2f,%.2f,N/a (Min,Hour,Day)",
cpt_cur_min, cpt_cur_min,
cpt_cur_hour, cpt_cur_hour,
cpt_avg_min, cpt_avg_min,
cpt_avg_hour, cpt_avg_hour);
cpt_avg_day);
} }
else if ((cpt_ctx->cpt_start + 60) < now) else if ((cpt_ctx->cpt_start + 60) < now)
{ {
hc_asprintf (&cpt, "CUR:%d,N/A,N/A AVG:%d,%d,%d (Min,Hour,Day)", hc_asprintf (&cpt, "CUR:%d,N/A,N/A AVG:%.2f,N/A,N/A (Min,Hour,Day)",
cpt_cur_min, cpt_cur_min,
cpt_avg_min, cpt_avg_min);
cpt_avg_hour,
cpt_avg_day);
} }
else else
{ {
hc_asprintf (&cpt, "CUR:N/A,N/A,N/A AVG:%d,%d,%d (Min,Hour,Day)", hc_asprintf (&cpt, "CUR:N/A,N/A,N/A AVG:N/A,N/A,N/A (Min,Hour,Day)");
cpt_avg_min,
cpt_avg_hour,
cpt_avg_day);
} }
return cpt; return cpt;