亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? inc.c

?? 著名的解Unix密碼的源程序
?? C
字號:
/* * This file is part of John the Ripper password cracker, * Copyright (c) 1996-98 by Solar Designer */#include <stdio.h>#include <string.h>#include "arch.h"#include "misc.h"#include "params.h"#include "path.h"#include "memory.h"#include "signals.h"#include "loader.h"#include "recovery.h"#include "config.h"#include "charset.h"#include "external.h"#include "cracker.h"typedef char (*char2_table)	[CHARSET_SIZE + 1][CHARSET_SIZE + 1];typedef char (*chars_table)	[CHARSET_SIZE + 1][CHARSET_SIZE + 1][CHARSET_SIZE + 1];static int rec_entry;static int rec_numbers[CHARSET_LENGTH];static int entry;static int numbers[CHARSET_LENGTH];static void save_state(FILE *file){	int pos;	fprintf(file, "%d\n", rec_entry);	for (pos = 0; pos < CHARSET_LENGTH; pos++)		fprintf(file, "%d\n", rec_numbers[pos]);}static int restore_state(FILE *file){	int pos;	if (fscanf(file, "%d\n", &rec_entry) != 1) return 1;	for (pos = 0; pos < CHARSET_LENGTH; pos++) {		if (fscanf(file, "%d\n", &rec_numbers[pos]) != 1) return 1;		if ((unsigned int)rec_numbers[pos] >= CHARSET_SIZE) return 1;	}	return 0;}static void fix_state(){	rec_entry = entry;	memcpy(rec_numbers, numbers, sizeof(rec_numbers));}static void inc_format_error(char *charset){	fprintf(stderr, "Incorrect charset file format: %s\n", charset);	error();}static void inc_new_length(unsigned int length,	struct charset_header *header, FILE *file, char *charset,	char *char1, char2_table char2, chars_table *chars){	long offset;	int value, pos, i, j;	char *buffer;	int count;	char1[0] = 0;	if (length)		memset(char2, 0, sizeof(*char2));	for (pos = 0; pos <= (int)length - 2; pos++)		memset(chars[pos], 0, sizeof(**chars));	offset =		(long)header->offsets[length][0] +		((long)header->offsets[length][1] << 8) +		((long)header->offsets[length][2] << 16) +		((long)header->offsets[length][3] << 24);	if (fseek(file, offset, SEEK_SET)) pexit("fseek");	i = j = pos = -1;	if ((value = fgetc(file)) != EOF)	do {		if (value != CHARSET_ESC) {			switch (pos) {			case -1:				inc_format_error(charset);			case 0:				buffer = char1;				break;			case 1:				if (j < 0)					inc_format_error(charset);				buffer = (*char2)[j];				break;			default:				if (i < 0 || j < 0)					inc_format_error(charset);				buffer = (*chars[pos - 2])[i][j];			}			buffer[count = 0] = value;			while ((value = fgetc(file)) != EOF) {				buffer[++count] = value;				if (value == CHARSET_ESC) break;				if (count >= CHARSET_SIZE)					inc_format_error(charset);			}			buffer[count] = 0;			continue;		}		if ((value = fgetc(file)) == EOF) break; else		if (value == CHARSET_NEW) {			if ((value = fgetc(file)) != (int)length) break;			if ((value = fgetc(file)) == EOF) break;			if ((unsigned int)value > length)				inc_format_error(charset);			pos = value;		} else		if (value == CHARSET_LINE) {			if (pos < 0)				inc_format_error(charset);			if ((value = fgetc(file)) == EOF) break;			if ((unsigned int)(i = value) > CHARSET_SIZE)				inc_format_error(charset);			if ((value = fgetc(file)) == EOF) break;			if ((unsigned int)(j = value) > CHARSET_SIZE)				inc_format_error(charset);		} else			inc_format_error(charset);		value = fgetc(file);	} while (value != EOF);	if (value == EOF) {		if (ferror(file)) pexit("fgetc"); else			inc_format_error(charset);	}}static void expand(char *dst, char *src, int size){	char *dptr = dst, *sptr = src;	int count = size;	char present[CHARSET_SIZE];	memset(present, 0, sizeof(present));	while (*dptr) {		if (--count <= 1) return;		present[((ARCH_INDEX)*dptr++) - CHARSET_MIN] = 1;	}	while (*sptr)	if (!present[(ARCH_INDEX)*sptr - CHARSET_MIN]) {		*dptr++ = *sptr++;		if (--count <= 1) break;	} else		sptr++;	*dptr = 0;}static void inc_new_count(unsigned int length, int count,	char *allchars, char *char1, char2_table char2, chars_table *chars){	int pos, i, j;	int size;	size = count + 2;	expand(char1, allchars, size);	if (length)		expand((*char2)[CHARSET_SIZE], allchars, size);	for (pos = 0; pos <= (int)length - 2; pos++)		expand((*chars[pos])[CHARSET_SIZE][CHARSET_SIZE],			allchars, size);	for (i = 0; i < CHARSET_SIZE; i++) {		if (length)			expand((*char2)[i], (*char2)[CHARSET_SIZE], size);		for (j = 0; j < CHARSET_SIZE; j++)		for (pos = 0; pos <= (int)length - 2; pos++) {			expand((*chars[pos])[i][j], (*chars[pos])				[CHARSET_SIZE][j], size);			expand((*chars[pos])[i][j], (*chars[pos])				[CHARSET_SIZE][CHARSET_SIZE], size);		}	}}static int inc_key_loop(int length, int fixed, int count,	char *char1, char2_table char2, chars_table *chars){	char key[PLAINTEXT_BUFFER_SIZE];	int pos;	key[length + 1] = 0;	numbers[fixed] = count;	do {		key[0] = char1[numbers[0]];		if (length)			key[1] = (*char2)[key[0] - CHARSET_MIN][numbers[1]];		for (pos = 2; pos <= length; pos++)			key[pos] = (*chars[pos - 2])				[(ARCH_INDEX)key[pos - 2] - CHARSET_MIN]				[(ARCH_INDEX)key[pos - 1] - CHARSET_MIN]				[numbers[pos]];		if (ext_filter(key))		if (crk_process_key(key)) return 1;		if (length) {			pos = 0;			do {				if (pos == fixed) continue;				if (++numbers[pos] <= count -					((pos < fixed) ? 1 : 0)) break;				numbers[pos] = 0;			} while (++pos <= length);		} else			if (++numbers[0] <= count) pos = 0; else break;	} while (pos <= length);	return 0;}void do_incremental_crack(struct db_main *db, char *mode){	char *charset;	int min_length, max_length, max_count;	char *extra;	FILE *file;	struct charset_header *header;	char allchars[CHARSET_SIZE + 1];	char char1[CHARSET_SIZE + 1];	char2_table char2;	chars_table chars[CHARSET_LENGTH - 2];	unsigned char *ptr;	unsigned int length, fixed, count;	unsigned int real_count;	int last_length, last_count;	int pos;	if (!mode) mode = "All";	if (!(charset = cfg_get_param(SECTION_INC, mode, "File"))) {		fprintf(stderr, "No charset defined for mode: %s\n", mode);		error();	}	extra = cfg_get_param(SECTION_INC, mode, "Extra");	if ((min_length = cfg_get_int(SECTION_INC, mode, "MinLen")) < 0)		min_length = 0;	if ((max_length = cfg_get_int(SECTION_INC, mode, "MaxLen")) < 0)		max_length = CHARSET_LENGTH;	max_count = cfg_get_int(SECTION_INC, mode, "CharCount");	if (!(file = fopen(path_expand(charset), "rb")))		pexit("fopen: %s", path_expand(charset));	header = (struct charset_header *)mem_alloc(sizeof(*header));	charset_read_header(file, header);	if (ferror(file)) pexit("fread");	if (feof(file) ||		memcmp(header->version, CHARSET_VERSION,			sizeof(header->version)) ||		header->min != CHARSET_MIN || header->max != CHARSET_MAX ||		header->length != CHARSET_LENGTH ||		header->count > CHARSET_SIZE ||		!header->count) inc_format_error(charset);	fread(allchars, header->count, 1, file);	if (ferror(file)) pexit("fread");	if (feof(file)) inc_format_error(charset);	allchars[header->count] = 0;	if (extra)		expand(allchars, extra, sizeof(allchars));	real_count = strlen(allchars);	if (max_count < 0) max_count = CHARSET_SIZE; else	if ((unsigned int)max_count > real_count)		fprintf(stderr,"Warning: only %d characters available\n",			real_count);	if (header->length >= 2)		char2 = (char2_table)mem_alloc(sizeof(*char2));	else		char2 = NULL;	for (pos = 0; pos < (int)header->length - 2; pos++)		chars[pos] = (chars_table)mem_alloc(sizeof(*chars[0]));	rec_entry = 0;	memset(rec_numbers, 0, sizeof(rec_numbers));	rec_restore_mode(restore_state);	rec_init(db, save_state);	ptr = header->order + (entry = rec_entry) * 3;	memcpy(numbers, rec_numbers, sizeof(numbers));	crk_init(db, fix_state, NULL);	last_count = last_length = -1;	entry--;	while (ptr < &header->order[sizeof(header->order) - 1]) {		entry++;		length = *ptr++; fixed = *ptr++; count = *ptr++;		if (length >= CHARSET_LENGTH ||			fixed > length ||			count >= CHARSET_SIZE) inc_format_error(charset);		if (entry != rec_entry)			memset(numbers, 0, sizeof(numbers));		if (count >= real_count ||			(int)length >= db->format->params.plaintext_length ||			(fixed && !count)) continue;		if ((int)length + 1 < min_length ||			(int)length >= max_length ||			(int)count >= max_count) continue;		if ((int)length != last_length) {			inc_new_length(last_length = length,				header, file, charset, char1, char2, chars);			last_count = -1;		}		if ((int)count > last_count)			inc_new_count(length, last_count = count,				allchars, char1, char2, chars);		if (!length && !min_length) {			min_length = 1;			if (crk_process_key("")) break;		}		if (inc_key_loop(length, fixed, count, char1, char2, chars))			break;	}	crk_done();	rec_done(event_abort);	for (pos = 0; pos < (int)header->length - 2; pos++)		mem_free((void **)&chars[pos]);	mem_free((void **)&char2);	mem_free((void **)&header);	fclose(file);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文一区二区完整视频在线观看| 成年人午夜久久久| 亚洲欧美在线另类| 久久久高清一区二区三区| 日韩午夜在线影院| 欧美一二三区在线| 日韩亚洲电影在线| 精品粉嫩超白一线天av| 久久色中文字幕| 久久婷婷国产综合精品青草| 欧美精品一区二区三区在线播放 | 国产精品久久久久影视| 国产日韩欧美一区二区三区综合 | 国产精品综合二区| 国产精品白丝jk黑袜喷水| 成人黄色小视频| 91在线观看视频| 欧美性大战久久久久久久蜜臀 | 亚洲女同一区二区| 亚洲最大成人网4388xx| 亚洲国产wwwccc36天堂| 蜜臀久久99精品久久久画质超高清| 奇米888四色在线精品| 久久99蜜桃精品| 成人做爰69片免费看网站| www.欧美亚洲| 欧美日韩中文字幕一区| 日韩视频免费观看高清完整版| 精品国产a毛片| 国产精品久久久久久亚洲毛片| 亚洲男人电影天堂| 亚欧色一区w666天堂| 精品无人码麻豆乱码1区2区| 丁香亚洲综合激情啪啪综合| 色94色欧美sute亚洲13| 欧美一区二区三区免费视频| 国产无人区一区二区三区| 亚洲精品你懂的| 日韩av一级电影| 成人午夜电影网站| 在线综合亚洲欧美在线视频| 久久九九久久九九| 午夜亚洲国产au精品一区二区| 国产尤物一区二区在线| 91行情网站电视在线观看高清版| 日韩三级av在线播放| 亚洲欧洲日韩av| 美腿丝袜亚洲一区| 色丁香久综合在线久综合在线观看| 这里只有精品电影| 自拍偷在线精品自拍偷无码专区| 日本亚洲电影天堂| 91一区二区在线| 精品久久久久香蕉网| 亚洲激情图片小说视频| 国产一区二区看久久| 欧美最新大片在线看| 中文字幕免费在线观看视频一区| 日韩成人一级片| 欧亚一区二区三区| 亚洲色图一区二区| 成人开心网精品视频| 中文字幕在线一区免费| 国产在线乱码一区二区三区| 欧美日韩一本到| 亚洲精品乱码久久久久久久久 | 国产校园另类小说区| 日韩成人免费电影| 欧美日韩高清一区| 亚洲国产精品久久久久婷婷884| 白白色 亚洲乱淫| 久久久99免费| 国产一区二区三区久久久 | 91精品久久久久久蜜臀| 亚洲精品ww久久久久久p站 | 成人亚洲一区二区一| 精品美女在线观看| 麻豆91小视频| 欧美大片在线观看一区| 麻豆视频一区二区| 91麻豆精品国产91久久久久久 | 亚洲精品一二三区| 91在线精品一区二区| 亚洲视频一区二区在线| 成人av在线播放网址| 一色桃子久久精品亚洲| fc2成人免费人成在线观看播放| 欧美国产精品一区二区三区| 懂色av一区二区三区免费观看| 日本一区二区免费在线观看视频 | 国产欧美精品区一区二区三区| 国产精品亚洲视频| 中文字幕制服丝袜一区二区三区 | 国产精品福利一区二区三区| a在线欧美一区| 樱花草国产18久久久久| 欧美色大人视频| 日韩中文欧美在线| 久久天天做天天爱综合色| 国产成人午夜99999| 国产精品久99| 欧美日韩国产天堂| 久久av资源站| 成人欧美一区二区三区1314| 在线日韩av片| 麻豆成人久久精品二区三区小说| 久久久久久一二三区| 99久久婷婷国产| 日韩电影在线观看网站| 国产欧美视频一区二区| 欧美色综合久久| 精品一区二区国语对白| 一区在线观看免费| 欧美一级黄色片| 成人小视频在线| 日韩精品91亚洲二区在线观看| 久久人人超碰精品| 日本韩国视频一区二区| 久久精品国产成人一区二区三区| 国产精品九色蝌蚪自拍| 欧美精品777| 成人妖精视频yjsp地址| 蜜臀av在线播放一区二区三区| 国产精品女人毛片| 3d成人h动漫网站入口| 不卡av在线免费观看| 男人操女人的视频在线观看欧美| 中文字幕在线不卡| 2023国产一二三区日本精品2022| 91网站在线播放| 国产精品99久久久久久久vr| 丝袜a∨在线一区二区三区不卡| 国产欧美一区二区三区鸳鸯浴| 欧美精品久久一区二区三区| 成人av电影免费在线播放| 美腿丝袜亚洲综合| 亚洲国产另类av| 国产精品国产精品国产专区不片| 日韩三级中文字幕| 在线不卡欧美精品一区二区三区| 不卡电影免费在线播放一区| 国产精品一二三区| 精品一二线国产| 免费观看在线综合色| 日韩中文字幕区一区有砖一区| 日韩一区中文字幕| 日本一区二区动态图| 日韩一级片网址| 欧美高清视频在线高清观看mv色露露十八 | 丁香婷婷综合网| 精品一区二区三区免费| 日本欧美一区二区| 亚洲一二三四区不卡| 亚洲精品高清在线| 亚洲综合色视频| 亚洲综合成人网| 夜夜精品浪潮av一区二区三区| 亚洲人亚洲人成电影网站色| 国产精品传媒视频| 国产精品不卡在线| 亚洲人午夜精品天堂一二香蕉| 最新中文字幕一区二区三区| 亚洲欧美在线另类| 亚洲女厕所小便bbb| 一区二区三区高清在线| 亚洲一区在线观看网站| 日韩中文字幕一区二区三区| 日韩成人dvd| 久88久久88久久久| 国产在线播精品第三| 岛国精品在线播放| 91麻豆高清视频| 欧美最猛性xxxxx直播| 91精品国产91久久综合桃花| 日韩欧美卡一卡二| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久久久久久果冻传媒| 日韩美女视频一区| 五月激情丁香一区二区三区| 毛片av一区二区| 成人久久视频在线观看| 欧美日韩视频在线一区二区| 日韩欧美你懂的| 中文字幕日本不卡| 日韩av中文字幕一区二区三区| 黑人巨大精品欧美黑白配亚洲| 成人免费视频app| 在线亚洲免费视频| 国产精品日韩成人| 午夜久久久久久久久 | 精品国产乱码久久久久久久久 | 国产91清纯白嫩初高中在线观看| av欧美精品.com| 欧美日韩国产影片| 国产欧美一区二区三区沐欲| 亚洲国产精品视频| 国产一区二区视频在线| 欧美在线小视频| 日韩欧美在线网站| 亚洲视频资源在线|