Reduce helptext width from 134 to 118; Reduce -w 1 target to 2ms
authorjsteube <jens.steube@gmail.com>
Mon, 23 May 2016 19:34:50 +0000 (21:34 +0200)
committerjsteube <jens.steube@gmail.com>
Mon, 23 May 2016 19:34:50 +0000 (21:34 +0200)
src/hashcat.c

index 8f39f5f..316c769 100644 (file)
@@ -19,7 +19,7 @@ const char *PROGNAME            = "hashcat";
 const uint  VERSION_BIN         = 300;
 const uint  RESTORE_MIN         = 300;
 
-double TARGET_MS_PROFILE[4]     = { 4, 12, 96, 480 };
+double TARGET_MS_PROFILE[4]     = { 2, 12, 96, 480 };
 
 #define INCR_RULES              10000
 #define INCR_SALTS              100000
@@ -353,89 +353,88 @@ const char *USAGE_BIG[] =
   "# Options #",
   "###########",
   "",
-  " Short- | Long-                     | Parameter- | Description                                          | Example",
-  " Option | Option                    | Type       |                                                      |",
-  "--------+---------------------------+------------+------------------------------------------------------+---------------------",
-  " -m     | --hash-type               | Number     | Hash-type, see references below                      | -m 1000",
-  " -a     | --attack-mode             | Number     | Attack-mode, see references below                    | -a 3",
-  " -V     | --version                 |            | Print version                                        | --version",
-  " -h     | --help                    |            | Print help                                           | --help",
-  "        | --quiet                   |            | Suppress output                                      | --quiet",
-  "        | --hex-charset             |            | Assume charset is given in hex                       | --hex-charset",
-  "        | --hex-salt                |            | Assume salt is given in hex                          | --hex-salt",
-  "        | --hex-wordlist            |            | Assume words in wordlist is given in hex             | --hex-wordlist",
-  "        | --force                   |            | Ignore warnings                                      | --force",
-  "        | --status                  |            | Enable automatic update of the status-screen         | --status",
-  "        | --status-timer            | Number     | Sets seconds between status-screen update to X       | --status-timer=1",
-  "        | --status-automat          |            | Display the status view in a machine readable format | --status-automat",
-  "        | --loopback                |            | Add new plains to induct directory                   | --loopback",
-  "        | --weak-hash-threshold     | Number     | Threshold X when to stop checking for weak hashes    | --weak-hash-threshold=0",
-  "        | --markov-hcstat           | File       | Specify hcstat file to use, default is hashcat.hcstat| --markiv-hcstat=my.hcstat",
-  "        | --markov-disable          |            | Disables markov-chains, emulates classic brute-force | --markov-disable",
-  "        | --markov-classic          |            | Enables classic markov-chains, no per-position       | --markov-classic",
-  " -t     | --markov-threshold        | Number     | Threshold X when to stop accepting new markov-chains | -t 50",
-  "        | --runtime                 | Number     | Abort session after X seconds of runtime             | --runtime=10",
-  "        | --session                 | String     | Define specific session name                         | --session=mysession",
-  "        | --restore                 |            | Restore session from --session                       | --restore",
-  "        | --restore-disable         |            | Do not write restore file                            | --restore-disable",
-  " -o     | --outfile                 | File       | Define outfile for recovered hash                    | -o outfile.txt",
-  "        | --outfile-format          | Number     | Define outfile-format X for recovered hash           | --outfile-format=7",
-  "        | --outfile-autohex-disable |            | Disable the use of $HEX[] in output plains           | --outfile-autohex-disable",
-  "        | --outfile-check-timer     | Number     | Sets seconds between outfile checks to X             | --outfile-check-timer=30",
-  " -p     | --separator               | Char       | Separator char for hashlists and outfile             | -p :",
-  "        | --show                    |            | Show cracked passwords only                          | --show",
-  "        | --left                    |            | Show un-cracked passwords only                       | --left",
-  "        | --username                |            | Enable ignoring of usernames in hashfile             | --username",
-  "        | --remove                  |            | Enable remove of hash once it is cracked             | --remove",
-  "        | --remove-timer            | Number     | Update input hash file each X seconds                | --remove-timer=30",
-  "        | --potfile-disable         |            | Do not write potfile                                 | --potfile-disable",
-  "        | --potfile-path            |            | Specific path to potfile                             | --potfile-path=hashcat.pot",
-  "        | --debug-mode              | Number     | Defines the debug mode (hybrid only by using rules)  | --debug-mode=4",
-  "        | --debug-file              | File       | Output file for debugging rules                      | --debug-file=goodrules.log",
-  "        | --induction-dir           | Folder     | Specify the induction directory to use for loopback  | --induction-dir=inducts",
-  "        | --outfile-check-dir       | Folder     | Specify the outfile directory to monitor for plains  | --outfile-check-dir=ext",
-  "        | --logfile-disable         |            | Disable the logfile                                  | --logfile-disable",
-  "        | --truecrypt-keyfiles      | File       | Keyfiles used, separate with comma                   | --truecrypt-keyfiles=xx.png",
-  "        | --veracrypt-keyfiles      | File       | Keyfiles used, separate with comma                   | --veracrypt-keyfiles=xx.png",
-  "        | --veracrypt-pim           | Number     | VeraCrypt personal iterations multiplier             | --veracrypt-pim=1000",
-  " -b     | --benchmark               |            | Run benchmark                                        | -b",
-  " -c     | --segment-size            | Number     | Sets size in MB to cache from the wordfile to X      | -c 32",
-  "        | --bitmap-min              | Number     | Sets minimum bits allowed for bitmaps to X           | --bitmap-min=24",
-  "        | --bitmap-max              | Number     | Sets maximum bits allowed for bitmaps to X           | --bitmap-min=24",
-  "        | --cpu-affinity            | String     | Locks to CPU devices, separate with comma            | --cpu-affinity=1,2,3,4",
-  "        | --opencl-platforms        | String     | OpenCL platforms to use, separate with comma         | --opencl-platforms=2",
-  " -d     | --opencl-devices          | String     | OpenCL devices to use, separate with comma           | -d 1",
-  "        | --opencl-device-types     | String     | OpenCL device-types to use, separate with comma      | --opencl-device-types=1,2",
-  "        | --opencl-vector-width     | Number     | Manual override OpenCL vector-width to X             | --opencl-vector-width=4",
-  " -w     | --workload-profile        | Number     | Enable a specific workload profile, see pool below   | -w 3",
-  " -n     | --kernel-accel            | Number     | Manual workload tuning, set outerloop step size to X | -n 64",
-  " -u     | --kernel-loops            | Number     | Manual workload tuning, set innerloop step size to X | -u 256",
-  "        | --gpu-temp-disable        |            | Disable temperature and fanspeed reads and triggers  | --gpu-temp-disable",
+  " Options Short / Long          | Type | Description                                          | Example",
+  "===============================|======|======================================================|=======================",
+  " -m, --hash-type               | Num  | Hash-type, see references below                      | -m 1000",
+  " -a, --attack-mode             | Num  | Attack-mode, see references below                    | -a 3",
+  " -V, --version                 |      | Print version                                        |",
+  " -h, --help                    |      | Print help                                           |",
+  "     --quiet                   |      | Suppress output                                      |",
+  "     --hex-charset             |      | Assume charset is given in hex                       |",
+  "     --hex-salt                |      | Assume salt is given in hex                          |",
+  "     --hex-wordlist            |      | Assume words in wordlist is given in hex             |",
+  "     --force                   |      | Ignore warnings                                      |",
+  "     --status                  |      | Enable automatic update of the status-screen         |",
+  "     --status-timer            | Num  | Sets seconds between status-screen update to X       | --status-timer=1",
+  "     --status-automat          |      | Display the status view in a machine readable format |",
+  "     --loopback                |      | Add new plains to induct directory                   |",
+  "     --weak-hash-threshold     | Num  | Threshold X when to stop checking for weak hashes    | --weak=0",
+  "     --markov-hcstat           | File | Specify hcstat file to use                           | --markov-hc=my.hcstat",
+  "     --markov-disable          |      | Disables markov-chains, emulates classic brute-force |",
+  "     --markov-classic          |      | Enables classic markov-chains, no per-position       |",
+  " -t, --markov-threshold        | Num  | Threshold X when to stop accepting new markov-chains | -t 50",
+  "     --runtime                 | Num  | Abort session after X seconds of runtime             | --runtime=10",
+  "     --session                 | Str  | Define specific session name                         | --session=mysession",
+  "     --restore                 |      | Restore session from --session                       |",
+  "     --restore-disable         |      | Do not write restore file                            |",
+  " -o, --outfile                 | File | Define outfile for recovered hash                    | -o outfile.txt",
+  "     --outfile-format          | Num  | Define outfile-format X for recovered hash           | --outfile-format=7",
+  "     --outfile-autohex-disable |      | Disable the use of $HEX[] in output plains           |",
+  "     --outfile-check-timer     | Num  | Sets seconds between outfile checks to X             | --outfile-check=30",
+  " -p, --separator               | Char | Separator CHR  for hashlists and outfile             | -p :",
+  "     --show                    |      | Show cracked passwords only                          |",
+  "     --left                    |      | Show un-cracked passwords only                       |",
+  "     --username                |      | Enable ignoring of usernames in hashfile             |",
+  "     --remove                  |      | Enable remove of hash once it is cracked             |",
+  "     --remove-timer            | Num  | Update input hash file each X seconds                | --remove-timer=30",
+  "     --potfile-disable         |      | Do not write potfile                                 |",
+  "     --potfile-path            | Dir  | Specific path to potfile                             | --potfile-path=my.pot",
+  "     --debug-mode              | Num  | Defines the debug mode (hybrid only by using rules)  | --debug-mode=4",
+  "     --debug-file              | File | Output file for debugging rules                      | --debug-file=good.log",
+  "     --induction-dir           | Dir  | Specify the induction directory to use for loopback  | --induction=inducts",
+  "     --outfile-check-dir       | Dir  | Specify the outfile directory to monitor for plains  | --outfile-check-dir=x",
+  "     --logfile-disable         |      | Disable the logfile                                  |",
+  "     --truecrypt-keyfiles      | File | Keyfiles used, separate with comma                   | --truecrypt-key=x.png",
+  "     --veracrypt-keyfiles      | File | Keyfiles used, separate with comma                   | --veracrypt-key=x.txt",
+  "     --veracrypt-pim           | Num  | VeraCrypt personal iterations multiplier             | --veracrypt-pim=1000",
+  " -b, --benchmark               |      | Run benchmark                                        |",
+  " -c, --segment-size            | Num  | Sets size in MB to cache from the wordfile to X      | -c 32",
+  "     --bitmap-min              | Num  | Sets minimum bits allowed for bitmaps to X           | --bitmap-min=24",
+  "     --bitmap-max              | Num  | Sets maximum bits allowed for bitmaps to X           | --bitmap-min=24",
+  "     --cpu-affinity            | Str  | Locks to CPU devices, separate with comma            | --cpu-affinity=1,2,3",
+  "     --opencl-platforms        | Str  | OpenCL platforms to use, separate with comma         | --opencl-platforms=2",
+  " -d, --opencl-devices          | Str  | OpenCL devices to use, separate with comma           | -d 1",
+  "     --opencl-device-types     | Str  | OpenCL device-types to use, separate with comma      | --opencl-device-type=1",
+  "     --opencl-vector-width     | Num  | Manual override OpenCL vector-width to X             | --opencl-vector=4",
+  " -w, --workload-profile        | Num  | Enable a specific workload profile, see pool below   | -w 3",
+  " -n, --kernel-accel            | Num  | Manual workload tuning, set outerloop step size to X | -n 64",
+  " -u, --kernel-loops            | Num  | Manual workload tuning, set innerloop step size to X | -u 256",
+  "     --gpu-temp-disable        |      | Disable temperature and fanspeed reads and triggers  |",
   #ifdef HAVE_HWMON
