mirror of
https://github.com/hashcat/hashcat.git
synced 2025-05-09 10:28:48 +00:00
Add some additional start-up checks
This commit is contained in:
parent
3a563ce2e9
commit
52068e25d5
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
int sort_by_dictstat (const void *s1, const void *s2);
|
int sort_by_dictstat (const void *s1, const void *s2);
|
||||||
|
|
||||||
void dictstat_init (hashcat_ctx_t *hashcat_ctx);
|
int dictstat_init (hashcat_ctx_t *hashcat_ctx);
|
||||||
void dictstat_destroy (hashcat_ctx_t *hashcat_ctx);
|
void dictstat_destroy (hashcat_ctx_t *hashcat_ctx);
|
||||||
void dictstat_read (hashcat_ctx_t *hashcat_ctx);
|
void dictstat_read (hashcat_ctx_t *hashcat_ctx);
|
||||||
int dictstat_write (hashcat_ctx_t *hashcat_ctx);
|
int dictstat_write (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
// logfile_append() checks for logfile_disable internally to make it easier from here
|
// logfile_append() checks for logfile_disable internally to make it easier from here
|
||||||
|
|
||||||
@ -36,7 +37,7 @@
|
|||||||
void logfile_generate_topid (hashcat_ctx_t *hashcat_ctx);
|
void logfile_generate_topid (hashcat_ctx_t *hashcat_ctx);
|
||||||
void logfile_generate_subid (hashcat_ctx_t *hashcat_ctx);
|
void logfile_generate_subid (hashcat_ctx_t *hashcat_ctx);
|
||||||
void logfile_append (hashcat_ctx_t *hashcat_ctx, const char *fmt, ...);
|
void logfile_append (hashcat_ctx_t *hashcat_ctx, const char *fmt, ...);
|
||||||
void logfile_init (hashcat_ctx_t *hashcat_ctx);
|
int logfile_init (hashcat_ctx_t *hashcat_ctx);
|
||||||
void logfile_destroy (hashcat_ctx_t *hashcat_ctx);
|
void logfile_destroy (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
|
||||||
#endif // _LOGFILE_H
|
#endif // _LOGFILE_H
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
static const char LOOPBACK_FILE[] = "hashcat.loopback";
|
static const char LOOPBACK_FILE[] = "hashcat.loopback";
|
||||||
|
|
||||||
void loopback_init (hashcat_ctx_t *hashcat_ctx);
|
int loopback_init (hashcat_ctx_t *hashcat_ctx);
|
||||||
void loopback_destroy (hashcat_ctx_t *hashcat_ctx);
|
void loopback_destroy (hashcat_ctx_t *hashcat_ctx);
|
||||||
int loopback_write_open (hashcat_ctx_t *hashcat_ctx);
|
int loopback_write_open (hashcat_ctx_t *hashcat_ctx);
|
||||||
void loopback_write_close (hashcat_ctx_t *hashcat_ctx);
|
void loopback_write_close (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -14,9 +14,9 @@ void build_plain (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_para
|
|||||||
void build_crackpos (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, plain_t *plain, u64 *out_pos);
|
void build_crackpos (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, plain_t *plain, u64 *out_pos);
|
||||||
void build_debugdata (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, plain_t *plain, u8 *debug_rule_buf, int *debug_rule_len, u8 *debug_plain_ptr, int *debug_plain_len);
|
void build_debugdata (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, plain_t *plain, u8 *debug_rule_buf, int *debug_rule_len, u8 *debug_plain_ptr, int *debug_plain_len);
|
||||||
|
|
||||||
void outfile_init (hashcat_ctx_t *hashcat_ctx);
|
int outfile_init (hashcat_ctx_t *hashcat_ctx);
|
||||||
void outfile_destroy (hashcat_ctx_t *hashcat_ctx);
|
void outfile_destroy (hashcat_ctx_t *hashcat_ctx);
|
||||||
void outfile_write_open (hashcat_ctx_t *hashcat_ctx);
|
int outfile_write_open (hashcat_ctx_t *hashcat_ctx);
|
||||||
void outfile_write_close (hashcat_ctx_t *hashcat_ctx);
|
void outfile_write_close (hashcat_ctx_t *hashcat_ctx);
|
||||||
void outfile_write (hashcat_ctx_t *hashcat_ctx, const char *out_buf, const unsigned char *plain_ptr, const u32 plain_len, const u64 crackpos, const unsigned char *username, const u32 user_len);
|
void outfile_write (hashcat_ctx_t *hashcat_ctx, const char *out_buf, const unsigned char *plain_ptr, const u32 plain_len, const u64 crackpos, const unsigned char *username, const u32 user_len);
|
||||||
int outfile_and_hashfile (hashcat_ctx_t *hashcat_ctx);
|
int outfile_and_hashfile (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -20,7 +20,7 @@ int sort_by_hash_t_salt_hccap (const void *v1, const void *v2);
|
|||||||
void hc_qsort_r (void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *, void *), void *arg);
|
void hc_qsort_r (void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *, void *), void *arg);
|
||||||
void *hc_bsearch_r (const void *key, const void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *, void *), void *arg);
|
void *hc_bsearch_r (const void *key, const void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *, void *), void *arg);
|
||||||
|
|
||||||
void potfile_init (hashcat_ctx_t *hashcat_ctx);
|
int potfile_init (hashcat_ctx_t *hashcat_ctx);
|
||||||
int potfile_read_open (hashcat_ctx_t *hashcat_ctx);
|
int potfile_read_open (hashcat_ctx_t *hashcat_ctx);
|
||||||
void potfile_read_parse (hashcat_ctx_t *hashcat_ctx);
|
void potfile_read_parse (hashcat_ctx_t *hashcat_ctx);
|
||||||
void potfile_read_close (hashcat_ctx_t *hashcat_ctx);
|
void potfile_read_close (hashcat_ctx_t *hashcat_ctx);
|
||||||
|
@ -23,7 +23,7 @@ int sort_by_dictstat (const void *s1, const void *s2)
|
|||||||
return memcmp (&d1->stat, &d2->stat, sizeof (struct stat));
|
return memcmp (&d1->stat, &d2->stat, sizeof (struct stat));
|
||||||
}
|
}
|
||||||
|
|
||||||
void dictstat_init (hashcat_ctx_t *hashcat_ctx)
|
int dictstat_init (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
dictstat_ctx_t *dictstat_ctx = hashcat_ctx->dictstat_ctx;
|
dictstat_ctx_t *dictstat_ctx = hashcat_ctx->dictstat_ctx;
|
||||||
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
||||||
@ -31,23 +31,35 @@ void dictstat_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
dictstat_ctx->enabled = false;
|
dictstat_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->keyspace == true) return;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->opencl_info == true) return;
|
if (user_options->opencl_info == true) return 0;
|
||||||
if (user_options->show == true) return;
|
if (user_options->show == true) return 0;
|
||||||
if (user_options->usage == true) return;
|
if (user_options->usage == true) return 0;
|
||||||
if (user_options->version == true) return;
|
if (user_options->version == true) return 0;
|
||||||
|
|
||||||
if (user_options->attack_mode == ATTACK_MODE_BF) return;
|
if (user_options->attack_mode == ATTACK_MODE_BF) return 0;
|
||||||
|
|
||||||
dictstat_ctx->enabled = true;
|
dictstat_ctx->enabled = true;
|
||||||
|
|
||||||
dictstat_ctx->filename = (char *) mymalloc (HCBUFSIZ_TINY);
|
dictstat_ctx->filename = (char *) mymalloc (HCBUFSIZ_TINY);
|
||||||
dictstat_ctx->base = (dictstat_t *) mycalloc (MAX_DICTSTAT, sizeof (dictstat_t));
|
dictstat_ctx->base = (dictstat_t *) mycalloc (MAX_DICTSTAT, sizeof (dictstat_t));
|
||||||
dictstat_ctx->cnt = 0;
|
dictstat_ctx->cnt = 0;
|
||||||
|
|
||||||
snprintf (dictstat_ctx->filename, HCBUFSIZ_TINY - 1, "%s/hashcat.dictstat", folder_config->profile_dir);
|
snprintf (dictstat_ctx->filename, HCBUFSIZ_TINY - 1, "%s/hashcat.dictstat", folder_config->profile_dir);
|
||||||
|
|
||||||
|
FILE *fp = fopen (dictstat_ctx->filename, "wb");
|
||||||
|
|
||||||
|
if (fp == NULL)
|
||||||
|
{
|
||||||
|
log_error ("ERROR: %s: %s", dictstat_ctx->filename, strerror (errno));
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fp);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dictstat_destroy (hashcat_ctx_t *hashcat_ctx)
|
void dictstat_destroy (hashcat_ctx_t *hashcat_ctx)
|
||||||
|
@ -1252,7 +1252,9 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
* folder
|
* folder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
folder_config_init (hashcat_ctx, install_folder, shared_folder);
|
const int rc_folder_config_init = folder_config_init (hashcat_ctx, install_folder, shared_folder);
|
||||||
|
|
||||||
|
if (rc_folder_config_init == -1) return -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* restore
|
* restore
|
||||||
@ -1280,7 +1282,9 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
* logfile init
|
* logfile init
|
||||||
*/
|
*/
|
||||||
|
|
||||||
logfile_init (hashcat_ctx);
|
const int rc_logfile_init = logfile_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_logfile_init == -1) return -1;
|
||||||
|
|
||||||
logfile_generate_topid (hashcat_ctx);
|
logfile_generate_topid (hashcat_ctx);
|
||||||
|
|
||||||
@ -1316,7 +1320,9 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
* outfile itself
|
* outfile itself
|
||||||
*/
|
*/
|
||||||
|
|
||||||
outfile_init (hashcat_ctx);
|
const int rc_outfile_init = outfile_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_outfile_init == -1) return -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sanity check for hashfile vs outfile (should not point to the same physical file)
|
* Sanity check for hashfile vs outfile (should not point to the same physical file)
|
||||||
@ -1332,13 +1338,16 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
* plus it depends on hash_mode, so we continue using it in outer_loop
|
* plus it depends on hash_mode, so we continue using it in outer_loop
|
||||||
*/
|
*/
|
||||||
|
|
||||||
potfile_init (hashcat_ctx);
|
const int rc_potfile_init = potfile_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_potfile_init == -1) return -1;
|
||||||
/**
|
/**
|
||||||
* dictstat init
|
* dictstat init
|
||||||
*/
|
*/
|
||||||
|
|
||||||
dictstat_init (hashcat_ctx);
|
const int rc_dictstat_init = dictstat_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_dictstat_init == -1) return -1;
|
||||||
|
|
||||||
dictstat_read (hashcat_ctx);
|
dictstat_read (hashcat_ctx);
|
||||||
|
|
||||||
@ -1346,13 +1355,17 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
* loopback init
|
* loopback init
|
||||||
*/
|
*/
|
||||||
|
|
||||||
loopback_init (hashcat_ctx);
|
const int rc_loopback_init = loopback_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_loopback_init == -1) return -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* debugfile init
|
* debugfile init
|
||||||
*/
|
*/
|
||||||
|
|
||||||
debugfile_init (hashcat_ctx);
|
const int rc_debugfile_init = debugfile_init (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc_debugfile_init == -1) return -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cpu affinity
|
* cpu affinity
|
||||||
@ -1369,12 +1382,7 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
|
|
||||||
const int rc_opencl_init = opencl_ctx_init (hashcat_ctx);
|
const int rc_opencl_init = opencl_ctx_init (hashcat_ctx);
|
||||||
|
|
||||||
if (rc_opencl_init == -1)
|
if (rc_opencl_init == -1) return -1;
|
||||||
{
|
|
||||||
log_error ("ERROR: opencl_ctx_init() failed");
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init OpenCL devices
|
* Init OpenCL devices
|
||||||
@ -1382,25 +1390,14 @@ int hashcat (hashcat_ctx_t *hashcat_ctx, char *install_folder, char *shared_fold
|
|||||||
|
|
||||||
const int rc_devices_init = opencl_ctx_devices_init (hashcat_ctx, comptime);
|
const int rc_devices_init = opencl_ctx_devices_init (hashcat_ctx, comptime);
|
||||||
|
|
||||||
if (rc_devices_init == -1)
|
if (rc_devices_init == -1) return -1;
|
||||||
{
|
|
||||||
log_error ("ERROR: opencl_ctx_devices_init() failed");
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HM devices: init
|
* HM devices: init
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const int rc_hwmon_init = hwmon_ctx_init (hashcat_ctx);
|
const int rc_hwmon_init = hwmon_ctx_init (hashcat_ctx);
|
||||||
|
|
||||||
if (rc_hwmon_init == -1)
|
if (rc_hwmon_init == -1) return -1;
|
||||||
{
|
|
||||||
log_error ("ERROR: hwmon_ctx_init() failed");
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* keypress thread
|
* keypress thread
|
||||||
|
19
src/hashes.c
19
src/hashes.c
@ -1041,15 +1041,18 @@ int hashes_init_stage1 (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
hashes->hashes_cnt = hashes_cnt;
|
hashes->hashes_cnt = hashes_cnt;
|
||||||
|
|
||||||
if (user_options->quiet == false) log_info_nn ("Sorting Hashes...");
|
if (hashes_cnt)
|
||||||
|
{
|
||||||
|
if (user_options->quiet == false) log_info_nn ("Sorting Hashes...");
|
||||||
|
|
||||||
if (hashconfig->is_salted)
|
if (hashconfig->is_salted)
|
||||||
{
|
{
|
||||||
hc_qsort_r (hashes_buf, hashes_cnt, sizeof (hash_t), sort_by_hash, (void *) hashconfig);
|
hc_qsort_r (hashes_buf, hashes_cnt, sizeof (hash_t), sort_by_hash, (void *) hashconfig);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hc_qsort_r (hashes_buf, hashes_cnt, sizeof (hash_t), sort_by_hash_no_salt, (void *) hashconfig);
|
hc_qsort_r (hashes_buf, hashes_cnt, sizeof (hash_t), sort_by_hash_no_salt, (void *) hashconfig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
#include "logging.h"
|
||||||
#include "logfile.h"
|
#include "logfile.h"
|
||||||
|
|
||||||
static int logfile_generate_id ()
|
static int logfile_generate_id ()
|
||||||
@ -68,13 +69,13 @@ void logfile_append (hashcat_ctx_t *hashcat_ctx, const char *fmt, ...)
|
|||||||
fclose (fp);
|
fclose (fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void logfile_init (hashcat_ctx_t *hashcat_ctx)
|
int logfile_init (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
||||||
logfile_ctx_t *logfile_ctx = hashcat_ctx->logfile_ctx;
|
logfile_ctx_t *logfile_ctx = hashcat_ctx->logfile_ctx;
|
||||||
user_options_t *user_options = hashcat_ctx->user_options;
|
user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
|
|
||||||
if (user_options->logfile_disable == true) return;
|
if (user_options->logfile_disable == true) return 0;
|
||||||
|
|
||||||
logfile_ctx->logfile = (char *) mymalloc (HCBUFSIZ_TINY);
|
logfile_ctx->logfile = (char *) mymalloc (HCBUFSIZ_TINY);
|
||||||
|
|
||||||
@ -84,6 +85,19 @@ void logfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
logfile_ctx->topid = (char *) mymalloc (HCBUFSIZ_TINY);
|
logfile_ctx->topid = (char *) mymalloc (HCBUFSIZ_TINY);
|
||||||
|
|
||||||
logfile_ctx->enabled = true;
|
logfile_ctx->enabled = true;
|
||||||
|
|
||||||
|
FILE *fp = fopen (logfile_ctx->logfile, "wb");
|
||||||
|
|
||||||
|
if (fp == NULL)
|
||||||
|
{
|
||||||
|
log_error ("ERROR: %s: %s", logfile_ctx->logfile, strerror (errno));
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (fp);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void logfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
void logfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
||||||
|
@ -52,27 +52,27 @@ static void loopback_format_plain (hashcat_ctx_t *hashcat_ctx, const u8 *plain_p
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void loopback_init (hashcat_ctx_t *hashcat_ctx)
|
int loopback_init (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
loopback_ctx_t *loopback_ctx = hashcat_ctx->loopback_ctx;
|
loopback_ctx_t *loopback_ctx = hashcat_ctx->loopback_ctx;
|
||||||
user_options_t *user_options = hashcat_ctx->user_options;
|
user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
|
|
||||||
loopback_ctx->enabled = false;
|
loopback_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->keyspace == true) return;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->left == true) return;
|
if (user_options->left == true) return 0;
|
||||||
if (user_options->opencl_info == true) return;
|
if (user_options->opencl_info == true) return 0;
|
||||||
if (user_options->show == true) return;
|
if (user_options->show == true) return 0;
|
||||||
if (user_options->stdout_flag == true) return;
|
if (user_options->stdout_flag == true) return 0;
|
||||||
if (user_options->usage == true) return;
|
if (user_options->usage == true) return 0;
|
||||||
if (user_options->version == true) return;
|
if (user_options->version == true) return 0;
|
||||||
|
|
||||||
loopback_ctx->enabled = true;
|
|
||||||
|
|
||||||
loopback_ctx->fp = NULL;
|
|
||||||
|
|
||||||
|
loopback_ctx->enabled = true;
|
||||||
|
loopback_ctx->fp = NULL;
|
||||||
loopback_ctx->filename = (char *) mymalloc (HCBUFSIZ_TINY);
|
loopback_ctx->filename = (char *) mymalloc (HCBUFSIZ_TINY);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loopback_destroy (hashcat_ctx_t *hashcat_ctx)
|
void loopback_destroy (hashcat_ctx_t *hashcat_ctx)
|
||||||
|
@ -299,7 +299,7 @@ static void outfile_format_plain (hashcat_ctx_t *hashcat_ctx, const unsigned cha
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void outfile_init (hashcat_ctx_t *hashcat_ctx)
|
int outfile_init (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
outfile_ctx_t *outfile_ctx = hashcat_ctx->outfile_ctx;
|
outfile_ctx_t *outfile_ctx = hashcat_ctx->outfile_ctx;
|
||||||
user_options_t *user_options = hashcat_ctx->user_options;
|
user_options_t *user_options = hashcat_ctx->user_options;
|
||||||
@ -317,6 +317,12 @@ void outfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
outfile_ctx->outfile_format = user_options->outfile_format;
|
outfile_ctx->outfile_format = user_options->outfile_format;
|
||||||
outfile_ctx->outfile_autohex = user_options->outfile_autohex;
|
outfile_ctx->outfile_autohex = user_options->outfile_autohex;
|
||||||
|
|
||||||
|
const int rc = outfile_write_open (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc == -1) return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void outfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
void outfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
||||||
@ -326,11 +332,11 @@ void outfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
|||||||
memset (outfile_ctx, 0, sizeof (outfile_ctx_t));
|
memset (outfile_ctx, 0, sizeof (outfile_ctx_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
void outfile_write_open (hashcat_ctx_t *hashcat_ctx)
|
int outfile_write_open (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
outfile_ctx_t *outfile_ctx = hashcat_ctx->outfile_ctx;
|
outfile_ctx_t *outfile_ctx = hashcat_ctx->outfile_ctx;
|
||||||
|
|
||||||
if (outfile_ctx->filename == NULL) return;
|
if (outfile_ctx->filename == NULL) return 0;
|
||||||
|
|
||||||
outfile_ctx->fp = fopen (outfile_ctx->filename, "ab");
|
outfile_ctx->fp = fopen (outfile_ctx->filename, "ab");
|
||||||
|
|
||||||
@ -338,9 +344,10 @@ void outfile_write_open (hashcat_ctx_t *hashcat_ctx)
|
|||||||
{
|
{
|
||||||
log_error ("ERROR: %s: %s", outfile_ctx->filename, strerror (errno));
|
log_error ("ERROR: %s: %s", outfile_ctx->filename, strerror (errno));
|
||||||
|
|
||||||
outfile_ctx->fp = stdout;
|
return -1;
|
||||||
outfile_ctx->filename = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void outfile_write_close (hashcat_ctx_t *hashcat_ctx)
|
void outfile_write_close (hashcat_ctx_t *hashcat_ctx)
|
||||||
|
@ -188,7 +188,7 @@ static void potfile_format_plain (hashcat_ctx_t *hashcat_ctx, const unsigned cha
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void potfile_init (hashcat_ctx_t *hashcat_ctx)
|
int potfile_init (hashcat_ctx_t *hashcat_ctx)
|
||||||
{
|
{
|
||||||
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
folder_config_t *folder_config = hashcat_ctx->folder_config;
|
||||||
potfile_ctx_t *potfile_ctx = hashcat_ctx->potfile_ctx;
|
potfile_ctx_t *potfile_ctx = hashcat_ctx->potfile_ctx;
|
||||||
@ -196,13 +196,13 @@ void potfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
|
|
||||||
potfile_ctx->enabled = false;
|
potfile_ctx->enabled = false;
|
||||||
|
|
||||||
if (user_options->benchmark == true) return;
|
if (user_options->benchmark == true) return 0;
|
||||||
if (user_options->keyspace == true) return;
|
if (user_options->keyspace == true) return 0;
|
||||||
if (user_options->opencl_info == true) return;
|
if (user_options->opencl_info == true) return 0;
|
||||||
if (user_options->stdout_flag == true) return;
|
if (user_options->stdout_flag == true) return 0;
|
||||||
if (user_options->usage == true) return;
|
if (user_options->usage == true) return 0;
|
||||||
if (user_options->version == true) return;
|
if (user_options->version == true) return 0;
|
||||||
if (user_options->potfile_disable == true) return;
|
if (user_options->potfile_disable == true) return 0;
|
||||||
|
|
||||||
potfile_ctx->enabled = true;
|
potfile_ctx->enabled = true;
|
||||||
|
|
||||||
@ -219,10 +219,18 @@ void potfile_init (hashcat_ctx_t *hashcat_ctx)
|
|||||||
potfile_ctx->fp = NULL;
|
potfile_ctx->fp = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int rc = potfile_write_open (hashcat_ctx);
|
||||||
|
|
||||||
|
if (rc == -1) return -1;
|
||||||
|
|
||||||
|
potfile_write_close (hashcat_ctx);
|
||||||
|
|
||||||
potfile_ctx->pot = NULL;
|
potfile_ctx->pot = NULL;
|
||||||
potfile_ctx->pot_cnt = 0;
|
potfile_ctx->pot_cnt = 0;
|
||||||
potfile_ctx->pot_avail = 0;
|
potfile_ctx->pot_avail = 0;
|
||||||
potfile_ctx->pot_hashes_avail = 0;
|
potfile_ctx->pot_hashes_avail = 0;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void potfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
void potfile_destroy (hashcat_ctx_t *hashcat_ctx)
|
||||||
|
Loading…
Reference in New Issue
Block a user