?? options.c
字號:
/* * This file is part of John the Ripper password cracker, * Copyright (c) 1996-98 by Solar Designer */#include <stdio.h>#include <stdlib.h>#include <string.h>#include "misc.h"#include "memory.h"#include "list.h"#include "loader.h"#include "recovery.h"#include "config.h"#include "options.h"struct options_main options;static struct opt_entry opt_list[] = { {"", FLG_PASSWD, 0, 0, 0, OPT_FMT_ADD_LIST, &options.passwd}, {"single", FLG_SINGLE_SET, FLG_CRACKING_CHK}, {"wordfile", FLG_WORDLIST_SET, FLG_CRACKING_CHK, 0, OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.wordlist}, {"stdin", FLG_STDIN_SET, FLG_CRACKING_CHK}, {"rules", FLG_RULES, FLG_RULES, FLG_WORDLIST_CHK, FLG_STDIN_CHK}, {"incremental", FLG_INC_SET, FLG_CRACKING_CHK, 0, 0, OPT_FMT_STR_ALLOC, &options.charset}, {"external", FLG_EXTERNAL_SET, FLG_EXTERNAL_CHK, 0, OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.external}, {"restore", FLG_RESTORE_SET, FLG_RESTORE_CHK, 0, ~FLG_RESTORE_SET & ~OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &rec_name}, {"session", FLG_SESSION, FLG_SESSION, FLG_CRACKING_SUP, OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &rec_name}, {"makechars", FLG_MAKECHARS_SET, FLG_MAKECHARS_CHK, 0, FLG_CRACKING_CHK | FLG_SESSION | OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.charset}, {"show", FLG_SHOW_SET, FLG_SHOW_CHK, 0, FLG_CRACKING_SUP | FLG_MAKECHARS_CHK}, {"test", FLG_TEST_SET, FLG_TEST_CHK, 0, ~FLG_TEST_SET & ~FLG_FORMAT & ~FLG_SAVEMEM & ~OPT_REQ_PARAM}, {"users", FLG_NONE, 0, FLG_PASSWD, OPT_REQ_PARAM, OPT_FMT_ADD_LIST_MULTI, &options.loader.users}, {"groups", FLG_NONE, 0, FLG_PASSWD, OPT_REQ_PARAM, OPT_FMT_ADD_LIST_MULTI, &options.loader.groups}, {"shells", FLG_NONE, 0, FLG_PASSWD, OPT_REQ_PARAM, OPT_FMT_ADD_LIST_MULTI, &options.loader.shells}, {"salts", FLG_SALTS, FLG_SALTS, FLG_PASSWD, OPT_REQ_PARAM, "%d", &options.loader.min_pps}, {"format", FLG_FORMAT, FLG_FORMAT, FLG_CRACKING_SUP, FLG_MAKECHARS_CHK | OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.format}, {"savemem", FLG_SAVEMEM, FLG_SAVEMEM, 0, OPT_REQ_PARAM, "%u", &mem_saving_level}, {NULL}};#define JOHN_USAGE \"Usage: %s [OPTIONS] [PASSWORD-FILES]\n" \"-single \"single crack\" mode\n" \"-wordfile:FILE -stdin wordlist mode, read words from FILE or stdin\n" \"-rules enable rules for wordlist mode\n" \"-incremental[:MODE] incremental mode [using section MODE]\n" \"-external:MODE external mode or word filter\n" \"-restore[:FILE] restore an interrupted session [from FILE]\n" \"-session:FILE set session file name to FILE\n" \"-makechars:FILE make a charset, FILE will be overwritten\n" \"-show show cracked passwords\n" \"-test perform a benchmark\n" \"-users:[-]LOGIN|UID[,..] load this (these) user(s) only\n" \"-groups:[-]GID[,..] load users of this (these) group(s) only\n" \"-shells:[-]SHELL[,..] load users with this (these) shell(s) only\n" \"-salts:[-]COUNT load salts with at least COUNT passwords only\n" \"-format:NAME force ciphertext format NAME " \ "(DES, BSDI, MD5, BF)\n" \"-savemem:LEVEL enable memory saving, at LEVEL 1..3\n"void opt_init(int argc, char **argv){ if (!argv[1]) { printf(JOHN_USAGE, argv[0]); exit(0); } memset(&options, 0, sizeof(options)); list_init(&options.passwd); options.loader.flags = DB_LOGIN; list_init(&options.loader.users); list_init(&options.loader.groups); list_init(&options.loader.shells); opt_process(opt_list, &options.flags, argv); if (options.flags & FLG_SALTS) if (options.loader.min_pps < 0) { options.loader.max_pps = -1 - options.loader.min_pps; options.loader.min_pps = 0; } if ((options.flags & (FLG_EXTERNAL_CHK | FLG_CRACKING_CHK | FLG_MAKECHARS_CHK)) == FLG_EXTERNAL_CHK) options.flags |= FLG_CRACKING_SET; if (options.flags & FLG_RESTORE_CHK) { rec_restore_args(); return; } if (!(options.flags & FLG_ACTION)) { options.wordlist = cfg_get_param(SECTION_DEFAULTS, NULL, "Wordfile"); if (!options.wordlist) { puts("No action requested"); error(); } options.flags |= FLG_WORDLIST_SET; } if ((options.flags & (FLG_PASSWD | FLG_PWD_REQ)) == FLG_PWD_REQ) { puts("Password files required, but none specified"); error(); } if ((options.flags & (FLG_PASSWD | FLG_PWD_SUP)) == FLG_PASSWD) { puts("Password files specified, but no option would use them"); error(); } rec_argc = argc; rec_argv = argv;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -