static void run_cracker (hc_device_param_t *device_param, const uint pws_cnt)
{
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
// init speed timer
uint speed_pos = device_param->speed_pos;
if (data.attack_mode == ATTACK_MODE_COMBI)
{
- char line_buf[BUFSIZ] = { 0 };
-
uint i = 0;
while (i < innerloop_left)
}
device_param->speed_pos = speed_pos;
+
+ myfree (line_buf);
}
static void load_segment (wl_data_t *wl_data, FILE *fd)
fseek (fp, out_info[j].seek, SEEK_SET);
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (fp))
{
- char line_buf[BUFSIZ] = { 0 };
-
- char *ptr = fgets (line_buf, BUFSIZ - 1, fp);
+ char *ptr = fgets (line_buf, HCBUFSIZ - 1, fp);
if (ptr == NULL) break;
if (data.devices_status == STATUS_CRACKED) break;
}
+ myfree (line_buf);
+
out_info[j].seek = ftell (fp);
//hc_thread_mutex_unlock (mux_display);
autotune (device_param);
+ char *buf = (char *) mymalloc (HCBUFSIZ);
+
const uint attack_kern = data.attack_kern;
const uint kernel_power = device_param->kernel_power;
while (words_cur < kernel_power)
{
- char buf[BUFSIZ] = { 0 };
-
- char *line_buf = fgets (buf, sizeof (buf), stdin);
+ char *line_buf = fgets (buf, HCBUFSIZ - 1, stdin);
if (line_buf == NULL) break;
device_param->kernel_accel = 0;
device_param->kernel_loops = 0;
+ myfree (buf);
+
return NULL;
}
// hlfmt hashcat
-static void hlfmt_hash_hashcat (char line_buf[BUFSIZ], int line_len, char **hashbuf_pos, int *hashbuf_len)
+static void hlfmt_hash_hashcat (char *line_buf, int line_len, char **hashbuf_pos, int *hashbuf_len)
{
if (data.username == 0)
{
}
}
-static void hlfmt_user_hashcat (char line_buf[BUFSIZ], int line_len, char **userbuf_pos, int *userbuf_len)
+static void hlfmt_user_hashcat (char *line_buf, int line_len, char **userbuf_pos, int *userbuf_len)
{
char *pos = NULL;
int len = 0;
// hlfmt pwdump
-static int hlfmt_detect_pwdump (char line_buf[BUFSIZ], int line_len)
+static int hlfmt_detect_pwdump (char *line_buf, int line_len)
{
int sep_cnt = 0;
return 0;
}
-static void hlfmt_hash_pwdump (char line_buf[BUFSIZ], int line_len, char **hashbuf_pos, int *hashbuf_len)
+static void hlfmt_hash_pwdump (char *line_buf, int line_len, char **hashbuf_pos, int *hashbuf_len)
{
char *pos = NULL;
int len = 0;
*hashbuf_len = len;
}
-static void hlfmt_user_pwdump (char line_buf[BUFSIZ], int line_len, char **userbuf_pos, int *userbuf_len)
+static void hlfmt_user_pwdump (char *line_buf, int line_len, char **userbuf_pos, int *userbuf_len)
{
char *pos = NULL;
int len = 0;
// hlfmt passwd
-static int hlfmt_detect_passwd (char line_buf[BUFSIZ], int line_len)
+static int hlfmt_detect_passwd (char *line_buf, int line_len)
{
int sep_cnt = 0;
return 0;
}
-static void hlfmt_hash_passwd (char line_buf[BUFSIZ], int line_len, char **hashbuf_pos, int *hashbuf_len)
+static void hlfmt_hash_passwd (char *line_buf, int line_len, char **hashbuf_pos, int *hashbuf_len)
{
char *pos = NULL;
int len = 0;
*hashbuf_len = len;
}
-static void hlfmt_user_passwd (char line_buf[BUFSIZ], int line_len, char **userbuf_pos, int *userbuf_len)
+static void hlfmt_user_passwd (char *line_buf, int line_len, char **userbuf_pos, int *userbuf_len)
{
char *pos = NULL;
int len = 0;
// hlfmt shadow
-static int hlfmt_detect_shadow (char line_buf[BUFSIZ], int line_len)
+static int hlfmt_detect_shadow (char *line_buf, int line_len)
{
int sep_cnt = 0;
return 0;
}
-static void hlfmt_hash_shadow (char line_buf[BUFSIZ], int line_len, char **hashbuf_pos, int *hashbuf_len)
+static void hlfmt_hash_shadow (char *line_buf, int line_len, char **hashbuf_pos, int *hashbuf_len)
{
hlfmt_hash_passwd (line_buf, line_len, hashbuf_pos, hashbuf_len);
}
-static void hlfmt_user_shadow (char line_buf[BUFSIZ], int line_len, char **userbuf_pos, int *userbuf_len)
+static void hlfmt_user_shadow (char *line_buf, int line_len, char **userbuf_pos, int *userbuf_len)
{
hlfmt_user_passwd (line_buf, line_len, userbuf_pos, userbuf_len);
}
// hlfmt main
-static void hlfmt_hash (uint hashfile_format, char line_buf[BUFSIZ], int line_len, char **hashbuf_pos, int *hashbuf_len)
+static void hlfmt_hash (uint hashfile_format, char *line_buf, int line_len, char **hashbuf_pos, int *hashbuf_len)
{
switch (hashfile_format)
{
}
}
-static void hlfmt_user (uint hashfile_format, char line_buf[BUFSIZ], int line_len, char **userbuf_pos, int *userbuf_len)
+static void hlfmt_user (uint hashfile_format, char *line_buf, int line_len, char **userbuf_pos, int *userbuf_len)
{
switch (hashfile_format)
{
uint num_check = 0;
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (fp))
{
- char line_buf[BUFSIZ] = { 0 };
-
int line_len = fgetl (fp, line_buf);
if (line_len == 0) continue;
num_check++;
}
+ myfree (line_buf);
+
uint hashlist_format = HLFMT_HASHCAT;
for (int i = 1; i < HLFMTS_CNT; i++)
uint line_num = 0;
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (pot_fp))
{
line_num++;
- char line_buf[BUFSIZ] = { 0 };
-
int line_len = fgetl (pot_fp, line_buf);
if (line_len == 0) continue;
pot_cnt++;
}
+ myfree (line_buf);
+
fclose (pot_fp);
SUPPRESS_OUTPUT = 0;
uint line_num = 0;
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (fp))
{
line_num++;
- char line_buf[BUFSIZ] = { 0 };
-
int line_len = fgetl (fp, line_buf);
if (line_len == 0) continue;
}
}
+ myfree (line_buf);
+
fclose (fp);
if (data.quiet == 0) log_info_nn ("Parsed Hashes: %u/%u (%0.2f%%)", hashes_avail, hashes_avail, 100.00);
if (fp != NULL)
{
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
+
+ // to be safe work with a copy (because of line_len loop, i etc)
+ // moved up here because it's easier to handle continue case
+ // it's just 64kb
+
+ char *line_buf_cpy = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (fp))
{
- char line_buf[BUFSIZ] = { 0 };
-
- char *ptr = fgets (line_buf, BUFSIZ - 1, fp);
+ char *ptr = fgets (line_buf, HCBUFSIZ - 1, fp);
if (ptr == NULL) break;
// here we have in line_buf: ESSID:MAC1:MAC2 (without the plain)
// manipulate salt_buf
- // to be safe work with a copy (because of line_len loop, i etc)
-
- char line_buf_cpy[BUFSIZ] = { 0 };
-
memcpy (line_buf_cpy, line_buf, i);
char *mac2_pos = strrchr (line_buf_cpy, ':');
}
}
+ myfree (line_buf_cpy);
+
+ myfree (line_buf);
+
fclose (fp);
}
}
all_kernel_rules_buf = (kernel_rule_t **) mycalloc (rp_files_cnt, sizeof (kernel_rule_t *));
}
- char rule_buf[BUFSIZ] = { 0 };
+ char *rule_buf = (char *) mymalloc (HCBUFSIZ);
int rule_len = 0;
while (!feof (fp))
{
- memset (rule_buf, 0, BUFSIZ);
+ memset (rule_buf, 0, HCBUFSIZ);
rule_len = fgetl (fp, rule_buf);
kernel_rules_avail += INCR_RULES;
}
- memset (rule_buf, 0, BLOCK_SIZE);
+ memset (rule_buf, 0, HCBUFSIZ);
rule_len = (int) generate_random_rule (rule_buf, rp_gen_func_min, rp_gen_func_max);
}
}
+ myfree (rule_buf);
+
/**
* generate NOP rules
*/
return (-1);
}
- char line_buf[BUFSIZ] = { 0 };
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
while (!feof (mask_fp))
{
- memset (line_buf, 0, BUFSIZ);
+ memset (line_buf, 0, HCBUFSIZ);
int line_len = fgetl (mask_fp, line_buf);
maskcnt++;
}
+ myfree (line_buf);
+
fclose (mask_fp);
}
else
return (-1);
}
- char line_buf[BUFSIZ] = { 0 };
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
uint masks_avail = 1;
while (!feof (mask_fp))
{
- memset (line_buf, 0, BUFSIZ);
+ memset (line_buf, 0, HCBUFSIZ);
int line_len = fgetl (mask_fp, line_buf);
maskcnt++;
}
+ myfree (line_buf);
+
fclose (mask_fp);
mask_from_file = 1;
return (-1);
}
- char line_buf[BUFSIZ] = { 0 };
+ char *line_buf = (char *) mymalloc (HCBUFSIZ);
uint masks_avail = 1;
while (!feof (mask_fp))
{
- memset (line_buf, 0, BUFSIZ);
+ memset (line_buf, 0, HCBUFSIZ);
int line_len = fgetl (mask_fp, line_buf);
maskcnt++;
}
+ myfree (line_buf);
+
fclose (mask_fp);
mask_from_file = 1;
{
uint cnt = 0;
- char *buf = (char *) mymalloc (BUFSIZ + 1);
+ char *buf = (char *) mymalloc (HCBUFSIZ + 1);
char prev = '\n';
while (!feof (fd))
{
- size_t nread = fread (buf, sizeof (char), BUFSIZ, fd);
+ size_t nread = fread (buf, sizeof (char), HCBUFSIZ, fd);
if (nread < 1) continue;
line_len++;
- if (line_len == BUFSIZ) line_len--;
+ if (line_len == HCBUFSIZ) line_len--;
if (c == '\n') break;
}
if (rd->pid)
{
- char pidbin[BUFSIZ] = { 0 };
+ char *pidbin = (char *) mymalloc (HCBUFSIZ);
int pidbin_len = -1;
#ifdef _POSIX
- snprintf (pidbin, sizeof (pidbin) - 1, "/proc/%d/cmdline", rd->pid);
+ snprintf (pidbin, HCBUFSIZ - 1, "/proc/%d/cmdline", rd->pid);
FILE *fd = fopen (pidbin, "rb");
if (fd)
{
- pidbin_len = fread (pidbin, 1, BUFSIZ, fd);
+ pidbin_len = fread (pidbin, 1, HCBUFSIZ, fd);
pidbin[pidbin_len] = 0;
#elif _WIN
HANDLE hProcess = OpenProcess (PROCESS_ALL_ACCESS, FALSE, rd->pid);
- char pidbin2[BUFSIZ] = { 0 };
+ char *pidbin2 = (char *) mymalloc (HCBUFSIZ);
int pidbin2_len = -1;
- pidbin_len = GetModuleFileName (NULL, pidbin, BUFSIZ);
- pidbin2_len = GetModuleFileNameEx (hProcess, NULL, pidbin2, BUFSIZ);
+ pidbin_len = GetModuleFileName (NULL, pidbin, HCBUFSIZ);
+ pidbin2_len = GetModuleFileNameEx (hProcess, NULL, pidbin2, HCBUFSIZ);
pidbin[pidbin_len] = 0;
pidbin2[pidbin2_len] = 0;
exit (-1);
}
}
+
+ myfree (pidbin2);
+
#endif
+
+ myfree (pidbin);
}
if (rd->version_bin < RESTORE_MIN)
rd->argv = (char **) mycalloc (rd->argc, sizeof (char *));
+ char *buf = (char *) mymalloc (HCBUFSIZ);
+
for (uint i = 0; i < rd->argc; i++)
{
- char buf[BUFSIZ] = { 0 };
-
- if (fgets (buf, BUFSIZ - 1, fp) == NULL)
+ if (fgets (buf, HCBUFSIZ - 1, fp) == NULL)
{
log_error ("ERROR: cannot read %s", eff_restore_file);
rd->argv[i] = mystrdup (buf);
}
+ myfree (buf);
+
fclose (fp);
char new_cwd[1024] = { 0 };
int line_num = 0;
+ char *buf = (char *) mymalloc (HCBUFSIZ);
+
while (!feof (fp))
{
- char buf[BUFSIZ];
-
- char *line_buf = fgets (buf, sizeof (buf) - 1, fp);
+ char *line_buf = fgets (buf, HCBUFSIZ - 1, fp);
if (line_buf == NULL) break;
}
}
+ myfree (buf);
+
fclose (fp);
// todo: print loaded 'cnt' message
if ((input_len < DISPLAY_LEN_MIN_13300) || (input_len > DISPLAY_LEN_MAX_13300)) return (PARSER_GLOBAL_LENGTH);
if (memcmp (SIGNATURE_AXCRYPT_SHA1, input_buf, 13)) return (PARSER_SIGNATURE_UNMATCHED);
-
+
u32 *digest = (u32 *) hash_buf->digest;
input_buf +=14;
-
+
digest[0] = hex_to_u32 ((const u8 *) &input_buf[ 0]);
digest[1] = hex_to_u32 ((const u8 *) &input_buf[ 8]);
digest[2] = hex_to_u32 ((const u8 *) &input_buf[16]);
char *salt_pos;
char *wrapped_key_pos;
-
+
char *data_pos;
salt->salt_iter = atoi (wrapping_rounds_pos);
-
+
salt_pos = strchr (wrapping_rounds_pos, '*');
if (salt_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
-
+
uint wrapping_rounds_len = salt_pos - wrapping_rounds_pos;
/* Skip '*' */
salt_pos++;
-
+
data_pos = salt_pos;
-
+
wrapped_key_pos = strchr (salt_pos, '*');
if (wrapped_key_pos == NULL) return (PARSER_SEPARATOR_UNMATCHED);
salt->salt_buf[4] = hex_to_u32 ((const u8 *) &data_pos[ 0]);
salt->salt_buf[5] = hex_to_u32 ((const u8 *) &data_pos[ 8]);
- salt->salt_buf[6] = hex_to_u32 ((const u8 *) &data_pos[16]);
+ salt->salt_buf[6] = hex_to_u32 ((const u8 *) &data_pos[16]);
salt->salt_buf[7] = hex_to_u32 ((const u8 *) &data_pos[24]);
salt->salt_buf[8] = hex_to_u32 ((const u8 *) &data_pos[32]);
salt->salt_buf[9] = hex_to_u32 ((const u8 *) &data_pos[40]);
#define GET_P0_CONV(rule) INCR_POS; rule_buf[rule_pos] = conv_itoc (((rule)->cmds[rule_cnt] >> 8) & 0xff)
#define GET_P1_CONV(rule) INCR_POS; rule_buf[rule_pos] = conv_itoc (((rule)->cmds[rule_cnt] >> 16) & 0xff)
-int cpu_rule_to_kernel_rule (char rule_buf[BUFSIZ], uint rule_len, kernel_rule_t *rule)
+int cpu_rule_to_kernel_rule (char *rule_buf, uint rule_len, kernel_rule_t *rule)
{
uint rule_pos;
uint rule_cnt;
return (0);
}
-int kernel_rule_to_cpu_rule (char rule_buf[BUFSIZ], kernel_rule_t *rule)
+int kernel_rule_to_cpu_rule (char *rule_buf, kernel_rule_t *rule)
{
uint rule_cnt;
uint rule_pos;
- uint rule_len = BUFSIZ - 1; // maximum possible len
+ uint rule_len = HCBUFSIZ - 1; // maximum possible len
char rule_cmd;