-  "        | --gpu-temp-abort          | Number     | Abort if GPU temperature reaches X degrees celsius   | --gpu-temp-abort=100",
-  "        | --gpu-temp-retain         | Number     | Try to retain GPU temperature at X degrees celsius   | --gpu-temp-retain=95",
+  "     --gpu-temp-abort          | Num  | Abort if GPU temperature reaches X degrees celsius   | --gpu-temp-abort=100",
+  "     --gpu-temp-retain         | Num  | Try to retain GPU temperature at X degrees celsius   | --gpu-temp-retain=95",
   #ifdef HAVE_ADL
-  "        | --powertune-enable        |            | Enable automatic power tuning (AMD OverDrive 6 only) | --powertune-enable",
+  "     --powertune-enable        |      | Enable automatic power tuning (AMD OverDrive 6 only) |",
   #endif
   #endif
-  "        | --scrypt-tmto             | Number     | Manually override TMTO value for scrypt to X         | --scrypt-tmto=3",
-  " -s     | --skip                    | Number     | Skip X words from the start                          | -s 1000000",
-  " -l     | --limit                   | Number     | Limit X words from the start + skipped words         | -l 1000000",
-  "        | --keyspace                |            | Show keyspace base:mod values and quit               | --keyspace",
-  " -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 '^-'",
-  " -r     | --rules-file              | File       | Multiple Rules applied to each word from wordlists   | -r rules/best64.rule",
-  " -g     | --generate-rules          |            | Enable generate random rules                         | -g 10000",
-  "        | --generate-rules-func-min | Number     | Force min X funcs per rule                           |",
-  "        | --generate-rules-func-max | Number     | Force max X funcs per rule                           |",
-  "        | --generate-rules-seed     | Number     | Force RNG seed set to X                              |",
-  " -1     | --custom-charset1         | Charset    | User-defined charset ?1                              | -1 ?l?d?u",
-  " -2     | --custom-charset2         | Charset    | User-defined charset ?2                              | -2 ?l?d?s",
-  " -3     | --custom-charset3         | Charset    | User-defined charset ?3                              |",
-  " -4     | --custom-charset4         | Charset    | User-defined charset ?4                              |",
-  " -i     | --increment               |            | Enable mask increment mode                           | --increment",
-  "        | --increment-min           | Number     | Start mask incrementing at X                         | --increment-min=4",
-  "        | --increment-max           | Number     | Stop mask incrementing at X                          | --increment-max=8",
+  "     --scrypt-tmto             | Num  | Manually override TMTO value for scrypt to X         | --scrypt-tmto=3",
+  " -s, --skip                    | Num  | Skip X words from the start                          | -s 1000000",
+  " -l, --limit                   | Num  | Limit X words from the start + skipped words         | -l 1000000",
+  "     --keyspace                |      | Show keyspace base:mod values and quit               |",
+  " -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 '^-'",
+  " -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",
+  "     --generate-rules-func-min | Num  | Force min X funcs per rule                           |",
+  "     --generate-rules-func-max | Num  | Force max X funcs per rule                           |",
+  "     --generate-rules-seed     | Num  | Force RNG seed set to X                              |",
+  " -1, --custom-CHR set1         | CS   | User-defined CHR set ?1                              | -1 ?l?d?u",
+  " -2, --custom-CHR set2         | CS   | User-defined CHR set ?2                              | -2 ?l?d?s",
+  " -3, --custom-CHR set3         | CS   | User-defined CHR set ?3                              |",
+  " -4, --custom-CHR set4         | CS   | User-defined CHR set ?4                              |",
+  " -i, --increment               |      | Enable mask increment mode                           |",
+  "     --increment-min           | Num  | Start mask incrementing at X                         | --increment-min=4",
+  "     --increment-max           | Num  | Stop mask incrementing at X                          | --increment-max=8",
   "",
   "################",
   "## Hash modes ##",
