Do not write potfile if --potfile-disable is in use

pull/506/head
jsteube 8 years ago
parent e9d6d06300
commit bd9e092ea3

@ -17,24 +17,25 @@
typedef struct
{
char plain_buf[HCBUFSIZ_TINY];
int plain_len;
char plain_buf[HCBUFSIZ_TINY];
int plain_len;
hash_t hash;
hash_t hash;
} pot_t;
typedef struct
{
FILE *fp;
int disable;
char *filename;
FILE *fp;
char *filename;
pot_t *pot;
pot_t *pot;
uint pot_cnt;
uint pot_avail;
uint pot_hashes_avail;
uint pot_cnt;
uint pot_avail;
uint pot_hashes_avail;
} potfile_ctx_t;
@ -43,7 +44,7 @@ int sort_by_salt_buf (const void *v1, const void *v2);
int sort_by_hash_t_salt (const void *v1, const void *v2);
int sort_by_hash_t_salt_hccap (const void *v1, const void *v2);
void potfile_init (potfile_ctx_t *potfile_ctx, const char *profile_dir, const char *potfile_path);
void potfile_init (potfile_ctx_t *potfile_ctx, const char *profile_dir, const char *potfile_path, const uint potfile_disable);
void potfile_format_plain (potfile_ctx_t *potfile_ctx, const unsigned char *plain_ptr, const uint plain_len);
int potfile_read_open (potfile_ctx_t *potfile_ctx);
void potfile_read_parse (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig);

@ -374,14 +374,9 @@ void check_hash (hc_device_param_t *device_param, plain_t *plain)
}
}
// if enabled, update also the potfile
// no need for locking, we're in a mutex protected function
if (potfile_ctx->fp != NULL)
{
potfile_write_append (potfile_ctx, out_buf, plain_ptr, plain_len);
}
potfile_write_append (potfile_ctx, out_buf, plain_ptr, plain_len);
// outfile, can be either to file or stdout
// if an error occurs opening the file, send to stdout as fallback

