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

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

?? charset.c

?? 著名的解Unix密碼的源程序
?? C
字號:
/* * This file is part of John the Ripper password cracker, * Copyright (c) 1996-98 by Solar Designer */#include <stdio.h>#include <unistd.h>#include <string.h>#include "arch.h"#include "misc.h"#include "math.h"#include "params.h"#include "path.h"#include "memory.h"#include "list.h"#include "signals.h"#include "loader.h"#include "external.h"#include "charset.h"typedef unsigned int (*char_counters)	[CHARSET_SIZE + 1][CHARSET_SIZE + 1][CHARSET_SIZE];typedef int64 (*crack_counters)	[CHARSET_LENGTH][CHARSET_LENGTH][CHARSET_SIZE];static void charset_filter_plaintexts(struct db_main *db){	struct list_entry *current, *last;	unsigned char *ptr;	char key[PLAINTEXT_BUFFER_SIZE];	last = NULL;	if ((current = db->plaintexts->head))	do {		if (!current->data[0]) {			list_del_next(db->plaintexts, last);			continue;		}		for (ptr = (unsigned char *)current->data; *ptr; ptr++)		if (*ptr < CHARSET_MIN || *ptr > CHARSET_MAX) {			list_del_next(db->plaintexts, last);			break;		}		if (*ptr) continue;		strnzcpy(key, current->data, PLAINTEXT_BUFFER_SIZE);		if (!ext_filter(key)) {			list_del_next(db->plaintexts, last);			continue;		}		last = current;	} while ((current = current->next));}static void charset_write_header(FILE *file, struct charset_header *header){#if ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 2)	fwrite(header, sizeof(*header), 1, file);#else	fwrite(header->version, sizeof(header->version), 1, file);	fputc(header->min, file);	fputc(header->max, file);	fputc(header->length, file);	fputc(header->count, file);	fwrite(header->offsets, sizeof(header->offsets), 1, file);	fwrite(header->order, sizeof(header->order), 1, file);#endif}void charset_read_header(FILE *file, struct charset_header *header){#if ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 2)	fread(header, sizeof(*header), 1, file);#else	fread(header->version, sizeof(header->version), 1, file);	header->min = fgetc(file);	header->max = fgetc(file);	header->length = fgetc(file);	header->count = fgetc(file);	fread(header->offsets, sizeof(header->offsets), 1, file);	fread(header->order, sizeof(header->order), 1, file);#endif}static int charset_new_length(int length,	struct charset_header *header, FILE *file){	int result;	long offset;	if ((result = length < CHARSET_LENGTH)) {		printf("%d ", length + 1);		fflush(stdout);		offset = ftell(file);		header->offsets[length][0] = offset;		header->offsets[length][1] = offset >> 8;		header->offsets[length][2] = offset >> 16;		header->offsets[length][3] = offset >> 24;	}	return result;}static void charset_generate_chars(struct list_entry *plaintexts,	FILE *file, struct charset_header *header,	char_counters chars, crack_counters cracks){	struct list_entry *current;	unsigned char *ptr;	unsigned char buffer[CHARSET_SIZE];	int length, pos, best, count;	unsigned int value, max;	int i, j, k;	current = plaintexts;	do {		for (ptr = (unsigned char *)current->data; *ptr; ptr++)			(*chars)[0][0][(ARCH_INDEX)(*ptr - CHARSET_MIN)]++;	} while ((current = current->next));	count = 0;	best = 0;	do {		max = 0;		for (k = 0; k < CHARSET_SIZE; k++)		if ((value = (*chars)[0][0][k]) > max) {			max = value; best = k;		}		if (!max) break;		(*chars)[0][0][best] = 0;		buffer[count++] = CHARSET_MIN + best;	} while (1);	header->count = count;	fwrite(buffer, 1, count, file);	for (length = 0; charset_new_length(length, header, file); length++)	for (pos = 0; pos <= length; pos++) {		if (event_abort) return;		fputc(CHARSET_ESC, file); fputc(CHARSET_NEW, file);		fputc(length, file); fputc(pos, file);		memset(chars, 0, sizeof(*chars));		current = plaintexts;		do		if ((int)strlen(ptr = (unsigned char *)current->data) ==		    length + 1) {			(*chars)				[CHARSET_SIZE]				[CHARSET_SIZE]				[(ARCH_INDEX)(ptr[pos] - CHARSET_MIN)]++;			if (pos) (*chars)				[CHARSET_SIZE]				[(ARCH_INDEX)(ptr[pos - 1] - CHARSET_MIN)]				[(ARCH_INDEX)(ptr[pos] - CHARSET_MIN)]++;			if (pos > 1) (*chars)				[(ARCH_INDEX)(ptr[pos - 2] - CHARSET_MIN)]				[(ARCH_INDEX)(ptr[pos - 1] - CHARSET_MIN)]				[(ARCH_INDEX)(ptr[pos] - CHARSET_MIN)]++;		} while ((current = current->next));		for (i = (pos > 1 ? 0 : CHARSET_SIZE); i <= CHARSET_SIZE; i++)		for (j = (pos ? 0 : CHARSET_SIZE); j <= CHARSET_SIZE; j++) {			count = 0;			do {				max = 0;				for (k = 0; k < CHARSET_SIZE; k++)				if ((value = (*chars)[i][j][k]) > max) {					max = value; best = k;				}				if (i == CHARSET_SIZE && j == CHARSET_SIZE)					(*cracks)[length][pos][count].lo = max;				if (!max) break;				(*chars)[i][j][best] = 0;				buffer[count++] = CHARSET_MIN + best;			} while (1);			if (count) {				fputc(CHARSET_ESC, file);				fputc(CHARSET_LINE, file);				fputc(i, file); fputc(j, file);				fwrite(buffer, 1, count, file);			}		}	}	fputc(CHARSET_ESC, file); fputc(CHARSET_NEW, file);	fputc(CHARSET_LENGTH, file);}static void charset_generate_order(crack_counters cracks, unsigned char *order){	int length, pos, count;	int best_length, best_pos, best_count;	unsigned int div;	int64 total, tmp, min, *value;	unsigned char *ptr;	for (length = 0; length < CHARSET_LENGTH; length++)	for (count = 0; count < CHARSET_SIZE; count++) {		pow64of32(&total, count + 1, length + 1);		pow64of32(&tmp, count, length + 1);		neg64(&tmp);		add64to64(&total, &tmp);		mul64by32(&total, CHARSET_SCALE);		if (count) div64by32(&total, length + 1);		for (pos = 0; pos <= length; pos++) {			tmp = total;			if ((div = (*cracks)[length][pos][count].lo))				div64by32(&tmp, div);			(*cracks)[length][pos][count] = tmp;		}	}	ptr = order;	best_length = best_pos = best_count = 0;	do {		min.hi = min.lo = 0xFFFFFFFF;		for (length = 0; length < CHARSET_LENGTH; length++)		for (count = 0; count < CHARSET_SIZE; count++)		for (pos = 0; pos <= length; pos++) {			value = &(*cracks)[length][pos][count];			if (value->hi < min.hi ||			    (value->hi == min.hi && value->lo < min.lo)) {				min = *value;				best_length = length;				best_pos = pos;				best_count = count;			}		}		if (min.hi >= 0xFFFFFFFF && min.lo >= 0xFFFFFFFF) break;		value = &(*cracks)[best_length][best_pos][best_count];		value->hi = value->lo = 0xFFFFFFFF;		*ptr++ = best_length;		*ptr++ = best_pos;		*ptr++ = best_count;	} while (!event_abort);}static void charset_generate_all(struct list_entry *plaintexts, char *charset){	FILE *file;	int error;	struct charset_header *header;	char_counters chars;	crack_counters cracks;	header = (struct charset_header *)mem_alloc(sizeof(*header));	memset(header, 0, sizeof(*header));	chars = (char_counters)mem_alloc(sizeof(*chars));	memset(chars, 0, sizeof(*chars));	cracks = (crack_counters)mem_alloc(sizeof(*cracks));	if (!(file = fopen(path_expand(charset), "wb")))		pexit("fopen: %s", path_expand(charset));	charset_write_header(file, header);	printf("Generating charsets... ");	fflush(stdout);	charset_generate_chars(plaintexts, file, header, chars, cracks);	if (event_abort) {		fclose(file);		unlink(charset);		putchar('\n'); check_abort();	}	printf("DONE\nGenerating cracking order... ");	fflush(stdout);	charset_generate_order(cracks, header->order);	if (event_abort) {		fclose(file);		unlink(charset);		putchar('\n'); check_abort();	}	puts("DONE");	fflush(file);	if (!ferror(file) && !fseek(file, 0, SEEK_SET)) {		strcpy(header->version, CHARSET_VERSION);		header->min = CHARSET_MIN;		header->max = CHARSET_MAX;		header->length = CHARSET_LENGTH;		charset_write_header(file, header);	}	mem_free((void **)&cracks);	mem_free((void **)&chars);	error = ferror(file);	if (error | fclose(file)) {		unlink(charset);		pexit("%s", charset);	}	printf("Successfully written charset file: %s (%d character%s)\n",		charset, header->count, header->count != 1 ? "s" : "");	mem_free((void **)&header);}void do_makechars(struct db_main *db, char *charset){	charset_filter_plaintexts(db);	printf("Loaded %d plaintext%s%s\n",		db->plaintexts->count,		db->plaintexts->count != 1 ? "s" : "",		db->plaintexts->count ? "" : ", exiting...");	if (!db->plaintexts->count) return;	charset_generate_all(db->plaintexts->head, charset);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色av电影| 精品久久久久久久久久久久久久久久久 | 日韩一区二区在线免费观看| 精品国精品自拍自在线| 亚洲精品免费视频| 国产麻豆日韩欧美久久| 欧美日韩精品免费观看视频| 中文在线资源观看网站视频免费不卡| 香蕉久久一区二区不卡无毒影院| 国产69精品久久久久777| 日韩欧美国产麻豆| 亚洲一本大道在线| 99国产精品国产精品毛片| 欧美精品一区二区三区蜜桃视频| 亚洲国产一区二区三区| 99久久精品国产观看| 国产日产欧美精品一区二区三区| 美女脱光内衣内裤视频久久网站 | 一区二区三区影院| 成人精品视频一区| 久久毛片高清国产| 久久99精品国产91久久来源| 欧美猛男男办公室激情| 樱花影视一区二区| 97se亚洲国产综合自在线不卡 | 欧美日韩三级视频| 一区二区三区**美女毛片| 9人人澡人人爽人人精品| 国产日韩精品视频一区| 国产一区二区三区视频在线播放| 欧美一区二区视频观看视频| av一本久道久久综合久久鬼色| 2022国产精品视频| 另类调教123区 | 欧美一级片在线看| 奇米一区二区三区av| 日韩一二三区不卡| 日本成人在线不卡视频| 日韩免费视频线观看| 精品中文av资源站在线观看| 日韩欧美一级精品久久| 裸体在线国模精品偷拍| 久久影视一区二区| 高清在线不卡av| 亚洲欧美在线视频| 欧美亚洲动漫另类| 日本va欧美va瓶| 精品粉嫩超白一线天av| 国产成人欧美日韩在线电影| 国产精品乱码妇女bbbb| 99久久er热在这里只有精品15| 一区二区三区在线视频播放| 日韩欧美久久久| 激情综合网天天干| 中文字幕不卡在线观看| 91免费精品国自产拍在线不卡| 亚洲最新视频在线观看| 欧美一区二区三区视频| 国产一区二区久久| 自拍偷拍欧美激情| 91麻豆精品国产自产在线观看一区 | 色素色在线综合| 日韩成人免费在线| 国产亚洲一区二区三区在线观看 | 9l国产精品久久久久麻豆| 亚洲在线免费播放| 精品三级在线看| 色婷婷综合久久久久中文一区二区 | 天堂成人国产精品一区| 欧美精品一区二区在线播放 | 国产三区在线成人av| 99久久777色| 日韩av一级片| 中文字幕av在线一区二区三区| 91日韩在线专区| 日本成人在线看| 综合亚洲深深色噜噜狠狠网站| 91精品国产日韩91久久久久久| 国产高清精品久久久久| 亚洲电影欧美电影有声小说| 国产亚洲女人久久久久毛片| 欧美在线观看视频在线| 国产精品一区二区黑丝| 五月婷婷综合激情| 亚洲欧美日韩电影| 欧美成人精品高清在线播放| 日本高清不卡视频| 国产酒店精品激情| 日韩精品亚洲专区| 一区二区三区欧美久久| 国产精品色哟哟| 欧美精品一区二区三区蜜桃视频| 欧美午夜影院一区| 99精品国产视频| 国产精品影视在线| 精品一区二区三区蜜桃| 亚洲第一av色| 亚洲视频一区二区免费在线观看| 久久毛片高清国产| 欧美mv和日韩mv国产网站| 欧美自拍偷拍午夜视频| 91在线你懂得| 成人精品小蝌蚪| 成人一区二区三区在线观看| 另类的小说在线视频另类成人小视频在线| 亚洲一区av在线| 亚洲精选视频免费看| 中文字幕日韩一区| 国产精品剧情在线亚洲| 久久久久久久久久久久电影| 精品久久久久久久久久久久久久久| 欧美日韩一二三区| 91黄色免费版| 色狠狠一区二区三区香蕉| 91看片淫黄大片一级| aaa欧美大片| 色综合久久中文字幕| 99re6这里只有精品视频在线观看| 国产精品77777| 高清国产一区二区| 成人国产一区二区三区精品| 成人免费观看av| 波多野结衣一区二区三区| 懂色av一区二区三区蜜臀 | bt欧美亚洲午夜电影天堂| 国产高清亚洲一区| 成人黄色网址在线观看| 成人激情开心网| 91亚洲男人天堂| 91成人在线免费观看| 欧美日韩国产中文| 制服丝袜中文字幕亚洲| 精品国产成人在线影院| 国产日韩精品一区二区三区| 国产精品盗摄一区二区三区| 亚洲男人天堂av| 天堂蜜桃一区二区三区| 久久99久久99| 成人av小说网| 精品视频资源站| 精品毛片乱码1区2区3区 | 精品欧美久久久| 亚洲国产精品成人久久综合一区 | 久久综合九色欧美综合狠狠| 国产亚洲人成网站| 亚洲天堂a在线| 日韩成人精品视频| 成人精品免费看| 欧美三级三级三级| 欧美精品一区二区三区很污很色的 | 美女视频一区在线观看| 成人黄色电影在线| 91精品国产综合久久久蜜臀粉嫩| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品国产三级国产| 日本不卡免费在线视频| 不卡的av在线| 欧美一区二区大片| 自拍视频在线观看一区二区| 琪琪久久久久日韩精品| 99国产一区二区三精品乱码| 欧美一区二视频| 亚洲免费观看高清完整版在线 | 国产精品全国免费观看高清| 午夜精品一区二区三区电影天堂| 国产精品一区二区三区乱码| 欧美又粗又大又爽| 国产欧美日韩另类一区| 午夜精品福利久久久| 成人免费高清在线观看| 欧美一卡二卡三卡| 亚洲美女屁股眼交| 日本 国产 欧美色综合| av福利精品导航| 精品国产免费久久 | 紧缚捆绑精品一区二区| 色婷婷激情一区二区三区| 久久久三级国产网站| 日韩成人一区二区| 91成人国产精品| 亚洲欧美综合色| 成人黄色片在线观看| 久久久久久久久久久久久久久99 | voyeur盗摄精品| 精品毛片乱码1区2区3区| 亚洲123区在线观看| zzijzzij亚洲日本少妇熟睡| wwwwxxxxx欧美| 麻豆久久久久久| 91精品国产综合久久久久久久| 一区二区在线免费| 色婷婷国产精品久久包臀| 中文字幕中文字幕一区二区| 国产伦精品一区二区三区免费| 欧美一级视频精品观看| 日欧美一区二区| 欧美情侣在线播放| 日本特黄久久久高潮| 欧美一区二区三区四区高清| 偷拍与自拍一区|