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

📄 unafs.c

📁 解Unix密码的程序john1.
💻 C
字号:
/* * This file is part of John the Ripper password cracker, * Copyright (c) 1996-98 by Solar Designer */#include <stdio.h>#include "misc.h"#define DB_ENTRY_SIZE			200void process_entry(unsigned char *entry, char *cell){	char *name = (char *)&entry[40];	char *instance = (char *)&entry[104];	unsigned char *key = &entry[168];	int index;	if (!name[0]) return;	name[63] = 0;	printf("%s", name);	if (instance[0]) {		instance[63] = 0;		printf(".%s", instance);	}	printf(":$K4$");	for (index = 0; index < 8; index++)		printf("%02x", (int)key[index]);	printf(",%s\n", cell);}int process_db(FILE *file, char *cell){	unsigned char buffer[DB_ENTRY_SIZE];	long size;	if (fread(buffer, 8, 1, file) != 1) return 1;	size =		((long)buffer[6] << 8) +		(long)buffer[7];	if (fseek(file, size, SEEK_SET)) pexit("fseek");	if (fread(buffer, 8, 1, file) != 1) return 1;	size +=		((long)buffer[4] << 24) +		((long)buffer[5] << 16) +		((long)buffer[6] << 8) +		(long)buffer[7];	if (fseek(file, size, SEEK_SET)) pexit("fseek");	while (fread(buffer, 1, DB_ENTRY_SIZE, file) == DB_ENTRY_SIZE)		process_entry(buffer, cell);	return 0;}int unafs(int argc, char **argv){	FILE *file;	if (argc != 3) {		printf("Usage: %s DATABASE-FILE CELL-NAME\n",			argv[0] ? argv[0] : "unafs");		if (argc <= 1)			return 0;		else			error();	}	if (!(file = fopen(argv[1], "rb")))		pexit("fopen: %s", argv[1]);	if (process_db(file, argv[2]))	if (!ferror(file)) {		fprintf(stderr, "fread: Unexpected EOF\n");		error();	}	if (ferror(file)) pexit("fread");	if (fclose(file)) pexit("fclose");	return 0;}

⌨️ 快捷键说明

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