mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-22 14:48:12 +00:00
Some optical change on startup
This commit is contained in:
parent
d57ac912cc
commit
07acd52ed4
@ -3,9 +3,9 @@ hashcat v3.00
|
||||
|
||||
** THE VERSION 3.00 IS CURRENTLY STILL IN BETA **
|
||||
|
||||
AMD users require AMD drivers 14.9 or later (recommended 15.12 or later)
|
||||
Intel users require Intel OpenCL Runtime 14.2 or later (recommended 15.1 or later)
|
||||
NVidia users require NVidia drivers 346.59 or later (recommended 361.x or later)
|
||||
AMD users require AMD drivers 14.9 or later (recommended 15.12)
|
||||
Intel users require Intel OpenCL Runtime 14.2 or later (recommended 16.2 or later)
|
||||
NVidia users require NVidia drivers 346.59 or later (recommended 367.27 or later)
|
||||
|
||||
##
|
||||
## Features
|
||||
@ -238,4 +238,3 @@ NVidia users require NVidia drivers 346.59 or later (recommended 361.x or later)
|
||||
- DSP
|
||||
- FPGA
|
||||
- Coprocessor
|
||||
|
||||
|
@ -118,13 +118,13 @@ typedef uint32_t uint; // we need to get rid of this sooner or later, for consis
|
||||
* functions
|
||||
*/
|
||||
|
||||
void log_out_nn (FILE *fp, const char *fmt, ...);
|
||||
void log_info_nn (const char *fmt, ...);
|
||||
void log_error_nn (const char *fmt, ...);
|
||||
int log_out_nn (FILE *fp, const char *fmt, ...);
|
||||
int log_info_nn (const char *fmt, ...);
|
||||
int log_error_nn (const char *fmt, ...);
|
||||
|
||||
void log_out (FILE *fp, const char *fmt, ...);
|
||||
void log_info (const char *fmt, ...);
|
||||
void log_error (const char *fmt, ...);
|
||||
int log_out (FILE *fp, const char *fmt, ...);
|
||||
int log_info (const char *fmt, ...);
|
||||
int log_error (const char *fmt, ...);
|
||||
|
||||
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
|
||||
|
119
src/hashcat.c
119
src/hashcat.c
@ -1835,6 +1835,26 @@ static void generate_cached_kernel_amp_filename (const uint attack_kern, char *p
|
||||
snprintf (cached_file, 255, "%s/kernels/amp_a%d.%s.kernel", profile_dir, attack_kern, device_name_chksum);
|
||||
}
|
||||
|
||||
static char *filename_from_filepath (char *filepath)
|
||||
{
|
||||
char *ptr = NULL;
|
||||
|
||||
if ((ptr = strrchr (filepath, '/')) != NULL)
|
||||
{
|
||||
ptr++;
|
||||
}
|
||||
else if ((ptr = strrchr (filepath, '\\')) != NULL)
|
||||
{
|
||||
ptr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr = filepath;
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static uint convert_from_hex (char *line_buf, const uint line_len)
|
||||
{
|
||||
if (line_len & 1) return (line_len); // not in hex
|
||||
@ -3352,8 +3372,8 @@ static void autotune (hc_device_param_t *device_param)
|
||||
{
|
||||
clear_prompt ();
|
||||
|
||||
log_info ("Device #%u: autotuned kernel-accel to %u\n"
|
||||
"Device #%u: autotuned kernel-loops to %u\n",
|
||||
log_info ("- Device #%u: autotuned kernel-accel to %u\n"
|
||||
"- Device #%u: autotuned kernel-loops to %u\n",
|
||||
device_param->device_id + 1, kernel_accel,
|
||||
device_param->device_id + 1, kernel_loops);
|
||||
|
||||
@ -13672,8 +13692,6 @@ int main (int argc, char **argv)
|
||||
|
||||
for (uint platform_id = 0; platform_id < platforms_cnt; platform_id++)
|
||||
{
|
||||
if ((opencl_platforms_filter & (1 << platform_id)) == 0) continue;
|
||||
|
||||
cl_platform_id platform = platforms[platform_id];
|
||||
|
||||
hc_clGetDeviceIDs (data.ocl, platform, CL_DEVICE_TYPE_ALL, DEVICES_MAX, platform_devices, &platform_devices_cnt);
|
||||
@ -13725,6 +13743,33 @@ int main (int argc, char **argv)
|
||||
platform_vendor_id = VENDOR_ID_GENERIC;
|
||||
}
|
||||
|
||||
const uint platform_skipped = ((opencl_platforms_filter & (1 << platform_id)) == 0);
|
||||
|
||||
if ((benchmark == 1 || quiet == 0) && (algorithm_pos == 0))
|
||||
{
|
||||
if (machine_readable == 0)
|
||||
{
|
||||
int len = 0;
|
||||
|
||||
if (platform_skipped == 0)
|
||||
{
|
||||
len = log_info ("OpenCL Platform #%u: %s", platform_id + 1, platform_vendor);
|
||||
}
|
||||
else
|
||||
{
|
||||
len = log_info ("OpenCL Platform #%u: %s, skipped", platform_id + 1, platform_vendor);
|
||||
}
|
||||
|
||||
char line[256] = { 0 };
|
||||
|
||||
for (int i = 0; i < len; i++) line[i] = '=';
|
||||
|
||||
log_info (line);
|
||||
}
|
||||
}
|
||||
|
||||
if (platform_skipped == 1) continue;
|
||||
|
||||
for (uint platform_devices_id = 0; platform_devices_id < platform_devices_cnt; platform_devices_id++)
|
||||
{
|
||||
size_t param_value_size = 0;
|
||||
@ -13918,7 +13963,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (device_endian_little == CL_FALSE)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: not little endian device", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: not little endian device", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -13931,7 +13976,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (device_available == CL_FALSE)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device not available", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device not available", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -13944,7 +13989,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (device_compiler_available == CL_FALSE)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device no compiler available", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device no compiler available", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -13957,7 +14002,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if ((device_execution_capabilities & CL_EXEC_KERNEL) == 0)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device does not support executing kernels", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device does not support executing kernels", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -13974,14 +14019,14 @@ int main (int argc, char **argv)
|
||||
|
||||
if (strstr (device_extensions, "base_atomics") == 0)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device does not support base atomics", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device does not support base atomics", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
|
||||
if (strstr (device_extensions, "byte_addressable_store") == 0)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device does not support byte addressable store", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device does not support byte addressable store", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -13996,7 +14041,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (device_local_mem_size < 32768)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: device local mem size is too small", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: device local mem size is too small", device_id + 1);
|
||||
|
||||
device_param->skipped = 1;
|
||||
}
|
||||
@ -14015,7 +14060,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
if (algorithm_pos == 0)
|
||||
{
|
||||
log_info ("Device #%u: WARNING: not native intel opencl runtime, expect massive speed loss", device_id + 1);
|
||||
log_info ("- Device #%u: WARNING: not native intel opencl runtime, expect massive speed loss", device_id + 1);
|
||||
log_info (" You can use --force to override this but do not post error reports if you do so");
|
||||
}
|
||||
|
||||
@ -14170,7 +14215,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
if (device_param->skipped == 0)
|
||||
{
|
||||
log_info ("Device #%u: %s, %lu/%lu MB allocatable, %uMCU",
|
||||
log_info ("- Device #%u: %s, %lu/%lu MB allocatable, %uMCU",
|
||||
device_id + 1,
|
||||
device_name,
|
||||
(unsigned int) (device_maxmem_alloc / 1024 / 1024),
|
||||
@ -14179,7 +14224,7 @@ int main (int argc, char **argv)
|
||||
}
|
||||
else
|
||||
{
|
||||
log_info ("Device #%u: %s, skipped",
|
||||
log_info ("- Device #%u: %s, skipped",
|
||||
device_id + 1,
|
||||
device_name);
|
||||
}
|
||||
@ -14244,7 +14289,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
if (device_param->kernel_exec_timeout != 0)
|
||||
{
|
||||
if (data.quiet == 0) log_info ("Device #%u: WARNING! Kernel exec timeout is not disabled, it might cause you errors of code 702", device_id + 1);
|
||||
if (data.quiet == 0) log_info ("- Device #%u: WARNING! Kernel exec timeout is not disabled, it might cause you errors of code 702", device_id + 1);
|
||||
if (data.quiet == 0) log_info (" See the wiki on how to disable it: https://hashcat.net/wiki/doku.php?id=timeout_patch");
|
||||
}
|
||||
}
|
||||
@ -14334,6 +14379,14 @@ int main (int argc, char **argv)
|
||||
|
||||
devices_cnt++;
|
||||
}
|
||||
|
||||
if ((benchmark == 1 || quiet == 0) && (algorithm_pos == 0))
|
||||
{
|
||||
if (machine_readable == 0)
|
||||
{
|
||||
log_info ("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (keyspace == 0 && devices_active == 0)
|
||||
@ -14361,14 +14414,6 @@ int main (int argc, char **argv)
|
||||
|
||||
data.devices_active = devices_active;
|
||||
|
||||
if ((benchmark == 1 || quiet == 0) && (algorithm_pos == 0))
|
||||
{
|
||||
if (machine_readable == 0)
|
||||
{
|
||||
log_info ("");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* HM devices: init
|
||||
*/
|
||||
@ -15284,7 +15329,7 @@ int main (int argc, char **argv)
|
||||
/*
|
||||
if (kernel_accel_max == 0)
|
||||
{
|
||||
log_error ("Device #%u: Device does not provide enough allocatable device-memory to handle hash-type %u", device_id + 1, data.hash_mode);
|
||||
log_error ("- Device #%u: Device does not provide enough allocatable device-memory to handle hash-type %u", device_id + 1, data.hash_mode);
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -15296,7 +15341,7 @@ int main (int argc, char **argv)
|
||||
/*
|
||||
if (kernel_accel_max < kernel_accel)
|
||||
{
|
||||
if (quiet == 0) log_info ("Device #%u: Reduced maximum kernel-accel to %u", device_id + 1, kernel_accel_max);
|
||||
if (quiet == 0) log_info ("- Device #%u: Reduced maximum kernel-accel to %u", device_id + 1, kernel_accel_max);
|
||||
|
||||
device_param->kernel_accel = kernel_accel_max;
|
||||
}
|
||||
@ -15342,7 +15387,7 @@ int main (int argc, char **argv)
|
||||
*/
|
||||
|
||||
#ifdef DEBUG
|
||||
log_info ("Device #%u: build_opts '%s'\n", device_id + 1, build_opts);
|
||||
log_info ("- Device #%u: build_opts '%s'\n", device_id + 1, build_opts);
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -15396,7 +15441,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
if (cached == 0)
|
||||
{
|
||||
if (quiet == 0) log_info ("Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, cached_file);
|
||||
if (quiet == 0) log_info ("- Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, filename_from_filepath (cached_file));
|
||||
|
||||
load_kernel (source_file, 1, kernel_lengths, kernel_sources);
|
||||
|
||||
@ -15427,7 +15472,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
device_param->skipped = true;
|
||||
|
||||
log_info ("Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
log_info ("- Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -15447,7 +15492,7 @@ int main (int argc, char **argv)
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG
|
||||
log_info ("Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
log_info ("- Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
#endif
|
||||
|
||||
load_kernel (cached_file, 1, kernel_lengths, kernel_sources);
|
||||
@ -15460,7 +15505,7 @@ int main (int argc, char **argv)
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG
|
||||
log_info ("Device #%u: Kernel %s (%ld bytes)", device_id + 1, source_file, sst.st_size);
|
||||
log_info ("- Device #%u: Kernel %s (%ld bytes)", device_id + 1, source_file, sst.st_size);
|
||||
#endif
|
||||
|
||||
load_kernel (source_file, 1, kernel_lengths, kernel_sources);
|
||||
@ -15507,7 +15552,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
device_param->skipped = true;
|
||||
|
||||
log_info ("Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
log_info ("- Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
}
|
||||
}
|
||||
|
||||
@ -15566,7 +15611,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (cached == 0)
|
||||
{
|
||||
if (quiet == 0) log_info ("Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, cached_file);
|
||||
if (quiet == 0) log_info ("- Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, filename_from_filepath (cached_file));
|
||||
if (quiet == 0) log_info ("");
|
||||
|
||||
load_kernel (source_file, 1, kernel_lengths, kernel_sources);
|
||||
@ -15579,7 +15624,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
device_param->skipped = true;
|
||||
|
||||
log_info ("Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
log_info ("- Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -15599,7 +15644,7 @@ int main (int argc, char **argv)
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG
|
||||
log_info ("Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
log_info ("- Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
#endif
|
||||
|
||||
load_kernel (cached_file, 1, kernel_lengths, kernel_sources);
|
||||
@ -15668,7 +15713,7 @@ int main (int argc, char **argv)
|
||||
|
||||
if (cached == 0)
|
||||
{
|
||||
if (quiet == 0) log_info ("Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, cached_file);
|
||||
if (quiet == 0) log_info ("- Device #%u: Kernel %s not found in cache! Building may take a while...", device_id + 1, filename_from_filepath (cached_file));
|
||||
if (quiet == 0) log_info ("");
|
||||
|
||||
load_kernel (source_file, 1, kernel_lengths, kernel_sources);
|
||||
@ -15681,7 +15726,7 @@ int main (int argc, char **argv)
|
||||
{
|
||||
device_param->skipped = true;
|
||||
|
||||
log_info ("Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
log_info ("- Device #%u: Kernel %s build failure. Proceed without this device.", device_id + 1, source_file);
|
||||
|
||||
continue;
|
||||
}
|
||||
@ -15701,7 +15746,7 @@ int main (int argc, char **argv)
|
||||
else
|
||||
{
|
||||
#ifdef DEBUG
|
||||
if (quiet == 0) log_info ("Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
if (quiet == 0) log_info ("- Device #%u: Kernel %s (%ld bytes)", device_id + 1, cached_file, cst.st_size);
|
||||
#endif
|
||||
|
||||
load_kernel (cached_file, 1, kernel_lengths, kernel_sources);
|
||||
|
52
src/shared.c
52
src/shared.c
@ -83,7 +83,7 @@ u64 byte_swap_64 (const u64 n)
|
||||
|
||||
int last_len = 0;
|
||||
|
||||
void log_final (FILE *fp, const char *fmt, va_list ap)
|
||||
int log_final (FILE *fp, const char *fmt, va_list ap)
|
||||
{
|
||||
if (last_len)
|
||||
{
|
||||
@ -110,84 +110,96 @@ void log_final (FILE *fp, const char *fmt, va_list ap)
|
||||
fflush (fp);
|
||||
|
||||
last_len = len;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_out_nn (FILE *fp, const char *fmt, ...)
|
||||
int log_out_nn (FILE *fp, const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (fp, fmt, ap);
|
||||
const int len = log_final (fp, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_info_nn (const char *fmt, ...)
|
||||
int log_info_nn (const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (stdout, fmt, ap);
|
||||
const int len = log_final (stdout, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_error_nn (const char *fmt, ...)
|
||||
int log_error_nn (const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (stderr, fmt, ap);
|
||||
const int len = log_final (stderr, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_out (FILE *fp, const char *fmt, ...)
|
||||
int log_out (FILE *fp, const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (fp, fmt, ap);
|
||||
const int len = log_final (fp, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
fputc ('\n', fp);
|
||||
|
||||
last_len = 0;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_info (const char *fmt, ...)
|
||||
int log_info (const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (stdout, fmt, ap);
|
||||
const int len = log_final (stdout, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
fputc ('\n', stdout);
|
||||
|
||||
last_len = 0;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
void log_error (const char *fmt, ...)
|
||||
int log_error (const char *fmt, ...)
|
||||
{
|
||||
if (SUPPRESS_OUTPUT) return;
|
||||
if (SUPPRESS_OUTPUT) return 0;
|
||||
|
||||
fputc ('\n', stderr);
|
||||
fputc ('\n', stderr);
|
||||
@ -196,7 +208,7 @@ void log_error (const char *fmt, ...)
|
||||
|
||||
va_start (ap, fmt);
|
||||
|
||||
log_final (stderr, fmt, ap);
|
||||
const int len = log_final (stderr, fmt, ap);
|
||||
|
||||
va_end (ap);
|
||||
|
||||
@ -204,6 +216,8 @@ void log_error (const char *fmt, ...)
|
||||
fputc ('\n', stderr);
|
||||
|
||||
last_len = 0;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user