@@ -729,12 +728,12 @@ const char *USAGE_BIG[] =
   "",
   "  # | Performance | Runtime | Power Consumption | Desktop Impact",
   " ---+-------------+---------+-------------------+----------------",
-  "  1 | Low         |   4 ms  | Low               | Minimal",
+  "  1 | Low         |   2 ms  | Low               | Minimal",
   "  2 | Default     |  12 ms  | Economic          | Noticeable",
   "  3 | High        |  96 ms  | High              | Unresponsive",
   "  4 | Nightmare   | 480 ms  | Insane            | Headless",
   "",
-  "If you have no idea what just happend, please visit the following pages:",
+  "If you have no idea what just happend then visit the following pages:",
   "",
   "* https://hashcat.net/wiki/#howtos_videos_papers_articles_etc_in_the_wild",
   "* https://hashcat.net/wiki/#frequently_asked_questions",
@@ -2845,6 +2844,13 @@ static void autotune (hc_device_param_t *device_param)
     try_run (device_param, kernel_accel, kernel_loops);
     try_run (device_param, kernel_accel, kernel_loops);
 
+    device_param->kernel_accel = kernel_accel;
+    device_param->kernel_loops = kernel_loops;
+
+    const u32 kernel_power = device_param->device_processors * device_param->kernel_threads * device_param->kernel_accel;
+
+    device_param->kernel_power = kernel_power;
+
     return;
   }