mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-01 20:38:14 +00:00
Add special marker for speed only mode
This commit is contained in:
parent
00bd356ade
commit
91e522d094
@ -1048,6 +1048,7 @@ typedef struct hc_device_param
|
|||||||
u32 speed_pos;
|
u32 speed_pos;
|
||||||
u64 speed_cnt[SPEED_CACHE];
|
u64 speed_cnt[SPEED_CACHE];
|
||||||
double speed_msec[SPEED_CACHE];
|
double speed_msec[SPEED_CACHE];
|
||||||
|
bool speed_only_finish;
|
||||||
|
|
||||||
hc_timer_t timer_speed;
|
hc_timer_t timer_speed;
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ static int calc_stdin (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_par
|
|||||||
|
|
||||||
if (status_ctx->run_thread_level1 == false) break;
|
if (status_ctx->run_thread_level1 == false) break;
|
||||||
|
|
||||||
if (user_options->speed_only == true) break;
|
if (device_param->speed_only_finish == true) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
device_param->kernel_accel_prev = device_param->kernel_accel;
|
device_param->kernel_accel_prev = device_param->kernel_accel;
|
||||||
@ -363,7 +363,7 @@ static int calc (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param)
|
|||||||
|
|
||||||
device_param->pws_cnt = 0;
|
device_param->pws_cnt = 0;
|
||||||
|
|
||||||
if (user_options->speed_only == true) break;
|
if (device_param->speed_only_finish == true) break;
|
||||||
|
|
||||||
if (status_ctx->run_thread_level2 == true)
|
if (status_ctx->run_thread_level2 == true)
|
||||||
{
|
{
|
||||||
@ -668,7 +668,7 @@ static int calc (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->speed_only == true) break;
|
if (device_param->speed_only_finish == true) break;
|
||||||
|
|
||||||
if (status_ctx->run_thread_level2 == true)
|
if (status_ctx->run_thread_level2 == true)
|
||||||
{
|
{
|
||||||
|
@ -26007,6 +26007,24 @@ u32 hashconfig_get_kernel_threads (hashcat_ctx_t *hashcat_ctx, const hc_device_p
|
|||||||
if (device_param->kernel_preferred_wgs_multiple_loop2) kernel_threads = MIN (kernel_threads, device_param->kernel_preferred_wgs_multiple_loop2);
|
if (device_param->kernel_preferred_wgs_multiple_loop2) kernel_threads = MIN (kernel_threads, device_param->kernel_preferred_wgs_multiple_loop2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (hashconfig->attack_exec == ATTACK_EXEC_INSIDE_KERNEL)
|
||||||
|
{
|
||||||
|
if (hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL)
|
||||||
|
{
|
||||||
|
if (device_param->kernel_wgs1) kernel_threads = MIN (kernel_threads, device_param->kernel_wgs1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (device_param->kernel_wgs4) kernel_threads = MIN (kernel_threads, device_param->kernel_wgs4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (device_param->kernel_wgs2) kernel_threads = MIN (kernel_threads, device_param->kernel_wgs2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// we'll return a number power of two, makes future processing much more easy
|
// we'll return a number power of two, makes future processing much more easy
|
||||||
// kernel_threads = power_of_two_floor_32 (kernel_threads);
|
// kernel_threads = power_of_two_floor_32 (kernel_threads);
|
||||||
|
17
src/opencl.c
17
src/opencl.c
@ -1322,7 +1322,9 @@ int choose_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
|
|||||||
{
|
{
|
||||||
device_param->speed_pos = 1;
|
device_param->speed_pos = 1;
|
||||||
|
|
||||||
return -2; // special RC
|
device_param->speed_only_finish = true;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1528,7 +1530,7 @@ int run_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, con
|
|||||||
|
|
||||||
kernel_threads = MIN (kernel_threads, device_param->kernel_threads);
|
kernel_threads = MIN (kernel_threads, device_param->kernel_threads);
|
||||||
|
|
||||||
kernel_threads = power_of_two_floor_32 (kernel_threads);
|
// kernel_threads = power_of_two_floor_32 (kernel_threads);
|
||||||
|
|
||||||
while (num_elements % kernel_threads) num_elements++;
|
while (num_elements % kernel_threads) num_elements++;
|
||||||
|
|
||||||
@ -2468,10 +2470,7 @@ int run_cracker (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, co
|
|||||||
* benchmark was aborted because too long kernel runtime (slow hashes only)
|
* benchmark was aborted because too long kernel runtime (slow hashes only)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (user_options->speed_only == true)
|
if (device_param->speed_only_finish == true) break;
|
||||||
{
|
|
||||||
if (rc == -2) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* speed
|
* speed
|
||||||
@ -2549,6 +2548,8 @@ int run_cracker (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, co
|
|||||||
|
|
||||||
device_param->speed_pos = 1;
|
device_param->speed_pos = 1;
|
||||||
|
|
||||||
|
device_param->speed_only_finish = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2569,7 +2570,7 @@ int run_cracker (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, co
|
|||||||
device_param->outerloop_msec += device_param->speed_msec[0] * m * hashes->salts_cnt;
|
device_param->outerloop_msec += device_param->speed_msec[0] * m * hashes->salts_cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_options->speed_only == true) break;
|
if (device_param->speed_only_finish == true) break;
|
||||||
|
|
||||||
//status screen makes use of this, can't reset here
|
//status screen makes use of this, can't reset here
|
||||||
//device_param->innerloop_pos = 0;
|
//device_param->innerloop_pos = 0;
|
||||||
@ -6317,6 +6318,8 @@ void opencl_session_reset (hashcat_ctx_t *hashcat_ctx)
|
|||||||
memset (device_param->speed_cnt, 0, SPEED_CACHE * sizeof (u64));
|
memset (device_param->speed_cnt, 0, SPEED_CACHE * sizeof (u64));
|
||||||
memset (device_param->speed_msec, 0, SPEED_CACHE * sizeof (double));
|
memset (device_param->speed_msec, 0, SPEED_CACHE * sizeof (double));
|
||||||
|
|
||||||
|
device_param->speed_only_finish = false;
|
||||||
|
|
||||||
device_param->exec_pos = 0;
|
device_param->exec_pos = 0;
|
||||||
|
|
||||||
memset (device_param->exec_msec, 0, EXEC_CACHE * sizeof (double));
|
memset (device_param->exec_msec, 0, EXEC_CACHE * sizeof (double));
|
||||||
|
Loading…
Reference in New Issue
Block a user