mirror of
https://github.com/hashcat/hashcat.git
synced 2025-01-11 16:21:12 +00:00
Add some small section with basic examples to --help; some device status fixes
This commit is contained in:
parent
a5a38620d4
commit
6ab712d247
124
src/hashcat.c
124
src/hashcat.c
@ -362,7 +362,7 @@ const char *USAGE_BIG[] =
|
|||||||
"- [ Options ] -",
|
"- [ Options ] -",
|
||||||
"",
|
"",
|
||||||
" Options Short / Long | Type | Description | Example",
|
" Options Short / Long | Type | Description | Example",
|
||||||
"===============================|======|======================================================|=======================",
|
"===============================+======+======================================================+=======================",
|
||||||
" -m, --hash-type | Num | Hash-type, see references below | -m 1000",
|
" -m, --hash-type | Num | Hash-type, see references below | -m 1000",
|
||||||
" -a, --attack-mode | Num | Attack-mode, see references below | -a 3",
|
" -a, --attack-mode | Num | Attack-mode, see references below | -a 3",
|
||||||
" -V, --version | | Print version |",
|
" -V, --version | | Print version |",
|
||||||
@ -391,8 +391,8 @@ const char *USAGE_BIG[] =
|
|||||||
" --outfile-check-timer | Num | Sets seconds between outfile checks to X | --outfile-check=30",
|
" --outfile-check-timer | Num | Sets seconds between outfile checks to X | --outfile-check=30",
|
||||||
" -p, --separator | Char | Separator char for hashlists and outfile | -p :",
|
" -p, --separator | Char | Separator char for hashlists and outfile | -p :",
|
||||||
" --stdout | | Do not crack a hash, instead print candidates only |",
|
" --stdout | | Do not crack a hash, instead print candidates only |",
|
||||||
" --show | | Show cracked passwords only |",
|
" --show | | Compare hashlist with potfile; Show cracked hashes |",
|
||||||
" --left | | Show un-cracked passwords only |",
|
" --left | | Compare hashlist with potfile; Show uncracked hashes |",
|
||||||
" --username | | Enable ignoring of usernames in hashfile |",
|
" --username | | Enable ignoring of usernames in hashfile |",
|
||||||
" --remove | | Enable remove of hash once it is cracked |",
|
" --remove | | Enable remove of hash once it is cracked |",
|
||||||
" --remove-timer | Num | Update input hash file each X seconds | --remove-timer=30",
|
" --remove-timer | Num | Update input hash file each X seconds | --remove-timer=30",
|
||||||
@ -429,9 +429,9 @@ const char *USAGE_BIG[] =
|
|||||||
" -s, --skip | Num | Skip X words from the start | -s 1000000",
|
" -s, --skip | Num | Skip X words from the start | -s 1000000",
|
||||||
" -l, --limit | Num | Limit X words from the start + skipped words | -l 1000000",
|
" -l, --limit | Num | Limit X words from the start + skipped words | -l 1000000",
|
||||||
" --keyspace | | Show keyspace base:mod values and quit |",
|
" --keyspace | | Show keyspace base:mod values and quit |",
|
||||||
" -j, --rule-left | Rule | Single Rule applied to each word from left wordlist | -j 'c'",
|
" -j, --rule-left | Rule | Single rule applied to each word from left wordlist | -j 'c'",
|
||||||
" -k, --rule-right | Rule | Single Rule applied to each word from right wordlist | -k '^-'",
|
" -k, --rule-right | Rule | Single rule applied to each word from right wordlist | -k '^-'",
|
||||||
" -r, --rules-file | File | Multiple Rules applied to each word from wordlists | -r rules/best64.rule",
|
" -r, --rules-file | File | Multiple rules applied to each word from wordlists | -r rules/best64.rule",
|
||||||
" -g, --generate-rules | Num | Generate X random rules | -g 10000",
|
" -g, --generate-rules | Num | Generate X random rules | -g 10000",
|
||||||
" --generate-rules-func-min | Num | Force min X funcs per rule |",
|
" --generate-rules-func-min | Num | Force min X funcs per rule |",
|
||||||
" --generate-rules-func-max | Num | Force max X funcs per rule |",
|
" --generate-rules-func-max | Num | Force max X funcs per rule |",
|
||||||
@ -728,11 +728,20 @@ const char *USAGE_BIG[] =
|
|||||||
" 3 | High | 96 ms | High | Unresponsive",
|
" 3 | High | 96 ms | High | Unresponsive",
|
||||||
" 4 | Nightmare | 480 ms | Insane | Headless",
|
" 4 | Nightmare | 480 ms | Insane | Headless",
|
||||||
"",
|
"",
|
||||||
"If you have no idea what just happened then visit the following pages:",
|
"- [ Basic Examples ] -",
|
||||||
|
"",
|
||||||
|
" Attack- | Hash- |",
|
||||||
|
" Mode | Type | Example command",
|
||||||
|
" ==================+=======+==================================================================",
|
||||||
|
" Wordlist | $P$ | %s -a 0 -m 400 example400.hash example.dict",
|
||||||
|
" Wordlist + Rules | MD5 | %s -a 0 -m 0 example0.hash example.dict -r rules/best64.rule",
|
||||||
|
" Brute-Force | MD5 | %s -a 3 -m 0 example0.hash ?a?a?a?a?a?a",
|
||||||
|
" Combinator | MD5 | %s -a 1 -m 0 example0.hash example.dict example.dict",
|
||||||
|
"",
|
||||||
|
"If you still have no idea what just happened try following pages:",
|
||||||
"",
|
"",
|
||||||
"* https://hashcat.net/wiki/#howtos_videos_papers_articles_etc_in_the_wild",
|
"* https://hashcat.net/wiki/#howtos_videos_papers_articles_etc_in_the_wild",
|
||||||
"* https://hashcat.net/wiki/#frequently_asked_questions",
|
"* https://hashcat.net/wiki/#frequently_asked_questions",
|
||||||
"",
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -6422,6 +6431,10 @@ int main (int argc, char **argv)
|
|||||||
{
|
{
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
else if (keyspace == 1)
|
||||||
|
{
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log_info ("%s (%s) starting...", PROGNAME, VERSION_TAG);
|
log_info ("%s (%s) starting...", PROGNAME, VERSION_TAG);
|
||||||
@ -17216,11 +17229,10 @@ int main (int argc, char **argv)
|
|||||||
* status and monitor threads
|
* status and monitor threads
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
if ((data.devices_status != STATUS_CRACKED) && (data.devices_status != STATUS_ABORTED) && (data.devices_status != STATUS_QUIT))
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
{
|
||||||
if (data.devices_status == STATUS_QUIT) break;
|
|
||||||
|
|
||||||
data.devices_status = STATUS_STARTING;
|
data.devices_status = STATUS_STARTING;
|
||||||
|
}
|
||||||
|
|
||||||
uint ni_threads_cnt = 0;
|
uint ni_threads_cnt = 0;
|
||||||
|
|
||||||
@ -17296,12 +17308,6 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
for (uint maskpos = rd->maskpos; maskpos < maskcnt; maskpos++)
|
for (uint maskpos = rd->maskpos; maskpos < maskcnt; maskpos++)
|
||||||
{
|
{
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
if (data.devices_status == STATUS_QUIT) break;
|
|
||||||
|
|
||||||
data.devices_status = STATUS_INIT;
|
|
||||||
|
|
||||||
if (maskpos > rd->maskpos)
|
if (maskpos > rd->maskpos)
|
||||||
{
|
{
|
||||||
rd->dictpos = 0;
|
rd->dictpos = 0;
|
||||||
@ -17547,11 +17553,10 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
logfile_sub_msg ("START");
|
logfile_sub_msg ("START");
|
||||||
|
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
if (data.devices_status == STATUS_STARTING)
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
{
|
||||||
if (data.devices_status == STATUS_QUIT) break;
|
|
||||||
|
|
||||||
data.devices_status = STATUS_INIT;
|
data.devices_status = STATUS_INIT;
|
||||||
|
}
|
||||||
|
|
||||||
memset (data.words_progress_done, 0, data.salts_cnt * sizeof (u64));
|
memset (data.words_progress_done, 0, data.salts_cnt * sizeof (u64));
|
||||||
memset (data.words_progress_rejected, 0, data.salts_cnt * sizeof (u64));
|
memset (data.words_progress_rejected, 0, data.salts_cnt * sizeof (u64));
|
||||||
@ -17651,9 +17656,6 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
if (data.words_cnt == 0)
|
if (data.words_cnt == 0)
|
||||||
{
|
{
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
|
|
||||||
dictpos++;
|
dictpos++;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -17701,9 +17703,6 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
if (data.words_cnt == 0)
|
if (data.words_cnt == 0)
|
||||||
{
|
{
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
|
|
||||||
dictpos++;
|
dictpos++;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -17744,9 +17743,6 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
if (data.words_cnt == 0)
|
if (data.words_cnt == 0)
|
||||||
{
|
{
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
|
|
||||||
dictpos++;
|
dictpos++;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
@ -18092,10 +18088,8 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
hc_thread_t *c_threads = (hc_thread_t *) mycalloc (data.devices_cnt, sizeof (hc_thread_t));
|
hc_thread_t *c_threads = (hc_thread_t *) mycalloc (data.devices_cnt, sizeof (hc_thread_t));
|
||||||
|
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
if (data.devices_status == STATUS_INIT)
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
{
|
||||||
if (data.devices_status == STATUS_QUIT) break;
|
|
||||||
|
|
||||||
data.devices_status = STATUS_AUTOTUNE;
|
data.devices_status = STATUS_AUTOTUNE;
|
||||||
|
|
||||||
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
||||||
@ -18104,6 +18098,7 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
hc_thread_create (c_threads[device_id], thread_autotune, device_param);
|
hc_thread_create (c_threads[device_id], thread_autotune, device_param);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
hc_thread_wait (data.devices_cnt, c_threads);
|
hc_thread_wait (data.devices_cnt, c_threads);
|
||||||
|
|
||||||
@ -18150,13 +18145,10 @@ int main (int argc, char **argv)
|
|||||||
* create cracker threads
|
* create cracker threads
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
|
if (data.devices_status == STATUS_AUTOTUNE)
|
||||||
|
{
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
if (data.devices_status == STATUS_QUIT) break;
|
|
||||||
|
|
||||||
data.devices_status = STATUS_RUNNING;
|
data.devices_status = STATUS_RUNNING;
|
||||||
|
}
|
||||||
|
|
||||||
if (initial_restore_done == 0)
|
if (initial_restore_done == 0)
|
||||||
{
|
{
|
||||||
@ -18187,6 +18179,8 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
data.runtime_start = runtime_start;
|
data.runtime_start = runtime_start;
|
||||||
|
|
||||||
|
if (data.devices_status == STATUS_RUNNING)
|
||||||
|
{
|
||||||
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
||||||
{
|
{
|
||||||
hc_device_param_t *device_param = &devices_param[device_id];
|
hc_device_param_t *device_param = &devices_param[device_id];
|
||||||
@ -18200,26 +18194,15 @@ int main (int argc, char **argv)
|
|||||||
hc_thread_create (c_threads[device_id], thread_calc, device_param);
|
hc_thread_create (c_threads[device_id], thread_calc, device_param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
hc_thread_wait (data.devices_cnt, c_threads);
|
hc_thread_wait (data.devices_cnt, c_threads);
|
||||||
|
|
||||||
local_free (c_threads);
|
local_free (c_threads);
|
||||||
|
|
||||||
data.restore = 0;
|
|
||||||
|
|
||||||
// finalize task
|
|
||||||
|
|
||||||
logfile_sub_var_uint ("status-after-work", data.devices_status);
|
logfile_sub_var_uint ("status-after-work", data.devices_status);
|
||||||
|
|
||||||
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
|
data.restore = 0;
|
||||||
|
|
||||||
if (data.devices_status == STATUS_CRACKED) break;
|
|
||||||
if (data.devices_status == STATUS_ABORTED) break;
|
|
||||||
|
|
||||||
if (data.devices_status == STATUS_BYPASS)
|
|
||||||
{
|
|
||||||
data.devices_status = STATUS_RUNNING;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (induction_dictionaries_cnt)
|
if (induction_dictionaries_cnt)
|
||||||
{
|
{
|
||||||
@ -18288,6 +18271,19 @@ int main (int argc, char **argv)
|
|||||||
logfile_sub_msg ("STOP");
|
logfile_sub_msg ("STOP");
|
||||||
|
|
||||||
global_free (subid);
|
global_free (subid);
|
||||||
|
|
||||||
|
// finalize task
|
||||||
|
|
||||||
|
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
|
||||||
|
|
||||||
|
if (data.devices_status == STATUS_CRACKED) break;
|
||||||
|
if (data.devices_status == STATUS_ABORTED) break;
|
||||||
|
if (data.devices_status == STATUS_QUIT) break;
|
||||||
|
|
||||||
|
if (data.devices_status == STATUS_BYPASS)
|
||||||
|
{
|
||||||
|
data.devices_status = STATUS_RUNNING;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
|
if (data.devices_status == STATUS_STOP_AT_CHECKPOINT) check_checkpoint ();
|
||||||
@ -18404,20 +18400,16 @@ int main (int argc, char **argv)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (quiet == 0) clear_prompt ();
|
if (quiet == 0)
|
||||||
|
|
||||||
if (quiet == 0) log_info ("");
|
|
||||||
|
|
||||||
if (status == 1 && stdout_flag == 0)
|
|
||||||
{
|
{
|
||||||
status_display ();
|
clear_prompt ();
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (quiet == 0) status_display ();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (quiet == 0) log_info ("");
|
log_info ("");
|
||||||
|
|
||||||
|
if (stdout_flag == 0) status_display ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
for (uint device_id = 0; device_id < data.devices_cnt; device_id++)
|
||||||
|
Loading…
Reference in New Issue
Block a user