mirror of
https://github.com/hashcat/hashcat.git
synced 2025-02-27 06:42:05 +00:00
Windows doesn't accept escape characters, falling back to old method for windows
This commit is contained in:
parent
268b1e3ad0
commit
6d2aa559a6
@ -1668,7 +1668,7 @@ int veracrypt_parse_hash_327661 (char *input_buf, uint input_len, hash_t *hash
|
|||||||
int veracrypt_parse_hash_655331 (char *input_buf, uint input_len, hash_t *hash_buf);
|
int veracrypt_parse_hash_655331 (char *input_buf, uint input_len, hash_t *hash_buf);
|
||||||
int win8phone_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
|
int win8phone_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
|
||||||
|
|
||||||
void naive_escape (const char *cpath_real, char *cpath_escaped);
|
void naive_escape (const char *cpath_real, char *cpath_escaped, const size_t cpath_escaped_len);
|
||||||
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources);
|
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources);
|
||||||
void writeProgramBin (char *dst, u8 *binary, size_t binary_size);
|
void writeProgramBin (char *dst, u8 *binary, size_t binary_size);
|
||||||
|
|
||||||
|
@ -15395,31 +15395,51 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
char cpath[1024] = { 0 };
|
char cpath[1024] = { 0 };
|
||||||
|
|
||||||
|
char build_opts[1024] = { 0 };
|
||||||
|
|
||||||
#if _WIN
|
#if _WIN
|
||||||
|
|
||||||
snprintf (cpath, sizeof (cpath) - 1, "%s\\OpenCL\\", shared_dir);
|
snprintf (cpath, sizeof (cpath) - 1, "%s\\OpenCL\\", shared_dir);
|
||||||
|
|
||||||
char cpath_real[MAX_PATH] = { 0 };
|
char cpath_real[MAX_PATH] = { 0 };
|
||||||
|
|
||||||
GetFullPathName (cpath, MAX_PATH, cpath_real, NULL);
|
if (GetFullPathName (cpath, MAX_PATH, cpath_real, NULL) == 0)
|
||||||
|
{
|
||||||
|
log_error ("ERROR: %s: %s", cpath, "GetFullPathName()");
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf (build_opts, sizeof (build_opts) - 1, "-I \"%s\"", cpath_real);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
snprintf (cpath, sizeof (cpath) - 1, "%s/OpenCL/", shared_dir);
|
snprintf (cpath, sizeof (cpath) - 1, "%s/OpenCL/", shared_dir);
|
||||||
|
|
||||||
char *cpath_real = realpath (cpath, NULL);
|
char cpath_real[PATH_MAX] = { 0 };
|
||||||
|
|
||||||
#endif
|
if (realpath (cpath, cpath_real) == NULL)
|
||||||
|
{
|
||||||
|
log_error ("ERROR: %s: %s", cpath, strerror (errno));
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
char cpath_escaped[1024] = { 0 };
|
char cpath_escaped[1024] = { 0 };
|
||||||
|
|
||||||
naive_escape (cpath_real, cpath_escaped);
|
naive_escape (cpath_real, cpath_escaped, sizeof (cpath_escaped));
|
||||||
|
|
||||||
|
snprintf (build_opts, sizeof (build_opts) - 1, "-I %s", cpath_real);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// we don't have sm_* on vendors not NV but it doesn't matter
|
// we don't have sm_* on vendors not NV but it doesn't matter
|
||||||
|
|
||||||
char build_opts[1024] = { 0 };
|
char build_opts_new[1024] = { 0 };
|
||||||
|
|
||||||
snprintf (build_opts, sizeof (build_opts) - 1, "-I %s -D VENDOR_ID=%u -D CUDA_ARCH=%d -D VECT_SIZE=%u -D DEVICE_TYPE=%u -D KERN_TYPE=%u -D _unroll -cl-std=CL1.1", cpath_escaped, device_param->device_vendor_id, (device_param->sm_major * 100) + device_param->sm_minor, device_param->vector_width, (u32) device_param->device_type, kern_type);
|
snprintf (build_opts_new, sizeof (build_opts_new) - 1, "%s -D VENDOR_ID=%u -D CUDA_ARCH=%d -D VECT_SIZE=%u -D DEVICE_TYPE=%u -D KERN_TYPE=%u -D _unroll -cl-std=CL1.1", build_opts, device_param->device_vendor_id, (device_param->sm_major * 100) + device_param->sm_minor, device_param->vector_width, (u32) device_param->device_type, kern_type);
|
||||||
|
|
||||||
|
strncpy (build_opts, build_opts_new, sizeof (build_opts));
|
||||||
|
|
||||||
#ifdef DEBUG
|
#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);
|
||||||
|
10
src/shared.c
10
src/shared.c
@ -9220,9 +9220,9 @@ void myquit ()
|
|||||||
data.devices_status = STATUS_QUIT;
|
data.devices_status = STATUS_QUIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
void naive_escape (const char *cpath_real, char *cpath_escaped)
|
void naive_escape (const char *cpath_real, char *cpath_escaped, const size_t cpath_escaped_len)
|
||||||
{
|
{
|
||||||
const size_t len = MIN (strlen (cpath_real), 1024);
|
const size_t len = strlen (cpath_real);
|
||||||
|
|
||||||
for (size_t in = 0, out = 0; in < len; in++, out++)
|
for (size_t in = 0, out = 0; in < len; in++, out++)
|
||||||
{
|
{
|
||||||
@ -9230,15 +9230,13 @@ void naive_escape (const char *cpath_real, char *cpath_escaped)
|
|||||||
|
|
||||||
if (c == ' ')
|
if (c == ' ')
|
||||||
{
|
{
|
||||||
#if _WIN
|
|
||||||
cpath_escaped[out] = '^';
|
|
||||||
#else
|
|
||||||
cpath_escaped[out] = '\\';
|
cpath_escaped[out] = '\\';
|
||||||
#endif
|
|
||||||
|
|
||||||
out++;
|
out++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (out == cpath_escaped_len) break;
|
||||||
|
|
||||||
cpath_escaped[out] = c;
|
cpath_escaped[out] = c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user