本节函数出现在hashes.c文件中。
由于在例子中使用的是哈希文件,因此在hashes_init_stage1函数中,有效行如下:
/**
* load hashes, part I: find input mode, count hashes
*/
EVENT_DATA (EVENT_HASHLIST_COUNT_LINES_PRE, hashfile, strlen (hashfile));//main_hashlist_count_lines_pre
hashes_avail = count_lines (fp);//计数哈希行数
EVENT_DATA (EVENT_HASHLIST_COUNT_LINES_POST, hashfile, strlen (hashfile));//main_hashlist_count_lines_post
rewind (fp);
hashlist_format = hlfmt_detect (hashcat_ctx, fp, 100)
/**
* load hashes, part II: allocate required memory, set pointers
*/
salts_buf = (salt_t *) hccalloc (1, sizeof (salt_t));//没有盐,所以只有一行
for (u32 hash_pos = 0; hash_pos < hashes_avail; hash_pos++)
{
hashes_buf[hash_pos].digest = ((char *) digests_buf) + (hash_pos * hashconfig->dgst_size);//可以看出是连续存储的
hashes_buf[hash_pos].salt = &salts_buf[0];
}
/**
* load hashes, part III: