mirror of
https://github.com/hashcat/hashcat.git
synced 2025-02-18 10:32:04 +00:00
Move debugfile related stuff to debugfile.c
This commit is contained in:
parent
ac77ee56e3
commit
376e12efe6
@ -155,8 +155,7 @@ typedef struct
|
|||||||
uint runtime;
|
uint runtime;
|
||||||
uint remove;
|
uint remove;
|
||||||
uint remove_timer;
|
uint remove_timer;
|
||||||
uint debug_mode;
|
|
||||||
char *debug_file;
|
|
||||||
uint hex_charset;
|
uint hex_charset;
|
||||||
uint hex_salt;
|
uint hex_salt;
|
||||||
uint hex_wordlist;
|
uint hex_wordlist;
|
||||||
@ -176,9 +175,10 @@ typedef struct
|
|||||||
|
|
||||||
hashconfig_t *hashconfig;
|
hashconfig_t *hashconfig;
|
||||||
|
|
||||||
outfile_ctx_t *outfile_ctx;
|
outfile_ctx_t *outfile_ctx;
|
||||||
potfile_ctx_t *potfile_ctx;
|
potfile_ctx_t *potfile_ctx;
|
||||||
loopback_ctx_t *loopback_ctx;
|
loopback_ctx_t *loopback_ctx;
|
||||||
|
debugfile_ctx_t *debugfile_ctx;
|
||||||
|
|
||||||
#if defined (HAVE_HWMON)
|
#if defined (HAVE_HWMON)
|
||||||
uint gpu_temp_disable;
|
uint gpu_temp_disable;
|
||||||
|
@ -6,4 +6,21 @@
|
|||||||
#ifndef _DEBUGFILE_H
|
#ifndef _DEBUGFILE_H
|
||||||
#define _DEBUGFILE_H
|
#define _DEBUGFILE_H
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define DEBUG_MODE 0
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
char *filename;
|
||||||
|
uint mode;
|
||||||
|
|
||||||
|
} debugfile_ctx_t;
|
||||||
|
|
||||||
|
int debugfile_init (debugfile_ctx_t *debugfile_ctx, const uint debug_mode, const char *debug_file);
|
||||||
|
void debugfile_destroy (debugfile_ctx_t *debugfile_ctx);
|
||||||
|
void debugfile_format_plain (debugfile_ctx_t *debugfile_ctx, const u8 *plain_ptr, const u32 plain_len);
|
||||||
|
void debugfile_write_append (debugfile_ctx_t *debugfile_ctx, const u8 *rule_buf, const u32 rule_len, const u8 *mod_plain_ptr, const u32 mod_plain_len, const u8 *orig_plain_ptr, const u32 orig_plain_len);
|
||||||
|
|
||||||
#endif // _DEBUGFILE_H
|
#endif // _DEBUGFILE_H
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "opencl.h"
|
#include "opencl.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
@ -4,4 +4,94 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "types_int.h"
|
||||||
|
#include "logging.h"
|
||||||
#include "debugfile.h"
|
#include "debugfile.h"
|
||||||
|
|
||||||
|
int debugfile_init (debugfile_ctx_t *debugfile_ctx, const uint debug_mode, const char *debug_file)
|
||||||
|
{
|
||||||
|
if (debug_mode == 0) return 0;
|
||||||
|
|
||||||
|
if (debug_file == NULL) return 0;
|
||||||
|
|
||||||
|
debugfile_ctx->mode = debug_mode;
|
||||||
|
|
||||||
|
debugfile_ctx->filename = (char *) debug_file;
|
||||||
|
|
||||||
|
debugfile_ctx->fp = fopen (debugfile_ctx->filename, "ab");
|
||||||
|
|
||||||
|
if (debugfile_ctx->fp == NULL)
|
||||||
|
{
|
||||||
|
log_error ("ERROR: Could not open debug-file for writing");
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void debugfile_destroy (debugfile_ctx_t *debugfile_ctx)
|
||||||
|
{
|
||||||
|
fclose (debugfile_ctx->fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
void debugfile_format_plain (debugfile_ctx_t *debugfile_ctx, const u8 *plain_ptr, const u32 plain_len)
|
||||||
|
{
|
||||||
|
int needs_hexify = 0;
|
||||||
|
|
||||||
|
for (uint i = 0; i < plain_len; i++)
|
||||||
|
{
|
||||||
|
if (plain_ptr[i] < 0x20)
|
||||||
|
{
|
||||||
|
needs_hexify = 1;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (plain_ptr[i] > 0x7f)
|
||||||
|
{
|
||||||
|
needs_hexify = 1;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needs_hexify == 1)
|
||||||
|
{
|
||||||
|
fprintf (debugfile_ctx->fp, "$HEX[");
|
||||||
|
|
||||||
|
for (uint i = 0; i < plain_len; i++)
|
||||||
|
{
|
||||||
|
fprintf (debugfile_ctx->fp, "%02x", plain_ptr[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf (debugfile_ctx->fp, "]");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fwrite (plain_ptr, plain_len, 1, debugfile_ctx->fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void debugfile_write_append (debugfile_ctx_t *debugfile_ctx, const u8 *rule_buf, const u32 rule_len, const u8 *mod_plain_ptr, const u32 mod_plain_len, const u8 *orig_plain_ptr, const u32 orig_plain_len)
|
||||||
|
{
|
||||||
|
const uint debug_mode = debugfile_ctx->mode;
|
||||||
|
|
||||||
|
if ((debug_mode == 2) || (debug_mode == 3) || (debug_mode == 4))
|
||||||
|
{
|
||||||
|
debugfile_format_plain (debugfile_ctx, orig_plain_ptr, orig_plain_len);
|
||||||
|
|
||||||
|
if ((debug_mode == 3) || (debug_mode == 4)) fputc (':', debugfile_ctx->fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
fwrite (rule_buf, rule_len, 1, debugfile_ctx->fp);
|
||||||
|
|
||||||
|
if (debug_mode == 4)
|
||||||
|
{
|
||||||
|
fputc (':', debugfile_ctx->fp);
|
||||||
|
|
||||||
|
debugfile_format_plain (debugfile_ctx, mod_plain_ptr, mod_plain_len);
|
||||||
|
}
|
||||||
|
|
||||||
|
fputc ('\n', debugfile_ctx->fp);
|
||||||
|
}
|
||||||
|
147
src/hashcat.c
147
src/hashcat.c
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#if defined (__APPLE__)
|
#if defined (__APPLE__)
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif // __APPLE__
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
@ -59,6 +59,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "affinity.h"
|
#include "affinity.h"
|
||||||
@ -206,85 +207,6 @@ int sort_by_hash_no_salt (const void *v1, const void *v2)
|
|||||||
#define REMOVE 0
|
#define REMOVE 0
|
||||||
#define REMOVE_TIMER 60
|
#define REMOVE_TIMER 60
|
||||||
|
|
||||||
// debug_mode
|
|
||||||
#define DEBUG_MODE 0
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
|
|
||||||
} debug_ctx_t;
|
|
||||||
void debug_format_plain (debug_ctx_t *debug_ctx, const unsigned char *plain_ptr, const uint plain_len)
|
|
||||||
{
|
|
||||||
int needs_hexify = 0;
|
|
||||||
|
|
||||||
for (uint i = 0; i < plain_len; i++)
|
|
||||||
{
|
|
||||||
if (plain_ptr[i] < 0x20)
|
|
||||||
{
|
|
||||||
needs_hexify = 1;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (plain_ptr[i] > 0x7f)
|
|
||||||
{
|
|
||||||
needs_hexify = 1;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (needs_hexify == 1)
|
|
||||||
{
|
|
||||||
fprintf (debug_ctx->fp, "$HEX[");
|
|
||||||
|
|
||||||
for (uint i = 0; i < plain_len; i++)
|
|
||||||
{
|
|
||||||
fprintf (debug_ctx->fp, "%02x", plain_ptr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf (debug_ctx->fp, "]");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fwrite (plain_ptr, plain_len, 1, debug_ctx->fp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void format_debug (char *debug_file, uint debug_mode, unsigned char *orig_plain_ptr, uint orig_plain_len, unsigned char *mod_plain_ptr, uint mod_plain_len, char *rule_buf, int rule_len)
|
|
||||||
{
|
|
||||||
unsigned char *rule_ptr = (unsigned char *) rule_buf;
|
|
||||||
|
|
||||||
debug_ctx_t debug_ctx;
|
|
||||||
|
|
||||||
debug_ctx.fp = fopen (debug_file, "ab");
|
|
||||||
|
|
||||||
if (debug_ctx.fp == NULL)
|
|
||||||
{
|
|
||||||
log_error ("ERROR: Could not open debug-file for writing");
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((debug_mode == 2) || (debug_mode == 3) || (debug_mode == 4))
|
|
||||||
{
|
|
||||||
debug_format_plain (&debug_ctx, orig_plain_ptr, orig_plain_len);
|
|
||||||
|
|
||||||
if ((debug_mode == 3) || (debug_mode == 4)) fputc (':', debug_ctx.fp);
|
|
||||||
}
|
|
||||||
|
|
||||||
fwrite (rule_ptr, rule_len, 1, debug_ctx.fp);
|
|
||||||
|
|
||||||
if (debug_mode == 4)
|
|
||||||
{
|
|
||||||
fputc (':', debug_ctx.fp);
|
|
||||||
|
|
||||||
debug_format_plain (&debug_ctx, mod_plain_ptr, mod_plain_len);
|
|
||||||
}
|
|
||||||
|
|
||||||
fputc ('\n', debug_ctx.fp);
|
|
||||||
|
|
||||||
fclose (debug_ctx.fp);
|
|
||||||
}
|
|
||||||
|
|
||||||
// runtime
|
// runtime
|
||||||
#define RUNTIME 0
|
#define RUNTIME 0
|
||||||
@ -433,15 +355,20 @@ static void check_checkpoint ()
|
|||||||
|
|
||||||
static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
||||||
{
|
{
|
||||||
uint quiet = data.quiet;
|
debugfile_ctx_t *debugfile_ctx = data.debugfile_ctx;
|
||||||
uint debug_mode = data.debug_mode;
|
loopback_ctx_t *loopback_ctx = data.loopback_ctx;
|
||||||
char *debug_file = data.debug_file;
|
outfile_ctx_t *outfile_ctx = data.outfile_ctx;
|
||||||
|
potfile_ctx_t *potfile_ctx = data.potfile_ctx;
|
||||||
|
|
||||||
char debug_rule_buf[BLOCK_SIZE] = { 0 };
|
uint quiet = data.quiet;
|
||||||
int debug_rule_len = 0; // -1 error
|
|
||||||
uint debug_plain_len = 0;
|
|
||||||
|
|
||||||
u8 debug_plain_ptr[BLOCK_SIZE] = { 0 };
|
// debugfile
|
||||||
|
|
||||||
|
u8 debug_rule_buf[BLOCK_SIZE] = { 0 };
|
||||||
|
u32 debug_rule_len = 0; // -1 error
|
||||||
|
|
||||||
|
u8 debug_plain_ptr[BLOCK_SIZE] = { 0 };
|
||||||
|
u32 debug_plain_len = 0;
|
||||||
|
|
||||||
// hash
|
// hash
|
||||||
|
|
||||||
@ -486,6 +413,8 @@ static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
|||||||
|
|
||||||
const uint off = device_param->innerloop_pos + il_pos;
|
const uint off = device_param->innerloop_pos + il_pos;
|
||||||
|
|
||||||
|
const uint debug_mode = debugfile_ctx->mode;
|
||||||
|
|
||||||
if (debug_mode > 0)
|
if (debug_mode > 0)
|
||||||
{
|
{
|
||||||
debug_rule_len = 0;
|
debug_rule_len = 0;
|
||||||
@ -495,7 +424,7 @@ static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
|||||||
{
|
{
|
||||||
memset (debug_rule_buf, 0, sizeof (debug_rule_buf));
|
memset (debug_rule_buf, 0, sizeof (debug_rule_buf));
|
||||||
|
|
||||||
debug_rule_len = kernel_rule_to_cpu_rule (debug_rule_buf, &data.kernel_rules_buf[off]);
|
debug_rule_len = kernel_rule_to_cpu_rule ((char *) debug_rule_buf, &data.kernel_rules_buf[off]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// save plain
|
// save plain
|
||||||
@ -667,9 +596,8 @@ static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
|||||||
// if enabled, update also the potfile
|
// if enabled, update also the potfile
|
||||||
// no need for locking, we're in a mutex protected function
|
// no need for locking, we're in a mutex protected function
|
||||||
|
|
||||||
potfile_ctx_t *potfile_ctx = data.potfile_ctx;
|
|
||||||
|
|
||||||
if (potfile_ctx->fp)
|
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);
|
||||||
}
|
}
|
||||||
@ -678,7 +606,6 @@ static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
|||||||
// if an error occurs opening the file, send to stdout as fallback
|
// if an error occurs opening the file, send to stdout as fallback
|
||||||
// the fp gets opened for each cracked hash so that the user can modify (move) the outfile while hashcat runs
|
// the fp gets opened for each cracked hash so that the user can modify (move) the outfile while hashcat runs
|
||||||
|
|
||||||
outfile_ctx_t *outfile_ctx = data.outfile_ctx;
|
|
||||||
|
|
||||||
outfile_write_open (outfile_ctx);
|
outfile_write_open (outfile_ctx);
|
||||||
|
|
||||||
@ -698,30 +625,23 @@ static void check_hash (hc_device_param_t *device_param, plain_t *plain)
|
|||||||
|
|
||||||
// if enabled, update also the loopback file
|
// if enabled, update also the loopback file
|
||||||
|
|
||||||
loopback_ctx_t *loopback_ctx = data.loopback_ctx;
|
|
||||||
|
|
||||||
if (loopback_ctx->fp)
|
if (loopback_ctx->fp != NULL)
|
||||||
{
|
{
|
||||||
loopback_write_append (loopback_ctx, plain_ptr, plain_len);
|
loopback_write_append (loopback_ctx, plain_ptr, plain_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
// (rule) debug mode
|
// if enabled, update also the (rule) debug file
|
||||||
|
|
||||||
// the next check implies that:
|
if (debugfile_ctx->fp != NULL)
|
||||||
// - (data.attack_mode == ATTACK_MODE_STRAIGHT)
|
|
||||||
// - debug_mode > 0
|
|
||||||
|
|
||||||
if ((debug_plain_len > 0) || (debug_rule_len > 0))
|
|
||||||
{
|
{
|
||||||
if (debug_rule_len < 0) debug_rule_len = 0;
|
// the next check implies that:
|
||||||
|
// - (data.attack_mode == ATTACK_MODE_STRAIGHT)
|
||||||
|
// - debug_mode > 0
|
||||||
|
|
||||||
if ((quiet == 0) && (debug_file == NULL)) clear_prompt ();
|
if ((debug_plain_len > 0) || (debug_rule_len > 0))
|
||||||
|
|
||||||
format_debug (debug_file, debug_mode, debug_plain_ptr, debug_plain_len, plain_ptr, plain_len, debug_rule_buf, debug_rule_len);
|
|
||||||
|
|
||||||
if ((quiet == 0) && (debug_file == NULL))
|
|
||||||
{
|
{
|
||||||
send_prompt ();
|
debugfile_write_append (debugfile_ctx, debug_rule_buf, debug_rule_len, debug_plain_ptr, debug_plain_len, plain_ptr, plain_len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5145,8 +5065,7 @@ int main (int argc, char **argv)
|
|||||||
data.runtime = runtime;
|
data.runtime = runtime;
|
||||||
data.remove = remove;
|
data.remove = remove;
|
||||||
data.remove_timer = remove_timer;
|
data.remove_timer = remove_timer;
|
||||||
data.debug_mode = debug_mode;
|
|
||||||
data.debug_file = debug_file;
|
|
||||||
data.username = username;
|
data.username = username;
|
||||||
data.quiet = quiet;
|
data.quiet = quiet;
|
||||||
|
|
||||||
@ -5545,6 +5464,16 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
loopback_init (loopback_ctx);
|
loopback_init (loopback_ctx);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* debugfile
|
||||||
|
*/
|
||||||
|
|
||||||
|
debugfile_ctx_t *debugfile_ctx = mymalloc (sizeof (debugfile_ctx_t));
|
||||||
|
|
||||||
|
data.debugfile_ctx = debugfile_ctx;
|
||||||
|
|
||||||
|
debugfile_init (debugfile_ctx, debug_mode, debug_file);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* word len
|
* word len
|
||||||
*/
|
*/
|
||||||
@ -12773,6 +12702,8 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
local_free (masks);
|
local_free (masks);
|
||||||
|
|
||||||
|
debugfile_destroy (debugfile_ctx);
|
||||||
|
|
||||||
outfile_destroy (outfile_ctx);
|
outfile_destroy (outfile_ctx);
|
||||||
|
|
||||||
potfile_write_close (potfile_ctx);
|
potfile_write_close (potfile_ctx);
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "hlfmt.h"
|
#include "hlfmt.h"
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "logfile.h"
|
#include "logfile.h"
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
//#include "shared.h"
|
//#include "shared.h"
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "shared.h"
|
#include "shared.h"
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
//#include "shared.h"
|
//#include "shared.h"
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "stdout.h"
|
#include "stdout.h"
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "status.h"
|
#include "status.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include "restore.h"
|
#include "restore.h"
|
||||||
#include "outfile.h"
|
#include "outfile.h"
|
||||||
#include "potfile.h"
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
#include "loopback.h"
|
#include "loopback.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
#include "wordlist.h"
|
#include "wordlist.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user