⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loader.h

📁 unix密码破解软件John the Ripper
💻 H
字号:
/* * This file is part of John the Ripper password cracker, * Copyright (c) 1996-98 by Solar Designer *//* * Password database management. */#ifndef _JOHN_LOADER_H#define _JOHN_LOADER_H#include "params.h"#include "list.h"#include "formats.h"/* * Password list (with a fixed salt) entry. */struct db_password {/* Pointer to next password with the same salt */	struct db_password *next;/* Pointer to next password with the same salt and hash (used for a different * purpose while loading). */	struct db_password *next_hash;/* Some bytes of binary ciphertext for fast comparison */	void *binary;/* ASCII ciphertext for exact comparison and saving with cracked passwords */	char *source;/* Login field from the password file, with ":1" or ":2" appended if the * ciphertext was split into two parts. */	char *login;/* Words from GECOS field -- loaded for "single crack" mode only */	struct list_main *words;};/* * Buffered keys hash table entry. */struct db_keys_hash_entry {/* Index of next key with the same hash */	short next;/* Byte offset of this key in the buffer */	short offset;};/* * Buffered keys hash. */struct db_keys_hash {/* The hash table, maps to indices for the list below */	short hash[SINGLE_HASH_SIZE];/* List of keys with the same hash, allocated as min_keys_per_crypt entries */	struct db_keys_hash_entry list[1];};/* * Buffered keys. */struct db_keys {/* Number of keys currently in the buffer */	int count;/* &buffer[count * plaintext_length] */	char *ptr;/* Number of last processed rule */	int rule;/* Number of recursive calls for this salt */	int lock;/* Keys hash table, for fast dupe checking */	struct db_keys_hash *hash;/* The keys, allocated as (plaintext_length * min_keys_per_crypt) bytes */	char buffer[1];};/* * Salt list entry. */struct db_salt {/* Pointer to next salt in the list */	struct db_salt *next;/* Salt in internal representation */	void *salt;/* Pointer to a hash function to get the index of password list to be * compared against the crypt_all() method output with given index. The * function always returns zero if there's no hash table for this salt. */	int (*index)(int index);/* List of passwords with this salt */	struct db_password *list;/* Password hash table for this salt, or a pointer to the list field */	struct db_password **hash;/* Hash table size code, negative for none */	int hash_size;/* Number of passwords with this salt */	int count;/* Buffered keys, allocated for "single crack" mode only */	struct db_keys *keys;};/* * Structure to hold a cracked password. */struct db_cracked {/* Pointer to next password with the same hash */	struct db_cracked *next;/* Data from the pot file */	char *ciphertext, *plaintext;};/* * Password database contents flags. *//* Login fields loaded */#define DB_LOGIN			0x00000001/* Words from GECOS fields loaded */#define DB_WORDS			0x00000002/* Some hashed passwords were split into several entries */#define DB_SPLIT			0x00000010/* Cracked passwords only (ciphertext, plaintext) */#define DB_CRACKED			0x00000100/* Cracked plaintexts list */#define DB_PLAINTEXTS			0x00000200/* * Password database options. */struct db_options {/* Contents flags bitmask */	unsigned int flags;/* Filters to use while loading */	struct list_main *users, *groups, *shells;/* Requested passwords per salt */	int min_pps, max_pps;};/* * Main password database. */struct db_main {/* Are hashed passwords loaded into this database? */	int loaded;/* Options */	struct db_options *options;/* Salt list */	struct db_salt *salts;/* Salt and password hash tables, used while loading */	struct db_salt **salt_hash;	struct db_password **password_hash;/* Cracked passwords */	struct db_cracked **cracked_hash;/* Cracked plaintexts list */	struct list_main *plaintexts;/* Number of salts, passwords and guesses */	int salt_count, password_count, guess_count;/* Ciphertext format */	struct fmt_main *format;};/* * Initializes the database before loading. */extern void ldr_init_database(struct db_main *db, struct db_options *options);/* * Loads a password file into the database. */extern void ldr_load_pw_file(struct db_main *db, char *name);/* * Removes passwords cracked in previous sessions from the database. */extern void ldr_load_pot_file(struct db_main *db, char *name);/* * Fixes the database after loading. */extern void ldr_fix_database(struct db_main *db);/* * Updates the database after a password has been cracked and removed. */extern void ldr_update_salt(struct db_main *db, struct db_salt *salt);/* * Loads cracked passwords into the database. */extern void ldr_show_pot_file(struct db_main *db, char *name);/* * Shows cracked passwords. */extern void ldr_show_pw_file(struct db_main *db, char *name);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -