Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX. На примере octopus.stu.lipetsk.ru
e>
john_register_all();
common_init();
sig_init(idle_yield);
john_load();
}
static void john_run()
{
if (options.flags & FLG_TEST_CHK)
benchmark_all();
else
if (options.flags & FLG_MAKECHARS_CHK)
do_makechars(&database, options.charset);
else
if (options.flags & FLG_CRACKING_CHK) {
if (!(options.flags & FLG_STDOUT)) log_init(LOG_NAME);
tty_init();
if (options.flags & FLG_SINGLE_CHK)
do_single_crack(&database);
else
if (options.flags & FLG_WORDLIST_CHK)
do_wordlist_crack(&database, options.wordlist,
(options.flags & FLG_RULES) != 0);
else
if (options.flags & FLG_INC_CHK)
do_incremental_crack(&database, options.charset);
else
if (options.flags & FLG_EXTERNAL_CHK)
do_external_crack(&database);
else
if (options.flags & FLG_BATCH_CHK)
do_batch_crack(&database);
status_print();
tty_done();
if (!(options.flags & FLG_STDOUT)) log_done();
}
}
static void john_done()
{
path_done();
check_abort();
}
int main(int argc, char **argv)
{
char *name;
#ifdef __DJGPP__
if (--argc <= 0) return 1;
if ((name = strrchr(argv[0], '/')))
strcpy(name + 1, argv[1]);
name = argv[1];
argv[1] = argv[0];
argv++;
#else
if (!argv[0])
name = "";
else
if ((name = strrchr(argv[0], '/')))
name++;
else
name = argv[0];
#endif
#ifdef __CYGWIN32__
if (strlen(name) > 4)
if (!strcmp(strlwr(name) + strlen(name) - 4, ".exe"))
name[strlen(name) - 4] = 0;
#endif
if (!strcmp(name, "john")) {
john_init(argc, argv);
john_run();
john_done();
return 0;
}
if (!strcmp(name, "unshadow"))
return unshadow(argc, argv);
if (!strcmp(name, "unafs"))
return unafs(argc, argv);
if (!strcmp(name, "unique"))
return unique(argc, argv);
fprintf(stderr, "Sorry, I can't find myselfn");
return 1;
}
Файл des_bs.c
#include
#include "arch.h"
#include "DES_std.h"
#include "DES_bs.h"
DES_bs_combined DES_bs_all;
int DES_bs_mem_saving = 0;
extern void DES_bs_body();
void DES_bs_init()
{
int index, bit;
for (index = 0; index < 0x300; index++) {
bit = DES_K_bits[index];
bit -= bit >> 3;
DES_bs_all.Kp[index] = &DES_bs_all.K[55 - bit];
}
}
void DES_bs_set_salt(ARCH_WORD salt)
{
register int src, dst;
register ARCH_WORD mask;
mask = 1;
for (dst = 0; dst < 48; dst++) {
if (dst == 24) mask = 1;
if (salt & mask) {
if (dst < 24) src = dst + 24; else src = dst - 24;
} else src = dst;
DES_bs_all.E[dst] = &DES_bs_all.B[DES_E[src]];
DES_bs_all.E[dst + 48] = &DES_bs_all.B[DES_E[src] + 32];
mask <<= 1;
}
}
void DES_bs_clear_keys()
{
memset(DES_bs_all.K, 0, sizeof(DES_bs_all.K));
}
void DES_bs_set_key(char *key, int index)
{
register char *ptr;
register int ofs, bit;
register ARCH_WORD value;
ofs = 56;
for (ptr = key; *ptr && ofs; ptr++) {
bit = (ofs -= 7);
value = *ptr & 0x7F;
&
| | скачать работу |
Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX. На примере octopus.stu.lipetsk.ru |