|
|
Message-ID: <d88df35d9cde1ede14efbebdf0b50da9@smtp.hushmail.com>
Date: Mon, 03 Mar 2014 10:05:35 +0100
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: Reload pot file
On 2014-03-03 05:08, magnum wrote:
> A different approach - and maybe quicker unless the above is simpler
> than I imagine - would be to do it more like cracker.c does when
> cmp_exact() returns true. I'd need to process the "hash:plain" into
> binaries, salts, sources and plains as if it came from a running format
> after a crack loop. This might be simpler but I haven't thought it
> through yet.
Thinking out loud:
First I copy
crk_process_guess(struct db_salt, struct db_password, int index)
and modify it into a
crk_process_potword(struct db_salt, struct db_password, char *plain)
(or better have one function handle both cases)
Then,
for (each line of .pot file) {
char *ciphertext = field[0];
char *plain = field[1];
if (fmt.methods.valid(ciphertext)) {
pot_salt = fmt.get_salt(ciphertext);
salt = crk_db->salts;
do {
if memcmp(pot_salt, salt->salt, fmt.salt_size)
{
pw = salt->list;
do {
if (strcmp(pw->source, ciphertext)) {
if (crk_process_potword(salt, pw, plain))
goto next_line;
else {
if (!(crk_params.flags & FMT_NOT_EXACT))
break;
}
}
} while ((pw = pw->next));
break;
}
} while ((salt = salt->next));
}
next_line:
}
Maybe this would work. This seems simpler than the loader stuff I looked at.
magnum
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.