@ -3639,13 +3639,13 @@ int main (int argc, char **argv)
data.potfile_ctx = potfile_ctx;
potfile_init (potfile_ctx, profile_dir, potfile_path);
potfile_init (potfile_ctx, profile_dir, potfile_path, potfile_disable);
if (show == 1 || left == 1)
{
SUPPRESS_OUTPUT = 1;
int rc = potfile_read_open (potfile_ctx);
const int rc = potfile_read_open (potfile_ctx);
if (rc == -1) return -1;

@ -107,8 +107,12 @@ int sort_by_hash_t_salt_hccap (const void *v1, const void *v2)
return 0;
}
void potfile_init (potfile_ctx_t *potfile_ctx, const char *profile_dir, const char *potfile_path)
void potfile_init (potfile_ctx_t *potfile_ctx, const char *profile_dir, const char *potfile_path, const uint potfile_disable)
{
potfile_ctx->disable = potfile_disable;
if (potfile_ctx->disable == 1) return;
potfile_ctx->fp = NULL;
potfile_ctx->filename = (char *) mymalloc (HCBUFSIZ_TINY);
@ -130,6 +134,8 @@ void potfile_init (potfile_ctx_t *potfile_ctx, const char *profile_dir, const ch
void potfile_format_plain (potfile_ctx_t *potfile_ctx, const unsigned char *plain_ptr, const uint plain_len)
{
if (potfile_ctx->disable == 1) return;
int needs_hexify = 0;
for (uint i = 0; i < plain_len; i++)
@ -168,6 +174,8 @@ void potfile_format_plain (potfile_ctx_t *potfile_ctx, const unsigned char *plai
int potfile_read_open (potfile_ctx_t *potfile_ctx)
{
if (potfile_ctx->disable == 1) return 0;
potfile_ctx->fp = fopen (potfile_ctx->filename, "rb");
if (potfile_ctx->fp == NULL)
@ -182,6 +190,8 @@ int potfile_read_open (potfile_ctx_t *potfile_ctx)
void potfile_read_parse (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig)
{
if (potfile_ctx->disable == 1) return;
potfile_ctx->pot_avail = count_lines (potfile_ctx->fp);
potfile_ctx->pot = (pot_t *) mycalloc (potfile_ctx->pot_avail, sizeof (pot_t));
@ -285,11 +295,15 @@ void potfile_read_parse (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashcon
void potfile_read_close (potfile_ctx_t *potfile_ctx)
{
if (potfile_ctx->disable == 1) return;
fclose (potfile_ctx->fp);
}
int potfile_write_open (potfile_ctx_t *potfile_ctx)
{
if (potfile_ctx->disable == 1) return 0;
potfile_ctx->fp = fopen (potfile_ctx->filename, "ab");
if (potfile_ctx->fp == NULL)
@ -304,11 +318,15 @@ int potfile_write_open (potfile_ctx_t *potfile_ctx)
void potfile_write_close (potfile_ctx_t *potfile_ctx)
{
if (potfile_ctx->disable == 1) return;
fclose (potfile_ctx->fp);
}
void potfile_write_append (potfile_ctx_t *potfile_ctx, const char *out_buf, u8 *plain_ptr, unsigned int plain_len)
{
if (potfile_ctx->disable == 1) return;
FILE *fp = potfile_ctx->fp;
fprintf (fp, "%s:", out_buf);
@ -322,6 +340,8 @@ void potfile_write_append (potfile_ctx_t *potfile_ctx, const char *out_buf, u8 *
void potfile_hash_alloc (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, const uint num)
{
if (potfile_ctx->disable == 1) return;
uint pos = 0;
for (pos = 0; pos < num; pos++)
@ -350,6 +370,8 @@ void potfile_hash_alloc (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashcon
void potfile_hash_free (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig)
{
if (potfile_ctx->disable == 1) return;
for (uint i = 0; i < potfile_ctx->pot_cnt; i++)
{
pot_t *pot_ptr = &potfile_ctx->pot[i];
@ -372,6 +394,8 @@ void potfile_hash_free (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconf
void potfile_show_request (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, outfile_ctx_t *outfile_ctx, char *input_buf, int input_len, hash_t *hashes_buf, int (*sort_by_pot) (const void *, const void *))
{
if (potfile_ctx->disable == 1) return;
pot_t pot_key;
pot_key.hash.salt = hashes_buf->salt;
@ -409,6 +433,8 @@ void potfile_show_request (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashc
void potfile_left_request (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, outfile_ctx_t *outfile_ctx, char *input_buf, int input_len, hash_t *hashes_buf, int (*sort_by_pot) (const void *, const void *))
{
if (potfile_ctx->disable == 1) return;
pot_t pot_key;
memcpy (&pot_key.hash, hashes_buf, sizeof (hash_t));
@ -427,6 +453,8 @@ void potfile_left_request (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashc
void potfile_show_request_lm (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, outfile_ctx_t *outfile_ctx, char *input_buf, int input_len, hash_t *hash_left, hash_t *hash_right, int (*sort_by_pot) (const void *, const void *))
{
if (potfile_ctx->disable == 1) return;
// left
pot_t pot_left_key;
@ -547,6 +575,8 @@ void potfile_show_request_lm (potfile_ctx_t *potfile_ctx, const hashconfig_t *ha
void potfile_left_request_lm (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, outfile_ctx_t *outfile_ctx, char *input_buf, int input_len, hash_t *hash_left, hash_t *hash_right, int (*sort_by_pot) (const void *, const void *))
{
if (potfile_ctx->disable == 1) return;
// left
pot_t pot_left_key;
@ -627,6 +657,8 @@ void potfile_left_request_lm (potfile_ctx_t *potfile_ctx, const hashconfig_t *ha
int potfile_remove_parse (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashconfig, const hash_t *hashes_buf, const uint hashes_cnt)
{
if (potfile_ctx->disable == 1) return 0;
// no solution for these special hash types (for instane because they use hashfile in output etc)
if (hashconfig->hash_mode == 5200)
@ -833,5 +865,7 @@ int potfile_remove_parse (potfile_ctx_t *potfile_ctx, const hashconfig_t *hashco
void potfile_destroy (potfile_ctx_t *potfile_ctx)
{
if (potfile_ctx->disable == 1) return;
myfree (potfile_ctx->filename);
}

Loading…
Cancel
Save