mirror of https://github.com/hashcat/hashcat.git
Add all defaults for user commandline parameters to user_options.h; Prepare user commandline parameter struct for easier handling of functions calls that require them
parent
ced3b3b82f
commit
e6f083b708
@ -0,0 +1,255 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#ifndef _USER_OPTIONS_H
|
||||
#define _USER_OPTIONS_H
|
||||
|
||||
#include <getopt.h>
|
||||
|
||||
typedef enum user_options_defaults
|
||||
{
|
||||
ATTACK_MODE = 0,
|
||||
BENCHMARK = 0,
|
||||
BITMAP_MAX = 24,
|
||||
BITMAP_MIN = 16,
|
||||
DEBUG_MODE = 0,
|
||||
FORCE = 0,
|
||||
GPU_TEMP_ABORT = 90,
|
||||
GPU_TEMP_DISABLE = 0,
|
||||
GPU_TEMP_RETAIN = 75,
|
||||
HASH_MODE = 0,
|
||||
HEX_CHARSET = 0,
|
||||
HEX_SALT = 0,
|
||||
HEX_WORDLIST = 0,
|
||||
INCREMENT = 0,
|
||||
INCREMENT_MAX = PW_MAX,
|
||||
INCREMENT_MIN = 1,
|
||||
KERNEL_ACCEL = 0,
|
||||
KERNEL_LOOPS = 0,
|
||||
KEYSPACE = 0,
|
||||
LEFT = 0,
|
||||
LIMIT = 0,
|
||||
LOGFILE_DISABLE = 0,
|
||||
LOOPBACK = 0,
|
||||
MACHINE_READABLE = 0,
|
||||
MARKOV_CLASSIC = 0,
|
||||
MARKOV_DISABLE = 0,
|
||||
MARKOV_THRESHOLD = 0,
|
||||
NVIDIA_SPIN_DAMP = 100,
|
||||
OPENCL_VECTOR_WIDTH = 0,
|
||||
OUTFILE_AUTOHEX = 1,
|
||||
OUTFILE_CHECK_TIMER = 5,
|
||||
OUTFILE_FORMAT = 3,
|
||||
POTFILE_DISABLE = 0,
|
||||
POWERTUNE_ENABLE = 0,
|
||||
QUIET = 0,
|
||||
REMOVE = 0,
|
||||
REMOVE_TIMER = 60,
|
||||
RESTORE = 0,
|
||||
RESTORE_DISABLE = 0,
|
||||
RESTORE_TIMER = 60,
|
||||
RP_GEN = 0,
|
||||
RP_GEN_FUNC_MAX = 4,
|
||||
RP_GEN_FUNC_MIN = 1,
|
||||
RP_GEN_SEED = 0,
|
||||
RUNTIME = 0,
|
||||
SCRYPT_TMTO = 0,
|
||||
SEGMENT_SIZE = 32,
|
||||
SEPARATOR = ':',
|
||||
SHOW = 0,
|
||||
SKIP = 0,
|
||||
STATUS = 0,
|
||||
STATUS_TIMER = 10,
|
||||
STDOUT_FLAG = 0,
|
||||
USAGE = 0,
|
||||
USERNAME = 0,
|
||||
VERSION = 0,
|
||||
WEAK_HASH_THRESHOLD = 100,
|
||||
WORKLOAD_PROFILE = 2,
|
||||
|
||||
} user_options_defaults_t;
|
||||
|
||||
static char RULE_BUF_R[] = ":";
|
||||
static char RULE_BUF_L[] = ":";
|
||||
|
||||
typedef enum user_options_map
|
||||
{
|
||||
IDX_ATTACK_MODE = 'a',
|
||||
IDX_BENCHMARK = 'b',
|
||||
IDX_BITMAP_MAX = 0xff00,
|
||||
IDX_BITMAP_MIN = 0xff01,
|
||||
IDX_CPU_AFFINITY = 0xff02,
|
||||
IDX_CUSTOM_CHARSET_1 = '1',
|
||||
IDX_CUSTOM_CHARSET_2 = '2',
|
||||
IDX_CUSTOM_CHARSET_3 = '3',
|
||||
IDX_CUSTOM_CHARSET_4 = '4',
|
||||
IDX_DEBUG_FILE = 0xff03,
|
||||
IDX_DEBUG_MODE = 0xff04,
|
||||
IDX_FORCE = 0xff05,
|
||||
IDX_GPU_TEMP_ABORT = 0xff06,
|
||||
IDX_GPU_TEMP_DISABLE = 0xff07,
|
||||
IDX_GPU_TEMP_RETAIN = 0xff08,
|
||||
IDX_HASH_MODE = 'm',
|
||||
IDX_HELP = 'h',
|
||||
IDX_HEX_CHARSET = 0xff09,
|
||||
IDX_HEX_SALT = 0xff0a,
|
||||
IDX_HEX_WORDLIST = 0xff0b,
|
||||
IDX_INCREMENT = 'i',
|
||||
IDX_INCREMENT_MAX = 0xff0c,
|
||||
IDX_INCREMENT_MIN = 0xff0d,
|
||||
IDX_INDUCTION_DIR = 0xff0e,
|
||||
IDX_KERNEL_ACCEL = 'n',
|
||||
IDX_KERNEL_LOOPS = 'u',
|
||||
IDX_KEYSPACE = 0xff0f,
|
||||
IDX_LEFT = 0xff10,
|
||||
IDX_LIMIT = 'l',
|
||||
IDX_LOGFILE_DISABLE = 0xff11,
|
||||
IDX_LOOPBACK = 0xff12,
|
||||
IDX_MACHINE_READABLE = 0xff13,
|
||||
IDX_MARKOV_CLASSIC = 0xff14,
|
||||
IDX_MARKOV_DISABLE = 0xff15,
|
||||
IDX_MARKOV_HCSTAT = 0xff16,
|
||||
IDX_MARKOV_THRESHOLD = 't',
|
||||
IDX_NVIDIA_SPIN_DAMP = 0xff17,
|
||||
IDX_OPENCL_DEVICES = 'd',
|
||||
IDX_OPENCL_DEVICE_TYPES = 'D',
|
||||
IDX_OPENCL_INFO = 'I',
|
||||
IDX_OPENCL_PLATFORMS = 0xff18,
|
||||
IDX_OPENCL_VECTOR_WIDTH = 0xff19,
|
||||
IDX_OUTFILE_AUTOHEX_DISABLE = 0xff1a,
|
||||
IDX_OUTFILE_CHECK_DIR = 0xff1b,
|
||||
IDX_OUTFILE_CHECK_TIMER = 0xff1c,
|
||||
IDX_OUTFILE_FORMAT = 0xff1d,
|
||||
IDX_OUTFILE = 'o',
|
||||
IDX_POTFILE_DISABLE = 0xff1e,
|
||||
IDX_POTFILE_PATH = 0xff1f,
|
||||
IDX_POWERTUNE_ENABLE = 0xff20,
|
||||
IDX_QUIET = 0xff21,
|
||||
IDX_REMOVE = 0xff22,
|
||||
IDX_REMOVE_TIMER = 0xff23,
|
||||
IDX_RESTORE = 0xff24,
|
||||
IDX_RESTORE_DISABLE = 0xff25,
|
||||
IDX_RP_FILE = 'r',
|
||||
IDX_RP_GEN_FUNC_MAX = 0xff26,
|
||||
IDX_RP_GEN_FUNC_MIN = 0xff27,
|
||||
IDX_RP_GEN = 'g',
|
||||
IDX_RP_GEN_SEED = 0xff28,
|
||||
IDX_RULE_BUF_L = 'j',
|
||||
IDX_RULE_BUF_R = 'k',
|
||||
IDX_RUNTIME = 0xff29,
|
||||
IDX_SCRYPT_TMTO = 0xff2a,
|
||||
IDX_SEGMENT_SIZE = 'c',
|
||||
IDX_SEPARATOR = 'p',
|
||||
IDX_SESSION = 0xff2b,
|
||||
IDX_SHOW = 0xff2c,
|
||||
IDX_SKIP = 's',
|
||||
IDX_STATUS = 0xff2d,
|
||||
IDX_STATUS_TIMER = 0xff2e,
|
||||
IDX_STDOUT_FLAG = 0xff2f,
|
||||
IDX_TRUECRYPT_KEYFILES = 0xff30,
|
||||
IDX_USERNAME = 0xff31,
|
||||
IDX_VERACRYPT_KEYFILES = 0xff32,
|
||||
IDX_VERACRYPT_PIM = 0xff33,
|
||||
IDX_VERSION_LOWER = 'v',
|
||||
IDX_VERSION = 'V',
|
||||
IDX_WEAK_HASH_THRESHOLD = 0xff34,
|
||||
IDX_WORKLOAD_PROFILE = 'w'
|
||||
|
||||
} user_options_map_t;
|
||||
|
||||
static const char short_options[] = "hVvm:a:r:j:k:g:o:t:d:D:n:u:c:p:s:l:1:2:3:4:iIbw:";
|
||||
|
||||
static const struct option long_options[] =
|
||||
{
|
||||
{"help", no_argument, 0, IDX_HELP},
|
||||
{"version", no_argument, 0, IDX_VERSION},
|
||||
{"quiet", no_argument, 0, IDX_QUIET},
|
||||
{"show", no_argument, 0, IDX_SHOW},
|
||||
{"left", no_argument, 0, IDX_LEFT},
|
||||
{"username", no_argument, 0, IDX_USERNAME},
|
||||
{"remove", no_argument, 0, IDX_REMOVE},
|
||||
{"remove-timer", required_argument, 0, IDX_REMOVE_TIMER},
|
||||
{"skip", required_argument, 0, IDX_SKIP},
|
||||
{"limit", required_argument, 0, IDX_LIMIT},
|
||||
{"keyspace", no_argument, 0, IDX_KEYSPACE},
|
||||
{"potfile-disable", no_argument, 0, IDX_POTFILE_DISABLE},
|
||||
{"potfile-path", required_argument, 0, IDX_POTFILE_PATH},
|
||||
{"debug-mode", required_argument, 0, IDX_DEBUG_MODE},
|
||||
{"debug-file", required_argument, 0, IDX_DEBUG_FILE},
|
||||
{"induction-dir", required_argument, 0, IDX_INDUCTION_DIR},
|
||||
{"outfile-check-dir", required_argument, 0, IDX_OUTFILE_CHECK_DIR},
|
||||
{"force", no_argument, 0, IDX_FORCE},
|
||||
{"benchmark", no_argument, 0, IDX_BENCHMARK},
|
||||
{"stdout", no_argument, 0, IDX_STDOUT_FLAG},
|
||||
{"restore", no_argument, 0, IDX_RESTORE},
|
||||
{"restore-disable", no_argument, 0, IDX_RESTORE_DISABLE},
|
||||
{"status", no_argument, 0, IDX_STATUS},
|
||||
{"status-timer", required_argument, 0, IDX_STATUS_TIMER},
|
||||
{"machine-readable", no_argument, 0, IDX_MACHINE_READABLE},
|
||||
{"loopback", no_argument, 0, IDX_LOOPBACK},
|
||||
{"weak-hash-threshold", required_argument, 0, IDX_WEAK_HASH_THRESHOLD},
|
||||
{"session", required_argument, 0, IDX_SESSION},
|
||||
{"runtime", required_argument, 0, IDX_RUNTIME},
|
||||
{"generate-rules", required_argument, 0, IDX_RP_GEN},
|
||||
{"generate-rules-func-min", required_argument, 0, IDX_RP_GEN_FUNC_MIN},
|
||||
{"generate-rules-func-max", required_argument, 0, IDX_RP_GEN_FUNC_MAX},
|
||||
{"generate-rules-seed", required_argument, 0, IDX_RP_GEN_SEED},
|
||||
{"rule-left", required_argument, 0, IDX_RULE_BUF_L},
|
||||
{"rule-right", required_argument, 0, IDX_RULE_BUF_R},
|
||||
{"hash-type", required_argument, 0, IDX_HASH_MODE},
|
||||
{"attack-mode", required_argument, 0, IDX_ATTACK_MODE},
|
||||
{"rules-file", required_argument, 0, IDX_RP_FILE},
|
||||
{"outfile", required_argument, 0, IDX_OUTFILE},
|
||||
{"outfile-format", required_argument, 0, IDX_OUTFILE_FORMAT},
|
||||
{"outfile-autohex-disable", no_argument, 0, IDX_OUTFILE_AUTOHEX_DISABLE},
|
||||
{"outfile-check-timer", required_argument, 0, IDX_OUTFILE_CHECK_TIMER},
|
||||
{"hex-charset", no_argument, 0, IDX_HEX_CHARSET},
|
||||
{"hex-salt", no_argument, 0, IDX_HEX_SALT},
|
||||
{"hex-wordlist", no_argument, 0, IDX_HEX_WORDLIST},
|
||||
{"markov-disable", no_argument, 0, IDX_MARKOV_DISABLE},
|
||||
{"markov-classic", no_argument, 0, IDX_MARKOV_CLASSIC},
|
||||
{"markov-threshold", required_argument, 0, IDX_MARKOV_THRESHOLD},
|
||||
{"markov-hcstat", required_argument, 0, IDX_MARKOV_HCSTAT},
|
||||
{"cpu-affinity", required_argument, 0, IDX_CPU_AFFINITY},
|
||||
{"opencl-info", no_argument, 0, IDX_OPENCL_INFO},
|
||||
{"opencl-devices", required_argument, 0, IDX_OPENCL_DEVICES},
|
||||
{"opencl-platforms", required_argument, 0, IDX_OPENCL_PLATFORMS},
|
||||
{"opencl-device-types", required_argument, 0, IDX_OPENCL_DEVICE_TYPES},
|
||||
{"opencl-vector-width", required_argument, 0, IDX_OPENCL_VECTOR_WIDTH},
|
||||
{"workload-profile", required_argument, 0, IDX_WORKLOAD_PROFILE},
|
||||
{"kernel-accel", required_argument, 0, IDX_KERNEL_ACCEL},
|
||||
{"kernel-loops", required_argument, 0, IDX_KERNEL_LOOPS},
|
||||
{"nvidia-spin-damp", required_argument, 0, IDX_NVIDIA_SPIN_DAMP},
|
||||
{"gpu-temp-disable", no_argument, 0, IDX_GPU_TEMP_DISABLE},
|
||||
#if defined (HAVE_HWMON)
|
||||
{"gpu-temp-abort", required_argument, 0, IDX_GPU_TEMP_ABORT},
|
||||
{"gpu-temp-retain", required_argument, 0, IDX_GPU_TEMP_RETAIN},
|
||||
{"powertune-enable", no_argument, 0, IDX_POWERTUNE_ENABLE},
|
||||
#endif // HAVE_HWMON
|
||||
{"logfile-disable", no_argument, 0, IDX_LOGFILE_DISABLE},
|
||||
{"truecrypt-keyfiles", required_argument, 0, IDX_TRUECRYPT_KEYFILES},
|
||||
{"veracrypt-keyfiles", required_argument, 0, IDX_VERACRYPT_KEYFILES},
|
||||
{"veracrypt-pim", required_argument, 0, IDX_VERACRYPT_PIM},
|
||||
{"segment-size", required_argument, 0, IDX_SEGMENT_SIZE},
|
||||
{"scrypt-tmto", required_argument, 0, IDX_SCRYPT_TMTO},
|
||||
{"seperator", required_argument, 0, IDX_SEPARATOR},
|
||||
{"separator", required_argument, 0, IDX_SEPARATOR},
|
||||
{"bitmap-min", required_argument, 0, IDX_BITMAP_MIN},
|
||||
{"bitmap-max", required_argument, 0, IDX_BITMAP_MAX},
|
||||
{"increment", no_argument, 0, IDX_INCREMENT},
|
||||
{"increment-min", required_argument, 0, IDX_INCREMENT_MIN},
|
||||
{"increment-max", required_argument, 0, IDX_INCREMENT_MAX},
|
||||
{"custom-charset1", required_argument, 0, IDX_CUSTOM_CHARSET_1},
|
||||
{"custom-charset2", required_argument, 0, IDX_CUSTOM_CHARSET_2},
|
||||
{"custom-charset3", required_argument, 0, IDX_CUSTOM_CHARSET_3},
|
||||
{"custom-charset4", required_argument, 0, IDX_CUSTOM_CHARSET_4},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
void user_options_init (user_options_t *user_options);
|
||||
|
||||
void user_options_destroy (user_options_t *user_options);
|
||||
|
||||
#endif // _USER_OPTIONS_H
|
@ -0,0 +1,98 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "types.h"
|
||||
#include "memory.h"
|
||||
#include "interface.h"
|
||||
#include "user_options.h"
|
||||
|
||||
void user_options_init (user_options_t *user_options)
|
||||
{
|
||||
user_options->attack_mode = ATTACK_MODE;
|
||||
user_options->benchmark = BENCHMARK;
|
||||
user_options->bitmap_max = BITMAP_MAX;
|
||||
user_options->bitmap_min = BITMAP_MIN;
|
||||
user_options->cpu_affinity = NULL;
|
||||
user_options->custom_charset_1 = NULL;
|
||||
user_options->custom_charset_2 = NULL;
|
||||
user_options->custom_charset_3 = NULL;
|
||||
user_options->custom_charset_4 = NULL;
|
||||
user_options->debug_file = NULL;
|
||||
user_options->debug_mode = DEBUG_MODE;
|
||||
user_options->force = FORCE;
|
||||
user_options->gpu_temp_abort = GPU_TEMP_ABORT;
|
||||
user_options->gpu_temp_disable = GPU_TEMP_DISABLE;
|
||||
user_options->gpu_temp_retain = GPU_TEMP_RETAIN;
|
||||
user_options->hash_mode = HASH_MODE;
|
||||
user_options->hex_charset = HEX_CHARSET;
|
||||
user_options->hex_salt = HEX_SALT;
|
||||
user_options->hex_wordlist = HEX_WORDLIST;
|
||||
user_options->increment = INCREMENT;
|
||||
user_options->increment_max = INCREMENT_MAX;
|
||||
user_options->increment_min = INCREMENT_MIN;
|
||||
user_options->induction_dir = NULL;
|
||||
user_options->kernel_accel = KERNEL_ACCEL;
|
||||
user_options->kernel_loops = KERNEL_LOOPS;
|
||||
user_options->keyspace = KEYSPACE;
|
||||
user_options->left = LEFT;
|
||||
user_options->limit = LIMIT;
|
||||
user_options->logfile_disable = LOGFILE_DISABLE;
|
||||
user_options->loopback = LOOPBACK;
|
||||
user_options->machine_readable = MACHINE_READABLE;
|
||||
user_options->markov_classic = MARKOV_CLASSIC;
|
||||
user_options->markov_disable = MARKOV_DISABLE;
|
||||
user_options->markov_hcstat = NULL;
|
||||
user_options->markov_threshold = MARKOV_THRESHOLD;
|
||||
user_options->nvidia_spin_damp = NVIDIA_SPIN_DAMP;
|
||||
user_options->opencl_devices = NULL;
|
||||
user_options->opencl_device_types = NULL;
|
||||
user_options->opencl_info = 0;
|
||||
user_options->opencl_platforms = NULL;
|
||||
user_options->opencl_vector_width = OPENCL_VECTOR_WIDTH;
|
||||
user_options->outfile_autohex = OUTFILE_AUTOHEX;
|
||||
user_options->outfile_check_dir = NULL;
|
||||
user_options->outfile_check_timer = OUTFILE_CHECK_TIMER;
|
||||
user_options->outfile_format = OUTFILE_FORMAT;
|
||||
user_options->outfile = NULL;
|
||||
user_options->potfile_disable = POTFILE_DISABLE;
|
||||
user_options->potfile_path = NULL;
|
||||
user_options->powertune_enable = POWERTUNE_ENABLE;
|
||||
user_options->quiet = QUIET;
|
||||
user_options->remove = REMOVE;
|
||||
user_options->remove_timer = REMOVE_TIMER;
|
||||
user_options->restore_disable = RESTORE_DISABLE;
|
||||
user_options->restore = RESTORE;
|
||||
user_options->restore_timer = RESTORE_TIMER;
|
||||
user_options->rp_gen_func_max = RP_GEN_FUNC_MAX;
|
||||
user_options->rp_gen_func_min = RP_GEN_FUNC_MIN;
|
||||
user_options->rp_gen = RP_GEN;
|
||||
user_options->rp_gen_seed = RP_GEN_SEED;
|
||||
user_options->rule_buf_l = RULE_BUF_L;
|
||||
user_options->rule_buf_r = RULE_BUF_R;
|
||||
user_options->runtime = RUNTIME;
|
||||
user_options->scrypt_tmto = SCRYPT_TMTO;
|
||||
user_options->segment_size = SEGMENT_SIZE;
|
||||
user_options->separator = SEPARATOR;
|
||||
user_options->session = NULL;
|
||||
user_options->show = SHOW;
|
||||
user_options->skip = SKIP;
|
||||
user_options->status = STATUS;
|
||||
user_options->status_timer = STATUS_TIMER;
|
||||
user_options->stdout_flag = STDOUT_FLAG;
|
||||
user_options->truecrypt_keyfiles = NULL;
|
||||
user_options->usage = USAGE;
|
||||
user_options->username = USERNAME;
|
||||
user_options->veracrypt_keyfiles = NULL;
|
||||
user_options->veracrypt_pim = 0;
|
||||
user_options->version = VERSION;
|
||||
user_options->weak_hash_threshold = WEAK_HASH_THRESHOLD;
|
||||
user_options->workload_profile = WORKLOAD_PROFILE;
|
||||
}
|
||||
|
||||
void user_options_destroy (user_options_t *user_options)
|
||||
{
|
||||
myfree (user_options);
|
||||
}
|
Loading…
Reference in new issue