mirror of
https://github.com/hashcat/hashcat.git
synced 2024-11-22 08:08:10 +00:00
WPA/WPA2 cracking: In the potfile, replace password with PMK in order to detect already cracked networks across all WPA modes
This commit is contained in:
parent
c0a31b3239
commit
b8d609ba16
@ -14,6 +14,15 @@
|
||||
#include "inc_hash_sha1.cl"
|
||||
#include "inc_hash_sha256.cl"
|
||||
#include "inc_cipher_aes.cl"
|
||||
#else
|
||||
#include "inc_vendor.h"
|
||||
#include "inc_types.h"
|
||||
#include "inc_common.h"
|
||||
#include "inc_simd.h"
|
||||
#include "inc_hash_md5.h"
|
||||
#include "inc_hash_sha1.h"
|
||||
#include "inc_hash_sha256.h"
|
||||
#include "inc_cipher_aes.h"
|
||||
#endif
|
||||
|
||||
#define COMPARE_S "inc_comp_single.cl"
|
||||
@ -34,7 +43,6 @@ typedef struct wpa_eapol
|
||||
u8 essid_len;
|
||||
u8 essid[32];
|
||||
u32 keymic[4];
|
||||
u32 hash[4];
|
||||
int nonce_compare;
|
||||
int nonce_error_corrections;
|
||||
int detected_le;
|
||||
|
@ -46,7 +46,6 @@ typedef struct wpa_eapol
|
||||
u8 essid_len;
|
||||
u8 essid[32];
|
||||
u32 keymic[4];
|
||||
u32 hash[4];
|
||||
int nonce_compare;
|
||||
int nonce_error_corrections;
|
||||
int detected_le;
|
||||
@ -54,6 +53,7 @@ typedef struct wpa_eapol
|
||||
|
||||
} wpa_eapol_t;
|
||||
|
||||
#ifdef KERNEL_STATIC
|
||||
DECLSPEC static u8 hex_convert (const u8 c)
|
||||
{
|
||||
return (c & 15) + (c >> 6) * 9;
|
||||
@ -68,6 +68,7 @@ DECLSPEC static u8 hex_to_u8 (const u8 *hex)
|
||||
|
||||
return (v);
|
||||
}
|
||||
#endif
|
||||
|
||||
DECLSPEC static void make_kn (u32 *k)
|
||||
{
|
||||
|
@ -11,6 +11,12 @@
|
||||
#include "inc_common.cl"
|
||||
#include "inc_simd.cl"
|
||||
#include "inc_hash_sha1.cl"
|
||||
#else
|
||||
#include "inc_vendor.h"
|
||||
#include "inc_types.h"
|
||||
#include "inc_common.h"
|
||||
#include "inc_simd.h"
|
||||
#include "inc_hash_sha1.h"
|
||||
#endif
|
||||
|
||||
#define COMPARE_S "inc_comp_single.cl"
|
||||
@ -280,9 +286,23 @@ KERNEL_FQ void m16800_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pbkdf2_tmp_t, wpa_pmkid_t)
|
||||
const u32 r2 = sha1_hmac_ctx.opad.h[2];
|
||||
const u32 r3 = sha1_hmac_ctx.opad.h[3];
|
||||
|
||||
#define il_pos 0
|
||||
|
||||
#ifdef KERNEL_STATIC
|
||||
|
||||
#define il_pos 0
|
||||
#include COMPARE_M
|
||||
|
||||
#else
|
||||
|
||||
if ((hc_swap32_S (r0) == wpa_pmkid->pmkid[0])
|
||||
&& (hc_swap32_S (r1) == wpa_pmkid->pmkid[1])
|
||||
&& (hc_swap32_S (r2) == wpa_pmkid->pmkid[2])
|
||||
&& (hc_swap32_S (r3) == wpa_pmkid->pmkid[3]))
|
||||
{
|
||||
if (atomic_inc (&hashes_shown[digest_cur]) == 0)
|
||||
{
|
||||
mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, digest_pos, digest_cur, gid, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ typedef struct wpa_pmkid
|
||||
|
||||
} wpa_pmkid_t;
|
||||
|
||||
#ifdef KERNEL_STATIC
|
||||
DECLSPEC static u8 hex_convert (const u8 c)
|
||||
{
|
||||
return (c & 15) + (c >> 6) * 9;
|
||||
@ -53,6 +54,7 @@ DECLSPEC static u8 hex_to_u8 (const u8 *hex)
|
||||
|
||||
return (v);
|
||||
}
|
||||
#endif
|
||||
|
||||
KERNEL_FQ void m16801_init (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t))
|
||||
{
|
||||
@ -157,9 +159,23 @@ KERNEL_FQ void m16801_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t))
|
||||
const u32 r2 = sha1_hmac_ctx.opad.h[2];
|
||||
const u32 r3 = sha1_hmac_ctx.opad.h[3];
|
||||
|
||||
#define il_pos 0
|
||||
|
||||
#ifdef KERNEL_STATIC
|
||||
|
||||
#define il_pos 0
|
||||
#include COMPARE_M
|
||||
|
||||
#else
|
||||
|
||||
if ((hc_swap32_S (r0) == wpa_pmkid->pmkid[0])
|
||||
&& (hc_swap32_S (r1) == wpa_pmkid->pmkid[1])
|
||||
&& (hc_swap32_S (r2) == wpa_pmkid->pmkid[2])
|
||||
&& (hc_swap32_S (r3) == wpa_pmkid->pmkid[3]))
|
||||
{
|
||||
if (atomic_inc (&hashes_shown[digest_cur]) == 0)
|
||||
{
|
||||
mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, digest_pos, digest_cur, gid, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
@ -55,6 +55,7 @@
|
||||
- OpenCL Runtime: Update unstable mode warnings for Apple and AMDGPU drivers
|
||||
- OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
|
||||
- Tuning Database: Updated hashcat.hctune with new models and refreshed vector width values
|
||||
- WPA/WPA2 cracking: In the potfile, replace password with PMK in order to detect already cracked networks across all WPA modes
|
||||
|
||||
##
|
||||
## Technical
|
||||
@ -62,6 +63,7 @@
|
||||
|
||||
- Binary Distribution: Removed 32 bit binary executables
|
||||
- Keep Guessing: No longer automatically activate --keep-guessing for modes 9720, 9820, 14900 and 18100
|
||||
- Mode 16800/16801 hash format: Changed separator character from '*' to ':'
|
||||
|
||||
* changes v5.0.0 -> v5.1.0
|
||||
|
||||
|
@ -66,4 +66,7 @@ u32 v32a_from_v64 (const u64 v64);
|
||||
u32 v32b_from_v64 (const u64 v64);
|
||||
u64 v64_from_v32ab (const u32 v32a, const u32 v32b);
|
||||
|
||||
int hex_decode (const u8 *in_buf, const int in_len, u8 *out_buf);
|
||||
int hex_encode (const u8 *in_buf, const int in_len, u8 *out_buf);
|
||||
|
||||
#endif // _CONVERT_H
|
||||
|
@ -1,57 +0,0 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#ifndef _EMU_M02501_PURE_H
|
||||
#define _EMU_M02501_PURE_H
|
||||
|
||||
#define DGST_ELEM 4
|
||||
#define DGST_POS0 0
|
||||
#define DGST_POS1 1
|
||||
#define DGST_POS2 2
|
||||
#define DGST_POS3 3
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
typedef struct wpa_pmk_tmp
|
||||
{
|
||||
u32 out[8];
|
||||
|
||||
} wpa_pmk_tmp_t;
|
||||
|
||||
typedef struct wpa_eapol
|
||||
{
|
||||
u32 pke[32];
|
||||
u32 eapol[64 + 16];
|
||||
u16 eapol_len;
|
||||
u8 message_pair;
|
||||
int message_pair_chgd;
|
||||
u8 keyver;
|
||||
u8 orig_mac_ap[6];
|
||||
u8 orig_mac_sta[6];
|
||||
u8 orig_nonce_ap[32];
|
||||
u8 orig_nonce_sta[32];
|
||||
u8 essid_len;
|
||||
u8 essid[32];
|
||||
u32 keymic[4];
|
||||
u32 hash[4];
|
||||
int nonce_compare;
|
||||
int nonce_error_corrections;
|
||||
int detected_le;
|
||||
int detected_be;
|
||||
|
||||
} wpa_eapol_t;
|
||||
|
||||
KERNEL_FQ void m02501_init (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
KERNEL_FQ void m02501_loop (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
KERNEL_FQ void m02501_comp (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
KERNEL_FQ void m02501_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
KERNEL_FQ void m02501_aux2 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
KERNEL_FQ void m02501_aux3 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
|
||||
#endif // _EMU_M02501_PURE_H
|
@ -1,45 +0,0 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#ifndef _EMU_M16801_PURE_H
|
||||
#define _EMU_M16801_PURE_H
|
||||
|
||||
#define DGST_ELEM 4
|
||||
#define DGST_POS0 0
|
||||
#define DGST_POS1 1
|
||||
#define DGST_POS2 2
|
||||
#define DGST_POS3 3
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
typedef struct wpa_pmk_tmp
|
||||
{
|
||||
u32 out[8];
|
||||
|
||||
} wpa_pmk_tmp_t;
|
||||
|
||||
typedef struct wpa_pmkid
|
||||
{
|
||||
u32 pmkid[4];
|
||||
u32 pmkid_data[16];
|
||||
u8 orig_mac_ap[6];
|
||||
u8 orig_mac_sta[6];
|
||||
u8 essid_len;
|
||||
u32 essid_buf[16];
|
||||
|
||||
} wpa_pmkid_t;
|
||||
|
||||
KERNEL_FQ void m16801_init (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
KERNEL_FQ void m16801_loop (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
KERNEL_FQ void m16801_comp (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
KERNEL_FQ void m16801_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
KERNEL_FQ void m16801_aux2 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
KERNEL_FQ void m16801_aux3 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t));
|
||||
|
||||
#endif // _EMU_M16801_PURE_H
|
@ -54,7 +54,7 @@ int module_hash_binary_count (MAYBE_UNUSED const hashes_t *hashes
|
||||
int module_hash_binary_parse (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, hashes_t *hashes);
|
||||
int module_hash_binary_save (MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const u32 salt_pos, MAYBE_UNUSED const u32 digest_pos, char **buf);
|
||||
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len);
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len, MAYBE_UNUSED void *tmps);
|
||||
int module_hash_decode_zero_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info);
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len);
|
||||
int module_hash_encode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size, MAYBE_UNUSED const void *tmps);
|
||||
@ -76,4 +76,6 @@ int module_build_plain_postprocess (MAYBE_UNUSED const hashconfig_t *ha
|
||||
|
||||
bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param);
|
||||
|
||||
bool module_potfile_custom_check (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const hash_t *db, MAYBE_UNUSED const hash_t *entry_hash, MAYBE_UNUSED const void *entry_tmps);
|
||||
|
||||
#endif // _MODULES_H
|
||||
|
@ -415,6 +415,7 @@ typedef enum opts_type
|
||||
OPTS_TYPE_DEEP_COMP_KERNEL = (1ULL << 42), // if we have to iterate through each hash inside the comp kernel, for example if each hash has to be decrypted separately
|
||||
OPTS_TYPE_SUGGEST_KG = (1ULL << 43), // suggest keep guessing for modules the user maybe wants to use --keep-guessing
|
||||
OPTS_TYPE_COPY_TMPS = (1ULL << 44), // if we want to use data from tmps buffer (for example get the PMK in WPA)
|
||||
OPTS_TYPE_POTFILE_NOPASS = (1ULL << 45), // sometimes the password should not be printed to potfile
|
||||
|
||||
} opts_type_t;
|
||||
|
||||
@ -2244,7 +2245,7 @@ typedef struct module_ctx
|
||||
int (*module_hash_binary_parse) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *, hashes_t *);
|
||||
int (*module_hash_binary_save) (const hashes_t *, const u32, const u32, char **);
|
||||
|
||||
int (*module_hash_decode_potfile) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int);
|
||||
int (*module_hash_decode_potfile) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int, void *);
|
||||
int (*module_hash_decode_zero_hash) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *);
|
||||
int (*module_hash_decode) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int);
|
||||
int (*module_hash_encode_potfile) (const hashconfig_t *, const void *, const salt_t *, const void *, const void *, const hashinfo_t *, char *, int, const void *);
|
||||
@ -2266,6 +2267,8 @@ typedef struct module_ctx
|
||||
|
||||
bool (*module_unstable_warning) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *, const hc_device_param_t *);
|
||||
|
||||
bool (*module_potfile_custom_check) (const hashconfig_t *, const hash_t *, const hash_t *, const void *);
|
||||
|
||||
} module_ctx_t;
|
||||
|
||||
typedef struct hashcat_ctx
|
||||
|
@ -282,7 +282,6 @@ EMU_OBJS_ALL += emu_inc_rp emu_inc_rp_optimized
|
||||
EMU_OBJS_ALL += emu_inc_truecrypt_crc32 emu_inc_truecrypt_keyfile emu_inc_truecrypt_xts emu_inc_veracrypt_xts
|
||||
EMU_OBJS_ALL += emu_inc_hash_md4 emu_inc_hash_md5 emu_inc_hash_ripemd160 emu_inc_hash_sha1 emu_inc_hash_sha256 emu_inc_hash_sha384 emu_inc_hash_sha512 emu_inc_hash_streebog256 emu_inc_hash_streebog512
|
||||
EMU_OBJS_ALL += emu_inc_cipher_aes emu_inc_cipher_camellia emu_inc_cipher_des emu_inc_cipher_kuznyechik emu_inc_cipher_serpent emu_inc_cipher_twofish
|
||||
EMU_OBJS_ALL += emu_m02501_pure emu_m16801_pure
|
||||
|
||||
OBJS_ALL := affinity autotune benchmark bitmap bitops combinator common convert cpt cpu_crc32 debugfile dictstat dispatch dynloader event ext_ADL ext_nvapi ext_nvml ext_OpenCL ext_sysfs ext_lzma filehandling folder hashcat hashes hlfmt hwmon induct interface keyboard_layout locking logfile loopback memory monitor mpsp opencl outfile_check outfile pidfile potfile restore rp rp_cpu selftest slow_candidates shared status stdout straight terminal thread timer tuningdb usage user_options wordlist $(EMU_OBJS_ALL)
|
||||
|
||||
|
@ -894,3 +894,23 @@ u64 v64_from_v32ab (const u32 v32a, const u32 v32b)
|
||||
|
||||
return v.v64;
|
||||
}
|
||||
|
||||
int hex_decode (const u8 *in_buf, const int in_len, u8 *out_buf)
|
||||
{
|
||||
for (int i = 0, j = 0; i < in_len; i += 2, j += 1)
|
||||
{
|
||||
out_buf[j] = hex_to_u8 (&in_buf[i]);
|
||||
}
|
||||
|
||||
return in_len / 2;
|
||||
}
|
||||
|
||||
int hex_encode (const u8 *in_buf, const int in_len, u8 *out_buf)
|
||||
{
|
||||
for (int i = 0, j = 0; i < in_len; i += 1, j += 2)
|
||||
{
|
||||
u8_to_hex (in_buf[i], &out_buf[j]);
|
||||
}
|
||||
|
||||
return in_len * 2;
|
||||
}
|
||||
|
@ -9,12 +9,12 @@
|
||||
|
||||
u32 atomic_dec (u32 *p)
|
||||
{
|
||||
return *p--;
|
||||
return p[0]--;
|
||||
}
|
||||
|
||||
u32 atomic_inc (u32 *p)
|
||||
{
|
||||
return *p++;
|
||||
return p[0]++;
|
||||
}
|
||||
|
||||
size_t get_global_id (u32 dimindx __attribute__((unused)))
|
||||
|
@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "types.h"
|
||||
#include "emu_general.h"
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
#define DGST_ELEM 4
|
||||
#define DGST_POS0 0
|
||||
#define DGST_POS1 1
|
||||
#define DGST_POS2 2
|
||||
#define DGST_POS3 3
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
#include "m02501-pure.cl"
|
||||
|
@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Author......: See docs/credits.txt
|
||||
* License.....: MIT
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "types.h"
|
||||
#include "emu_general.h"
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
#define DGST_ELEM 4
|
||||
#define DGST_POS0 0
|
||||
#define DGST_POS1 1
|
||||
#define DGST_POS2 2
|
||||
#define DGST_POS3 3
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
#include "m16801-pure.cl"
|
||||
|
@ -168,6 +168,7 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
|
||||
CHECK_DEFINED (module_ctx->module_opts_type);
|
||||
CHECK_DEFINED (module_ctx->module_outfile_check_disable);
|
||||
CHECK_DEFINED (module_ctx->module_outfile_check_nocomp);
|
||||
CHECK_DEFINED (module_ctx->module_potfile_custom_check);
|
||||
CHECK_DEFINED (module_ctx->module_potfile_disable);
|
||||
CHECK_DEFINED (module_ctx->module_potfile_keep_all_hashes);
|
||||
CHECK_DEFINED (module_ctx->module_pwdump_column);
|
||||
|
@ -171,6 +171,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -194,6 +194,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -197,6 +197,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -189,6 +189,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -193,6 +193,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -188,6 +188,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -301,6 +301,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -202,6 +202,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -195,6 +195,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -194,6 +194,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -173,6 +173,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -173,6 +173,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -187,6 +187,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -191,6 +191,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -213,6 +213,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -217,6 +217,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -214,6 +214,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -213,6 +213,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -214,6 +214,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -193,6 +193,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -212,6 +212,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -195,6 +195,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -214,6 +214,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -209,6 +209,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -203,6 +203,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -186,6 +186,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -214,6 +214,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -221,6 +221,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -191,6 +191,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -191,6 +191,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -155,6 +155,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -186,6 +186,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -273,6 +273,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -296,6 +296,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -373,6 +373,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -198,6 +198,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -171,6 +171,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -174,6 +174,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = module_pwdump_column;
|
||||
|
@ -198,6 +198,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -201,6 +201,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -208,6 +208,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -251,6 +251,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -247,6 +247,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -234,6 +234,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -210,6 +210,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -235,6 +235,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -235,6 +235,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -236,6 +236,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -239,6 +239,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -223,6 +223,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -247,6 +247,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -307,6 +307,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -210,6 +210,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -235,6 +235,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -231,6 +231,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -252,6 +252,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -229,6 +229,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -237,6 +237,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -222,6 +222,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -253,6 +253,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -235,6 +235,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -241,6 +241,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -601,6 +601,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -111,6 +111,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -209,6 +209,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -202,6 +202,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -218,6 +218,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -51,6 +51,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
|
||||
static const u32 ROUNDS_WPA_PBKDF2 = 4096;
|
||||
|
||||
/*
|
||||
typedef struct wpa_eapol
|
||||
{
|
||||
u32 pke[32];
|
||||
@ -66,7 +67,6 @@ typedef struct wpa_eapol
|
||||
u8 essid_len;
|
||||
u8 essid[32];
|
||||
u32 keymic[4];
|
||||
u32 hash[4];
|
||||
int nonce_compare;
|
||||
int nonce_error_corrections;
|
||||
int detected_le;
|
||||
@ -83,6 +83,7 @@ typedef struct wpa_pbkdf2_tmp
|
||||
u32 out[10];
|
||||
|
||||
} wpa_pbkdf2_tmp_t;
|
||||
*/
|
||||
|
||||
#define HCCAPX_VERSION 4
|
||||
#define HCCAPX_SIGNATURE 0x58504348 // HCPX
|
||||
@ -112,6 +113,23 @@ typedef struct hccapx hccapx_t;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define DGST_ELEM 4
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
#include "emu_general.h"
|
||||
#include "inc_vendor.h"
|
||||
#include "m02500-pure.cl"
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
static void to_hccapx_t (const hashes_t *hashes, hccapx_t *hccapx, const u32 salt_pos, const u32 digest_pos)
|
||||
{
|
||||
const salt_t *salts_buf = hashes->salts_buf;
|
||||
@ -230,53 +248,73 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
return pw_max;
|
||||
}
|
||||
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len, MAYBE_UNUSED void *tmps)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) esalt_buf;
|
||||
|
||||
// here we have in line_hash_buf: hash:macap:macsta:essid:password
|
||||
wpa_pbkdf2_tmp_t *wpa_pbkdf2_tmp = (wpa_pbkdf2_tmp_t *) tmps;
|
||||
|
||||
// here we have in line_hash_buf: PMK*essid:password
|
||||
// but we don't care about the password
|
||||
|
||||
// PMK
|
||||
|
||||
wpa_pbkdf2_tmp->out[0] = hex_to_u32 ((const u8 *) line_buf + 0);
|
||||
wpa_pbkdf2_tmp->out[1] = hex_to_u32 ((const u8 *) line_buf + 8);
|
||||
wpa_pbkdf2_tmp->out[2] = hex_to_u32 ((const u8 *) line_buf + 16);
|
||||
wpa_pbkdf2_tmp->out[3] = hex_to_u32 ((const u8 *) line_buf + 24);
|
||||
wpa_pbkdf2_tmp->out[4] = hex_to_u32 ((const u8 *) line_buf + 32);
|
||||
wpa_pbkdf2_tmp->out[5] = hex_to_u32 ((const u8 *) line_buf + 40);
|
||||
wpa_pbkdf2_tmp->out[6] = hex_to_u32 ((const u8 *) line_buf + 48);
|
||||
wpa_pbkdf2_tmp->out[7] = hex_to_u32 ((const u8 *) line_buf + 56);
|
||||
|
||||
// essid
|
||||
|
||||
char *sep_pos = strrchr (line_buf, ':');
|
||||
|
||||
if (sep_pos == NULL) return (PARSER_HASH_ENCODING);
|
||||
if (sep_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
|
||||
|
||||
if ((line_buf + 32 + 1 + 12 + 1 + 12) != sep_pos) return (PARSER_HASH_LENGTH);
|
||||
if ((line_buf + 64) != sep_pos) return (PARSER_HASH_LENGTH);
|
||||
|
||||
char *essid_pos = sep_pos + 1;
|
||||
|
||||
const int essid_len = strlen (essid_pos);
|
||||
|
||||
u8 tmp_buf[128] = { 0 };
|
||||
if (essid_len & 1) return (PARSER_SALT_VALUE);
|
||||
|
||||
int tmp_len = essid_len;
|
||||
if (essid_len > 64) return (PARSER_SALT_VALUE);
|
||||
|
||||
memcpy (tmp_buf, essid_pos, essid_len);
|
||||
|
||||
if (is_hexify (tmp_buf, tmp_len) == true)
|
||||
{
|
||||
tmp_len = exec_unhexify (tmp_buf, tmp_len, tmp_buf, sizeof (tmp_buf));
|
||||
}
|
||||
|
||||
if (tmp_len > 32) return (PARSER_HASH_VALUE);
|
||||
|
||||
memcpy (salt->salt_buf, tmp_buf, tmp_len);
|
||||
|
||||
salt->salt_len = tmp_len;
|
||||
salt->salt_iter = ROUNDS_WPA_PBKDF2 - 1;
|
||||
|
||||
digest[0] = hex_to_u32 ((const u8 *) &line_buf[ 0]);
|
||||
digest[1] = hex_to_u32 ((const u8 *) &line_buf[ 8]);
|
||||
digest[2] = hex_to_u32 ((const u8 *) &line_buf[16]);
|
||||
digest[3] = hex_to_u32 ((const u8 *) &line_buf[24]);
|
||||
|
||||
digest[0] = byte_swap_32 (digest[0]);
|
||||
digest[1] = byte_swap_32 (digest[1]);
|
||||
digest[2] = byte_swap_32 (digest[2]);
|
||||
digest[3] = byte_swap_32 (digest[3]);
|
||||
wpa_eapol->essid_len = hex_decode ((const u8 *) essid_pos, essid_len, (u8 *) wpa_eapol->essid);
|
||||
|
||||
return PARSER_OK;
|
||||
}
|
||||
|
||||
int module_hash_encode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size, MAYBE_UNUSED const void *tmps)
|
||||
{
|
||||
const wpa_eapol_t *wpa_eapol = (const wpa_eapol_t *) esalt_buf;
|
||||
|
||||
const wpa_pbkdf2_tmp_t *wpa_pbkdf2_tmp = (const wpa_pbkdf2_tmp_t *) tmps;
|
||||
|
||||
char tmp_buf[128];
|
||||
|
||||
const int tmp_len = hex_encode ((const u8 *) wpa_eapol->essid, wpa_eapol->essid_len, (u8 *) tmp_buf);
|
||||
|
||||
tmp_buf[tmp_len] = 0;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x%08x%08x%08x:%s",
|
||||
wpa_pbkdf2_tmp->out[0],
|
||||
wpa_pbkdf2_tmp->out[1],
|
||||
wpa_pbkdf2_tmp->out[2],
|
||||
wpa_pbkdf2_tmp->out[3],
|
||||
wpa_pbkdf2_tmp->out[4],
|
||||
wpa_pbkdf2_tmp->out[5],
|
||||
wpa_pbkdf2_tmp->out[6],
|
||||
wpa_pbkdf2_tmp->out[7],
|
||||
tmp_buf);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
||||
int module_hash_encode_status (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size)
|
||||
{
|
||||
wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) esalt_buf;
|
||||
@ -467,6 +505,97 @@ u32 module_deep_comp_kernel (MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED c
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool module_potfile_custom_check (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const hash_t *db, MAYBE_UNUSED const hash_t *entry_hash, MAYBE_UNUSED const void *entry_tmps)
|
||||
{
|
||||
const wpa_eapol_t *wpa_eapol_entry = (const wpa_eapol_t *) entry_hash->esalt;
|
||||
const wpa_eapol_t *wpa_eapol_db = (const wpa_eapol_t *) db->esalt;
|
||||
|
||||
if (wpa_eapol_db->essid_len != wpa_eapol_entry->essid_len) return false;
|
||||
|
||||
if (strcmp ((const char *) wpa_eapol_db->essid, (const char *) wpa_eapol_entry->essid)) return false;
|
||||
|
||||
const wpa_pbkdf2_tmp_t *wpa_pbkdf2_tmp = (const wpa_pbkdf2_tmp_t *) entry_tmps;
|
||||
|
||||
wpa_pbkdf2_tmp_t tmps;
|
||||
|
||||
tmps.out[0] = byte_swap_32 (wpa_pbkdf2_tmp->out[0]);
|
||||
tmps.out[1] = byte_swap_32 (wpa_pbkdf2_tmp->out[1]);
|
||||
tmps.out[2] = byte_swap_32 (wpa_pbkdf2_tmp->out[2]);
|
||||
tmps.out[3] = byte_swap_32 (wpa_pbkdf2_tmp->out[3]);
|
||||
tmps.out[4] = byte_swap_32 (wpa_pbkdf2_tmp->out[4]);
|
||||
tmps.out[5] = byte_swap_32 (wpa_pbkdf2_tmp->out[5]);
|
||||
tmps.out[6] = byte_swap_32 (wpa_pbkdf2_tmp->out[6]);
|
||||
tmps.out[7] = byte_swap_32 (wpa_pbkdf2_tmp->out[7]);
|
||||
|
||||
plain_t plains_buf;
|
||||
|
||||
u32 hashes_shown = 0;
|
||||
|
||||
u32 d_return_buf = 0;
|
||||
|
||||
void (*m02500_aux) (KERN_ATTR_TMPS_ESALT (wpa_pbkdf2_tmp_t, wpa_eapol_t));
|
||||
|
||||
if (wpa_eapol_db->keyver == 1)
|
||||
{
|
||||
m02500_aux = m02500_aux1;
|
||||
}
|
||||
else if (wpa_eapol_db->keyver == 2)
|
||||
{
|
||||
m02500_aux = m02500_aux2;
|
||||
}
|
||||
else if (wpa_eapol_db->keyver == 3)
|
||||
{
|
||||
m02500_aux = m02500_aux3;
|
||||
}
|
||||
else
|
||||
{
|
||||
m02500_aux = NULL;
|
||||
}
|
||||
|
||||
m02500_aux
|
||||
(
|
||||
NULL, // pws
|
||||
NULL, // rules_buf
|
||||
NULL, // combs_buf
|
||||
NULL, // bfs_buf
|
||||
&tmps, // tmps
|
||||
NULL, // hooks
|
||||
NULL, // bitmaps_buf_s1_a
|
||||
NULL, // bitmaps_buf_s1_b
|
||||
NULL, // bitmaps_buf_s1_c
|
||||
NULL, // bitmaps_buf_s1_d
|
||||
NULL, // bitmaps_buf_s2_a
|
||||
NULL, // bitmaps_buf_s2_b
|
||||
NULL, // bitmaps_buf_s2_c
|
||||
NULL, // bitmaps_buf_s2_d
|
||||
&plains_buf, // plains_buf
|
||||
db->digest, // digests_buf
|
||||
&hashes_shown, // hashes_shown
|
||||
db->salt, // salt_bufs
|
||||
db->esalt, // esalt_bufs
|
||||
&d_return_buf, // d_return_buf
|
||||
NULL, // d_extra0_buf
|
||||
NULL, // d_extra1_buf
|
||||
NULL, // d_extra2_buf
|
||||
NULL, // d_extra3_buf
|
||||
0, // bitmap_mask
|
||||
0, // bitmap_shift1
|
||||
0, // bitmap_shift2
|
||||
0, // salt_pos
|
||||
0, // loop_pos
|
||||
0, // loop_cnt
|
||||
0, // il_cnt
|
||||
1, // digests_cnt
|
||||
0, // digests_offset
|
||||
0, // combs_mode
|
||||
1 // gid_max
|
||||
);
|
||||
|
||||
const bool r = (d_return_buf == 0) ? false : true;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -695,17 +824,12 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
md5_transform (block + 0, block + 4, block + 8, block + 12, hash);
|
||||
|
||||
wpa_eapol->hash[0] = hash[0];
|
||||
wpa_eapol->hash[1] = hash[1];
|
||||
wpa_eapol->hash[2] = hash[2];
|
||||
wpa_eapol->hash[3] = hash[3];
|
||||
|
||||
// make all this stuff unique
|
||||
|
||||
digest[0] = wpa_eapol->hash[0];
|
||||
digest[1] = wpa_eapol->hash[1];
|
||||
digest[2] = wpa_eapol->hash[2];
|
||||
digest[3] = wpa_eapol->hash[3];
|
||||
digest[0] = hash[0];
|
||||
digest[1] = hash[1];
|
||||
digest[2] = hash[2];
|
||||
digest[3] = hash[3];
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -716,7 +840,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
int line_len = 0;
|
||||
|
||||
if (need_hexify (wpa_eapol->essid, wpa_eapol->essid_len, hashconfig->separator, 0) == true)
|
||||
if (need_hexify (wpa_eapol->essid, wpa_eapol->essid_len, ':', 0) == true)
|
||||
{
|
||||
char tmp_buf[128];
|
||||
|
||||
@ -736,11 +860,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
tmp_buf[tmp_len++] = 0;
|
||||
|
||||
line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x:%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->hash[0],
|
||||
wpa_eapol->hash[1],
|
||||
wpa_eapol->hash[2],
|
||||
wpa_eapol->hash[3],
|
||||
line_len = snprintf (line_buf, line_size, "%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
@ -757,11 +877,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
}
|
||||
else
|
||||
{
|
||||
line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x:%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->hash[0],
|
||||
wpa_eapol->hash[1],
|
||||
wpa_eapol->hash[2],
|
||||
wpa_eapol->hash[3],
|
||||
line_len = snprintf (line_buf, line_size, "%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
@ -809,7 +925,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT;
|
||||
module_ctx->module_hash_decode = module_hash_decode;
|
||||
module_ctx->module_hash_encode_status = module_hash_encode_status;
|
||||
module_ctx->module_hash_encode_potfile = MODULE_DEFAULT;
|
||||
module_ctx->module_hash_encode_potfile = module_hash_encode_potfile;
|
||||
module_ctx->module_hash_encode = module_hash_encode;
|
||||
module_ctx->module_hash_init_selftest = module_hash_init_selftest;
|
||||
module_ctx->module_hash_mode = MODULE_DEFAULT;
|
||||
@ -834,6 +950,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = module_potfile_custom_check;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -29,6 +29,7 @@ static const u64 OPTS_TYPE = OPTS_TYPE_PT_GENERATE_LE
|
||||
| OPTS_TYPE_AUX3
|
||||
| OPTS_TYPE_BINARY_HASHFILE
|
||||
| OPTS_TYPE_DEEP_COMP_KERNEL
|
||||
| OPTS_TYPE_POTFILE_NOPASS
|
||||
| OPTS_TYPE_COPY_TMPS;
|
||||
static const u32 SALT_TYPE = SALT_TYPE_EMBEDDED;
|
||||
static const char *ST_PASS = "7f620a599c445155935a35634638fa67b4aafecb92e0bd8625388757a63c2dda";
|
||||
@ -51,6 +52,7 @@ const char *module_st_pass (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
|
||||
static const u32 ROUNDS_WPA_PMK = 1;
|
||||
|
||||
/*
|
||||
typedef struct wpa_eapol
|
||||
{
|
||||
u32 pke[32];
|
||||
@ -66,7 +68,6 @@ typedef struct wpa_eapol
|
||||
u8 essid_len;
|
||||
u8 essid[32];
|
||||
u32 keymic[4];
|
||||
u32 hash[4];
|
||||
int nonce_compare;
|
||||
int nonce_error_corrections;
|
||||
int detected_le;
|
||||
@ -74,15 +75,12 @@ typedef struct wpa_eapol
|
||||
|
||||
} wpa_eapol_t;
|
||||
|
||||
typedef struct wpa_pbkdf2_tmp
|
||||
typedef struct wpa_pmk_tmp
|
||||
{
|
||||
u32 ipad[5];
|
||||
u32 opad[5];
|
||||
u32 out[8];
|
||||
|
||||
u32 dgst[10];
|
||||
u32 out[10];
|
||||
|
||||
} wpa_pbkdf2_tmp_t;
|
||||
} wpa_pmk_tmp_t;
|
||||
*/
|
||||
|
||||
#define HCCAPX_VERSION 4
|
||||
#define HCCAPX_SIGNATURE 0x58504348 // HCPX
|
||||
@ -112,6 +110,23 @@ typedef struct hccapx hccapx_t;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define DGST_ELEM 4
|
||||
|
||||
typedef struct digest
|
||||
{
|
||||
u32 digest_buf[DGST_ELEM];
|
||||
|
||||
} digest_t;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
#include "emu_general.h"
|
||||
#include "inc_vendor.h"
|
||||
#include "m02501-pure.cl"
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
static void to_hccapx_t (const hashes_t *hashes, hccapx_t *hccapx, const u32 salt_pos, const u32 digest_pos)
|
||||
{
|
||||
const salt_t *salts_buf = hashes->salts_buf;
|
||||
@ -204,7 +219,7 @@ const char *module_benchmark_mask (MAYBE_UNUSED const hashconfig_t *hashconfig,
|
||||
|
||||
u64 module_tmp_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
|
||||
{
|
||||
const u64 tmp_size = (const u64) sizeof (wpa_pbkdf2_tmp_t);
|
||||
const u64 tmp_size = (const u64) sizeof (wpa_pmk_tmp_t);
|
||||
|
||||
return tmp_size;
|
||||
}
|
||||
@ -230,71 +245,69 @@ u32 module_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED con
|
||||
return pw_max;
|
||||
}
|
||||
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len, MAYBE_UNUSED void *tmps)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) esalt_buf;
|
||||
|
||||
// here we have in line_hash_buf: hash:macap:macsta:essid:password
|
||||
wpa_pmk_tmp_t *wpa_pmk_tmp = (wpa_pmk_tmp_t *) tmps;
|
||||
|
||||
// here we have in line_hash_buf: PMK*essid:password
|
||||
// but we don't care about the password
|
||||
|
||||
// PMK
|
||||
|
||||
wpa_pmk_tmp->out[0] = hex_to_u32 ((const u8 *) line_buf + 0);
|
||||
wpa_pmk_tmp->out[1] = hex_to_u32 ((const u8 *) line_buf + 8);
|
||||
wpa_pmk_tmp->out[2] = hex_to_u32 ((const u8 *) line_buf + 16);
|
||||
wpa_pmk_tmp->out[3] = hex_to_u32 ((const u8 *) line_buf + 24);
|
||||
wpa_pmk_tmp->out[4] = hex_to_u32 ((const u8 *) line_buf + 32);
|
||||
wpa_pmk_tmp->out[5] = hex_to_u32 ((const u8 *) line_buf + 40);
|
||||
wpa_pmk_tmp->out[6] = hex_to_u32 ((const u8 *) line_buf + 48);
|
||||
wpa_pmk_tmp->out[7] = hex_to_u32 ((const u8 *) line_buf + 56);
|
||||
|
||||
// essid
|
||||
|
||||
char *sep_pos = strrchr (line_buf, ':');
|
||||
|
||||
if (sep_pos == NULL) return (PARSER_HASH_ENCODING);
|
||||
if (sep_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
|
||||
|
||||
if ((line_buf + 32 + 1 + 12 + 1 + 12) != sep_pos) return (PARSER_HASH_LENGTH);
|
||||
if ((line_buf + 64) != sep_pos) return (PARSER_HASH_LENGTH);
|
||||
|
||||
char *essid_pos = sep_pos + 1;
|
||||
|
||||
const int essid_len = strlen (essid_pos);
|
||||
|
||||
u8 tmp_buf[128] = { 0 };
|
||||
if (essid_len & 1) return (PARSER_SALT_VALUE);
|
||||
|
||||
int tmp_len = essid_len;
|
||||
if (essid_len > 64) return (PARSER_SALT_VALUE);
|
||||
|
||||
memcpy (tmp_buf, essid_pos, essid_len);
|
||||
|
||||
if (is_hexify (tmp_buf, tmp_len) == true)
|
||||
{
|
||||
tmp_len = exec_unhexify (tmp_buf, tmp_len, tmp_buf, sizeof (tmp_buf));
|
||||
}
|
||||
|
||||
if (tmp_len > 32) return (PARSER_HASH_VALUE);
|
||||
|
||||
memcpy (salt->salt_buf, tmp_buf, tmp_len);
|
||||
|
||||
salt->salt_len = tmp_len;
|
||||
salt->salt_iter = ROUNDS_WPA_PMK - 1;
|
||||
|
||||
digest[0] = hex_to_u32 ((const u8 *) &line_buf[ 0]);
|
||||
digest[1] = hex_to_u32 ((const u8 *) &line_buf[ 8]);
|
||||
digest[2] = hex_to_u32 ((const u8 *) &line_buf[16]);
|
||||
digest[3] = hex_to_u32 ((const u8 *) &line_buf[24]);
|
||||
|
||||
digest[0] = byte_swap_32 (digest[0]);
|
||||
digest[1] = byte_swap_32 (digest[1]);
|
||||
digest[2] = byte_swap_32 (digest[2]);
|
||||
digest[3] = byte_swap_32 (digest[3]);
|
||||
wpa_eapol->essid_len = hex_decode ((const u8 *) essid_pos, essid_len, (u8 *) wpa_eapol->essid);
|
||||
|
||||
return PARSER_OK;
|
||||
}
|
||||
|
||||
int module_hash_encode_status (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size)
|
||||
int module_hash_encode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size, MAYBE_UNUSED const void *tmps)
|
||||
{
|
||||
wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) esalt_buf;
|
||||
const wpa_eapol_t *wpa_eapol = (const wpa_eapol_t *) esalt_buf;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%s (AP:%02x:%02x:%02x:%02x:%02x:%02x STA:%02x:%02x:%02x:%02x:%02x:%02x)",
|
||||
(char *) salt->salt_buf,
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
wpa_eapol->orig_mac_ap[3],
|
||||
wpa_eapol->orig_mac_ap[4],
|
||||
wpa_eapol->orig_mac_ap[5],
|
||||
wpa_eapol->orig_mac_sta[0],
|
||||
wpa_eapol->orig_mac_sta[1],
|
||||
wpa_eapol->orig_mac_sta[2],
|
||||
wpa_eapol->orig_mac_sta[3],
|
||||
wpa_eapol->orig_mac_sta[4],
|
||||
wpa_eapol->orig_mac_sta[5]);
|
||||
const wpa_pmk_tmp_t *wpa_pmk_tmp = (const wpa_pmk_tmp_t *) tmps;
|
||||
|
||||
char tmp_buf[128];
|
||||
|
||||
const int tmp_len = hex_encode ((const u8 *) wpa_eapol->essid, wpa_eapol->essid_len, (u8 *) tmp_buf);
|
||||
|
||||
tmp_buf[tmp_len] = 0;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x%08x%08x%08x%08x:%s",
|
||||
wpa_pmk_tmp->out[0],
|
||||
wpa_pmk_tmp->out[1],
|
||||
wpa_pmk_tmp->out[2],
|
||||
wpa_pmk_tmp->out[3],
|
||||
wpa_pmk_tmp->out[4],
|
||||
wpa_pmk_tmp->out[5],
|
||||
wpa_pmk_tmp->out[6],
|
||||
wpa_pmk_tmp->out[7],
|
||||
tmp_buf);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
@ -467,6 +480,119 @@ u32 module_deep_comp_kernel (MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED c
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool module_potfile_custom_check (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const hash_t *db, MAYBE_UNUSED const hash_t *entry_hash, MAYBE_UNUSED const void *entry_tmps)
|
||||
{
|
||||
const wpa_eapol_t *wpa_eapol_entry = (const wpa_eapol_t *) entry_hash->esalt;
|
||||
const wpa_eapol_t *wpa_eapol_db = (const wpa_eapol_t *) db->esalt;
|
||||
|
||||
if (wpa_eapol_db->essid_len != wpa_eapol_entry->essid_len) return false;
|
||||
|
||||
if (strcmp ((const char *) wpa_eapol_db->essid, (const char *) wpa_eapol_entry->essid)) return false;
|
||||
|
||||
const wpa_pmk_tmp_t *wpa_pmk_tmp = (const wpa_pmk_tmp_t *) entry_tmps;
|
||||
|
||||
wpa_pmk_tmp_t tmps;
|
||||
|
||||
tmps.out[0] = byte_swap_32 (wpa_pmk_tmp->out[0]);
|
||||
tmps.out[1] = byte_swap_32 (wpa_pmk_tmp->out[1]);
|
||||
tmps.out[2] = byte_swap_32 (wpa_pmk_tmp->out[2]);
|
||||
tmps.out[3] = byte_swap_32 (wpa_pmk_tmp->out[3]);
|
||||
tmps.out[4] = byte_swap_32 (wpa_pmk_tmp->out[4]);
|
||||
tmps.out[5] = byte_swap_32 (wpa_pmk_tmp->out[5]);
|
||||
tmps.out[6] = byte_swap_32 (wpa_pmk_tmp->out[6]);
|
||||
tmps.out[7] = byte_swap_32 (wpa_pmk_tmp->out[7]);
|
||||
|
||||
plain_t plains_buf;
|
||||
|
||||
u32 hashes_shown = 0;
|
||||
|
||||
u32 d_return_buf = 0;
|
||||
|
||||
void (*m02501_aux) (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_eapol_t));
|
||||
|
||||
if (wpa_eapol_db->keyver == 1)
|
||||
{
|
||||
m02501_aux = m02501_aux1;
|
||||
}
|
||||
else if (wpa_eapol_db->keyver == 2)
|
||||
{
|
||||
m02501_aux = m02501_aux2;
|
||||
}
|
||||
else if (wpa_eapol_db->keyver == 3)
|
||||
{
|
||||
m02501_aux = m02501_aux3;
|
||||
}
|
||||
else
|
||||
{
|
||||
m02501_aux = NULL;
|
||||
}
|
||||
|
||||
m02501_aux
|
||||
(
|
||||
NULL, // pws
|
||||
NULL, // rules_buf
|
||||
NULL, // combs_buf
|
||||
NULL, // bfs_buf
|
||||
&tmps, // tmps
|
||||
NULL, // hooks
|
||||
NULL, // bitmaps_buf_s1_a
|
||||
NULL, // bitmaps_buf_s1_b
|
||||
NULL, // bitmaps_buf_s1_c
|
||||
NULL, // bitmaps_buf_s1_d
|
||||
NULL, // bitmaps_buf_s2_a
|
||||
NULL, // bitmaps_buf_s2_b
|
||||
NULL, // bitmaps_buf_s2_c
|
||||
NULL, // bitmaps_buf_s2_d
|
||||
&plains_buf, // plains_buf
|
||||
db->digest, // digests_buf
|
||||
&hashes_shown, // hashes_shown
|
||||
db->salt, // salt_bufs
|
||||
db->esalt, // esalt_bufs
|
||||
&d_return_buf, // d_return_buf
|
||||
NULL, // d_extra0_buf
|
||||
NULL, // d_extra1_buf
|
||||
NULL, // d_extra2_buf
|
||||
NULL, // d_extra3_buf
|
||||
0, // bitmap_mask
|
||||
0, // bitmap_shift1
|
||||
0, // bitmap_shift2
|
||||
0, // salt_pos
|
||||
0, // loop_pos
|
||||
0, // loop_cnt
|
||||
0, // il_cnt
|
||||
1, // digests_cnt
|
||||
0, // digests_offset
|
||||
0, // combs_mode
|
||||
1 // gid_max
|
||||
);
|
||||
|
||||
const bool r = (d_return_buf == 0) ? false : true;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
int module_hash_encode_status (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size)
|
||||
{
|
||||
wpa_eapol_t *wpa_eapol = (wpa_eapol_t *) esalt_buf;
|
||||
|
||||
const int line_len = snprintf (line_buf, line_size, "%s (AP:%02x:%02x:%02x:%02x:%02x:%02x STA:%02x:%02x:%02x:%02x:%02x:%02x)",
|
||||
(char *) salt->salt_buf,
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
wpa_eapol->orig_mac_ap[3],
|
||||
wpa_eapol->orig_mac_ap[4],
|
||||
wpa_eapol->orig_mac_ap[5],
|
||||
wpa_eapol->orig_mac_sta[0],
|
||||
wpa_eapol->orig_mac_sta[1],
|
||||
wpa_eapol->orig_mac_sta[2],
|
||||
wpa_eapol->orig_mac_sta[3],
|
||||
wpa_eapol->orig_mac_sta[4],
|
||||
wpa_eapol->orig_mac_sta[5]);
|
||||
|
||||
return line_len;
|
||||
}
|
||||
|
||||
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len)
|
||||
{
|
||||
u32 *digest = (u32 *) digest_buf;
|
||||
@ -695,17 +821,12 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
md5_transform (block + 0, block + 4, block + 8, block + 12, hash);
|
||||
|
||||
wpa_eapol->hash[0] = hash[0];
|
||||
wpa_eapol->hash[1] = hash[1];
|
||||
wpa_eapol->hash[2] = hash[2];
|
||||
wpa_eapol->hash[3] = hash[3];
|
||||
|
||||
// make all this stuff unique
|
||||
|
||||
digest[0] = wpa_eapol->hash[0];
|
||||
digest[1] = wpa_eapol->hash[1];
|
||||
digest[2] = wpa_eapol->hash[2];
|
||||
digest[3] = wpa_eapol->hash[3];
|
||||
digest[0] = hash[0];
|
||||
digest[1] = hash[1];
|
||||
digest[2] = hash[2];
|
||||
digest[3] = hash[3];
|
||||
|
||||
return (PARSER_OK);
|
||||
}
|
||||
@ -716,7 +837,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
int line_len = 0;
|
||||
|
||||
if (need_hexify (wpa_eapol->essid, wpa_eapol->essid_len, hashconfig->separator, 0) == true)
|
||||
if (need_hexify (wpa_eapol->essid, wpa_eapol->essid_len, ':', 0) == true)
|
||||
{
|
||||
char tmp_buf[128];
|
||||
|
||||
@ -736,11 +857,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
|
||||
tmp_buf[tmp_len++] = 0;
|
||||
|
||||
line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x:%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->hash[0],
|
||||
wpa_eapol->hash[1],
|
||||
wpa_eapol->hash[2],
|
||||
wpa_eapol->hash[3],
|
||||
line_len = snprintf (line_buf, line_size, "%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
@ -757,11 +874,7 @@ int module_hash_encode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
|
||||
}
|
||||
else
|
||||
{
|
||||
line_len = snprintf (line_buf, line_size, "%08x%08x%08x%08x:%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->hash[0],
|
||||
wpa_eapol->hash[1],
|
||||
wpa_eapol->hash[2],
|
||||
wpa_eapol->hash[3],
|
||||
line_len = snprintf (line_buf, line_size, "%02x%02x%02x%02x%02x%02x:%02x%02x%02x%02x%02x%02x:%s",
|
||||
wpa_eapol->orig_mac_ap[0],
|
||||
wpa_eapol->orig_mac_ap[1],
|
||||
wpa_eapol->orig_mac_ap[2],
|
||||
@ -809,7 +922,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_hash_decode_zero_hash = MODULE_DEFAULT;
|
||||
module_ctx->module_hash_decode = module_hash_decode;
|
||||
module_ctx->module_hash_encode_status = module_hash_encode_status;
|
||||
module_ctx->module_hash_encode_potfile = MODULE_DEFAULT;
|
||||
module_ctx->module_hash_encode_potfile = module_hash_encode_potfile;
|
||||
module_ctx->module_hash_encode = module_hash_encode;
|
||||
module_ctx->module_hash_init_selftest = module_hash_init_selftest;
|
||||
module_ctx->module_hash_mode = MODULE_DEFAULT;
|
||||
@ -834,6 +947,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = module_potfile_custom_check;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -180,6 +180,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -194,6 +194,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -196,6 +196,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -178,6 +178,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -208,6 +208,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -215,6 +215,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = module_potfile_keep_all_hashes;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -157,6 +157,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -282,6 +282,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -193,6 +193,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -196,6 +196,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -194,6 +194,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -210,6 +210,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -193,6 +193,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -191,6 +191,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
@ -180,6 +180,7 @@ void module_init (module_ctx_t *module_ctx)
|
||||
module_ctx->module_opts_type = module_opts_type;
|
||||
module_ctx->module_outfile_check_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_outfile_check_nocomp = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_custom_check = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_disable = MODULE_DEFAULT;
|
||||
module_ctx->module_potfile_keep_all_hashes = MODULE_DEFAULT;
|
||||
module_ctx->module_pwdump_column = MODULE_DEFAULT;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user