Added current engine clock and current memory clock to the status display (ADL only...
[hashcat.git] / src / hashcat.c
index 9023ce4..1141815 100644 (file)
@@ -38,7 +38,7 @@ double TARGET_MS_PROFILE[4]     = { 2, 12, 96, 480 };
 #define RESTORE_DISABLE         0
 #define STATUS                  0
 #define STATUS_TIMER            10
-#define STATUS_AUTOMAT          0
+#define MACHINE_READABLE        0
 #define LOOPBACK                0
 #define WEAK_HASH_THRESHOLD     100
 #define SHOW                    0
@@ -76,7 +76,7 @@ double TARGET_MS_PROFILE[4]     = { 2, 12, 96, 480 };
 #define BITMAP_MAX              24
 #define GPU_TEMP_DISABLE        0
 #define GPU_TEMP_ABORT          90
-#define GPU_TEMP_RETAIN         80
+#define GPU_TEMP_RETAIN         70
 #define WORKLOAD_PROFILE        2
 #define KERNEL_ACCEL            0
 #define KERNEL_LOOPS            0
@@ -349,9 +349,7 @@ const char *USAGE_BIG[] =
   "",
   "Usage: %s [options]... hash|hashfile|hccapfile [dictionary|mask|directory]...",
   "",
-  "###########",
-  "# Options #",
-  "###########",
+  "- [ Options ] -",
   "",
   " Options Short / Long          | Type | Description                                          | Example",
   "===============================|======|======================================================|=======================",
@@ -366,7 +364,7 @@ const char *USAGE_BIG[] =
   "     --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 |",
+  "     --machine-readable        |      | 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",
@@ -436,12 +434,10 @@ const char *USAGE_BIG[] =
   "     --increment-min           | Num  | Start mask incrementing at X                         | --increment-min=4",
   "     --increment-max           | Num  | Stop mask incrementing at X                          | --increment-max=8",
   "",
-  "################",
-  "## Hash modes ##",
-  "################",
+  "- [ Hash modes ] -",
   "",
   "      # | Name                                             | Category",
-  "  ------+--------------------------------------------------+--------------------------------------",
+  "  ======+==================================================+======================================",
   "    900 | MD4                                              | Raw Hash",
   "      0 | MD5                                              | Raw Hash",
   "   5100 | Half MD5                                         | Raw Hash",
@@ -654,12 +650,10 @@ const char *USAGE_BIG[] =
   "  12700 | Blockchain, My Wallet                            | Password Managers",
   "  13400 | Keepass 1 (AES/Twofish) and Keepass 2 (AES)      | Password Managers",
   "",
-  "#####################",
-  "## Outfile Formats ##",
-  "#####################",
+  "- [ Outfile Formats ] -",
   "",
   "  # | Format",
-  " ---+--------",
+  " ===+========",
   "  1 | hash[:salt]",
   "  2 | plain",
   "  3 | hash[:salt]:plain",
@@ -676,35 +670,29 @@ const char *USAGE_BIG[] =
   " 14 | plain:hex_plain:crack_pos",
   " 15 | hash[:salt]:plain:hex_plain:crack_pos",
   "",
-  "##########################",
-  "## Rule Debugging Modes ##",
-  "##########################",
+  "- [ Rule Debugging Modes ] -",
   "",
   "  # | Format",
-  " ---+--------",
+  " ===+========",
   "  1 | Finding-Rule",
   "  2 | Original-Word",
   "  3 | Original-Word:Finding-Rule",
   "  4 | Original-Word:Finding-Rule:Processed-Word",
   "",
-  "##################",
-  "## Attack Modes ##",
-  "##################",
+  "- [ Attack Modes ] -",
   "",
   "  # | Mode",
-  " ---+------",
+  " ===+======",
   "  0 | Straight",
   "  1 | Combination",
   "  3 | Brute-force",
   "  6 | Hybrid Wordlist + Mask",
   "  7 | Hybrid Mask + Wordlist",
   "",
-  "#######################",
-  "## Built-in Charsets ##",
-  "#######################",
+  "- [ Built-in Charsets ] -",
   "",
   "  ? | Charset",
-  " ---+---------",
+  " ===+=========",
   "  l | abcdefghijklmnopqrstuvwxyz",
   "  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ",
   "  d | 0123456789",
@@ -712,22 +700,18 @@ const char *USAGE_BIG[] =
   "  a | ?l?u?d?s",
   "  b | 0x00 - 0xff",
   "",
-  "#########################",
-  "## OpenCL Device Types ##",
-  "#########################",
+  "- [ OpenCL Device Types ] -",
   "",
   "  # | Device Type",
-  " ---+-------------",
+  " ===+=============",
   "  1 | CPU",
   "  2 | GPU",
   "  3 | FPGA, DSP, Co-Processor",
   "",
-  "#######################",
-  "## Workload Profiles ##",
-  "#######################",
+  "- [ Workload Profiles ] -",
   "",
   "  # | Performance | Runtime | Power Consumption | Desktop Impact",
-  " ---+-------------+---------+-------------------+----------------",
+  " ===+=============+=========+===================+=================",
   "  1 | Low         |   2 ms  | Low               | Minimal",
   "  2 | Default     |  12 ms  | Economic          | Noticeable",
   "  3 | High        |  96 ms  | High              | Unresponsive",
@@ -772,7 +756,7 @@ static double get_avg_exec_time (hc_device_param_t *device_param, const int last
   return exec_ms_sum / exec_ms_cnt;
 }
 
-void status_display_automat ()
+void status_display_machine_readable ()
 {
   FILE *out = stdout;
 
@@ -930,9 +914,9 @@ void status_display ()
   if (data.devices_status == STATUS_STARTING) return;
   if (data.devices_status == STATUS_BYPASS)   return;
 
-  if (data.status_automat == 1)
+  if (data.machine_readable == 1)
   {
-    status_display_automat ();
+    status_display_machine_readable ();
 
     return;
   }
@@ -1565,10 +1549,14 @@ void status_display ()
       {
         char utilization[HM_STR_BUF_SIZE] = { 0 };
         char temperature[HM_STR_BUF_SIZE] = { 0 };
-        char fanspeed[HM_STR_BUF_SIZE] = { 0 };
+        char fanspeed[HM_STR_BUF_SIZE]    = { 0 };
+        char corespeed[HM_STR_BUF_SIZE]   = { 0 };
+        char memoryspeed[HM_STR_BUF_SIZE] = { 0 };
 
-        hm_device_val_to_str ((char *) utilization, HM_STR_BUF_SIZE, "%", hm_get_utilization_with_device_id (device_id));
-        hm_device_val_to_str ((char *) temperature, HM_STR_BUF_SIZE, "c", hm_get_temperature_with_device_id (device_id));
+        hm_device_val_to_str ((char *) utilization, HM_STR_BUF_SIZE,   "%", hm_get_utilization_with_device_id (device_id));
+        hm_device_val_to_str ((char *) temperature, HM_STR_BUF_SIZE,   "c", hm_get_temperature_with_device_id (device_id));
+        hm_device_val_to_str ((char *) corespeed,   HM_STR_BUF_SIZE, "Mhz", hm_get_corespeed_with_device_id   (device_id));
+        hm_device_val_to_str ((char *) memoryspeed, HM_STR_BUF_SIZE, "Mhz", hm_get_memoryspeed_with_device_id (device_id));
 
         if (device_param->device_vendor_id == VENDOR_ID_AMD)
         {
@@ -1579,7 +1567,7 @@ void status_display ()
           hm_device_val_to_str ((char *) fanspeed, HM_STR_BUF_SIZE, "%", hm_get_fanspeed_with_device_id (device_id));
         }
 
-        log_info ("HWMon.GPU.#%d...: %s Util, %s Temp, %s Fan", device_id + 1, utilization, temperature, fanspeed);
+        log_info ("HWMon.GPU.#%d...: %s Util, %s Temp, %s Fan, %s Core, %s Memory", device_id + 1, utilization, temperature, fanspeed, corespeed, memoryspeed);
       }
       else
       {
@@ -1598,7 +1586,7 @@ void status_display ()
   #endif // HAVE_HWMON
 }
 
-static void status_benchmark_automat ()
+static void status_benchmark_automate ()
 {
   u64    speed_cnt[DEVICES_MAX] = { 0 };
   double speed_ms[DEVICES_MAX]  = { 0 };
@@ -1645,9 +1633,9 @@ static void status_benchmark ()
   if (data.devices_status == STATUS_STARTING) return;
   if (data.devices_status == STATUS_BYPASS)   return;
 
-  if (data.status_automat == 1)
+  if (data.machine_readable == 1)
   {
-    status_benchmark_automat ();
+    status_benchmark_automate ();
 
     return;
   }
@@ -3857,6 +3845,7 @@ static void *thread_monitor (void *p)
 
     if (data.devices_status != STATUS_RUNNING) continue;
 
+
     #ifdef HAVE_HWMON
     if (hwmon_check == 1)
     {
@@ -5348,8 +5337,43 @@ static uint generate_bitmaps (const uint digests_cnt, const uint dgst_size, cons
  * main
  */
 
+#ifdef _WIN
+void SetConsoleWindowSize (const int x, const int y)
+{
+  HANDLE h = GetStdHandle (STD_OUTPUT_HANDLE);
+
+  if (h == INVALID_HANDLE_VALUE) return;
+
+  CONSOLE_SCREEN_BUFFER_INFO bufferInfo;
+
+  if (!GetConsoleScreenBufferInfo (h, &bufferInfo)) return;
+
+  SMALL_RECT *sr = &bufferInfo.srWindow;
+
+  sr->Left   = 0;
+  sr->Top    = 0;
+  sr->Right  = MAX (sr->Right,  x - 1);
+  sr->Bottom = MAX (sr->Bottom, y - 1);
+
+  COORD co;
+
+  co.X = sr->Right  + 1;
+  co.Y = sr->Bottom + 1;
+
+  co.Y = MAX (co.Y, 1337);
+
+  if (!SetConsoleScreenBufferSize (h, co)) return;
+
+  if (!SetConsoleWindowInfo (h, TRUE, sr)) return;
+}
+#endif
+
 int main (int argc, char **argv)
 {
+  #ifdef _WIN
+  SetConsoleWindowSize (132, 44);
+  #endif
+
   /**
    * To help users a bit
    */
@@ -5411,87 +5435,87 @@ int main (int argc, char **argv)
    * commandline parameters
    */
 
-  uint  usage                 = USAGE;
-  uint  version               = VERSION;
-  uint  quiet                 = QUIET;
-  uint  benchmark             = BENCHMARK;
-  uint  show                  = SHOW;
-  uint  left                  = LEFT;
-  uint  username              = USERNAME;
-  uint  remove                = REMOVE;
-  uint  remove_timer          = REMOVE_TIMER;
-  u64   skip                  = SKIP;
-  u64   limit                 = LIMIT;
-  uint  keyspace              = KEYSPACE;
-  uint  potfile_disable       = POTFILE_DISABLE;
-  char *potfile_path          = NULL;
-  uint  debug_mode            = DEBUG_MODE;
-  char *debug_file            = NULL;
-  char *induction_dir         = NULL;
-  char *outfile_check_dir     = NULL;
-  uint  force                 = FORCE;
-  uint  runtime               = RUNTIME;
-  uint  hash_mode             = HASH_MODE;
-  uint  attack_mode           = ATTACK_MODE;
-  uint  markov_disable        = MARKOV_DISABLE;
-  uint  markov_classic        = MARKOV_CLASSIC;
-  uint  markov_threshold      = MARKOV_THRESHOLD;
-  char *markov_hcstat         = NULL;
-  char *outfile               = NULL;
-  uint  outfile_format        = OUTFILE_FORMAT;
-  uint  outfile_autohex       = OUTFILE_AUTOHEX;
-  uint  outfile_check_timer   = OUTFILE_CHECK_TIMER;
-  uint  restore               = RESTORE;
-  uint  restore_timer         = RESTORE_TIMER;
-  uint  restore_disable       = RESTORE_DISABLE;
-  uint  status                = STATUS;
-  uint  status_timer          = STATUS_TIMER;
-  uint  status_automat        = STATUS_AUTOMAT;
-  uint  loopback              = LOOPBACK;
-  uint  weak_hash_threshold   = WEAK_HASH_THRESHOLD;
-  char *session               = NULL;
-  uint  hex_charset           = HEX_CHARSET;
-  uint  hex_salt              = HEX_SALT;
-  uint  hex_wordlist          = HEX_WORDLIST;
-  uint  rp_gen                = RP_GEN;
-  uint  rp_gen_func_min       = RP_GEN_FUNC_MIN;
-  uint  rp_gen_func_max       = RP_GEN_FUNC_MAX;
-  uint  rp_gen_seed           = RP_GEN_SEED;
-  char *rule_buf_l            = (char *) RULE_BUF_L;
-  char *rule_buf_r            = (char *) RULE_BUF_R;
-  uint  increment             = INCREMENT;
-  uint  increment_min         = INCREMENT_MIN;
-  uint  increment_max         = INCREMENT_MAX;
-  char *cpu_affinity          = NULL;
-  OCL_PTR *ocl                = NULL;
-  char *opencl_devices        = NULL;
-  char *opencl_platforms      = NULL;
-  char *opencl_device_types   = NULL;
-  uint  opencl_vector_width   = OPENCL_VECTOR_WIDTH;
-  char *truecrypt_keyfiles    = NULL;
-  char *veracrypt_keyfiles    = NULL;
-  uint  veracrypt_pim         = 0;
-  uint  workload_profile      = WORKLOAD_PROFILE;
-  uint  kernel_accel          = KERNEL_ACCEL;
-  uint  kernel_loops          = KERNEL_LOOPS;
-  uint  gpu_temp_disable      = GPU_TEMP_DISABLE;
+  uint  usage                     = USAGE;
+  uint  version                   = VERSION;
+  uint  quiet                     = QUIET;
+  uint  benchmark                 = BENCHMARK;
+  uint  show                      = SHOW;
+  uint  left                      = LEFT;
+  uint  username                  = USERNAME;
+  uint  remove                    = REMOVE;
+  uint  remove_timer              = REMOVE_TIMER;
+  u64   skip                      = SKIP;
+  u64   limit                     = LIMIT;
+  uint  keyspace                  = KEYSPACE;
+  uint  potfile_disable           = POTFILE_DISABLE;
+  char *potfile_path              = NULL;
+  uint  debug_mode                = DEBUG_MODE;
+  char *debug_file                = NULL;
+  char *induction_dir             = NULL;
+  char *outfile_check_dir         = NULL;
+  uint  force                     = FORCE;
+  uint  runtime                   = RUNTIME;
+  uint  hash_mode                 = HASH_MODE;
+  uint  attack_mode               = ATTACK_MODE;
+  uint  markov_disable            = MARKOV_DISABLE;
+  uint  markov_classic            = MARKOV_CLASSIC;
+  uint  markov_threshold          = MARKOV_THRESHOLD;
+  char *markov_hcstat             = NULL;
+  char *outfile                   = NULL;
+  uint  outfile_format            = OUTFILE_FORMAT;
+  uint  outfile_autohex           = OUTFILE_AUTOHEX;
+  uint  outfile_check_timer       = OUTFILE_CHECK_TIMER;
+  uint  restore                   = RESTORE;
+  uint  restore_timer             = RESTORE_TIMER;
+  uint  restore_disable           = RESTORE_DISABLE;
+  uint  status                    = STATUS;
+  uint  status_timer              = STATUS_TIMER;
+  uint  machine_readable          = MACHINE_READABLE;
+  uint  loopback                  = LOOPBACK;
+  uint  weak_hash_threshold       = WEAK_HASH_THRESHOLD;
+  char *session                   = NULL;
+  uint  hex_charset               = HEX_CHARSET;
+  uint  hex_salt                  = HEX_SALT;
+  uint  hex_wordlist              = HEX_WORDLIST;
+  uint  rp_gen                    = RP_GEN;
+  uint  rp_gen_func_min           = RP_GEN_FUNC_MIN;
+  uint  rp_gen_func_max           = RP_GEN_FUNC_MAX;
+  uint  rp_gen_seed               = RP_GEN_SEED;
+  char *rule_buf_l                = (char *) RULE_BUF_L;
+  char *rule_buf_r                = (char *) RULE_BUF_R;
+  uint  increment                 = INCREMENT;
+  uint  increment_min             = INCREMENT_MIN;
+  uint  increment_max             = INCREMENT_MAX;
+  char *cpu_affinity              = NULL;
+  OCL_PTR *ocl                    = NULL;
+  char *opencl_devices            = NULL;
+  char *opencl_platforms          = NULL;
+  char *opencl_device_types       = NULL;
+  uint  opencl_vector_width       = OPENCL_VECTOR_WIDTH;
+  char *truecrypt_keyfiles        = NULL;
+  char *veracrypt_keyfiles        = NULL;
+  uint  veracrypt_pim             = 0;
+  uint  workload_profile          = WORKLOAD_PROFILE;
+  uint  kernel_accel              = KERNEL_ACCEL;
+  uint  kernel_loops              = KERNEL_LOOPS;
+  uint  gpu_temp_disable          = GPU_TEMP_DISABLE;
   #ifdef HAVE_HWMON
-  uint  gpu_temp_abort        = GPU_TEMP_ABORT;
-  uint  gpu_temp_retain       = GPU_TEMP_RETAIN;
+  uint  gpu_temp_abort            = GPU_TEMP_ABORT;
+  uint  gpu_temp_retain           = GPU_TEMP_RETAIN;
   #ifdef HAVE_ADL
-  uint  powertune_enable      = POWERTUNE_ENABLE;
+  uint  powertune_enable          = POWERTUNE_ENABLE;
   #endif
   #endif
-  uint  logfile_disable       = LOGFILE_DISABLE;
-  uint  segment_size          = SEGMENT_SIZE;
-  uint  scrypt_tmto           = SCRYPT_TMTO;
-  char  separator             = SEPARATOR;
-  uint  bitmap_min            = BITMAP_MIN;
-  uint  bitmap_max            = BITMAP_MAX;
-  char *custom_charset_1      = NULL;
-  char *custom_charset_2      = NULL;
-  char *custom_charset_3      = NULL;
-  char *custom_charset_4      = NULL;
+  uint  logfile_disable           = LOGFILE_DISABLE;
+  uint  segment_size              = SEGMENT_SIZE;
+  uint  scrypt_tmto               = SCRYPT_TMTO;
+  char  separator                 = SEPARATOR;
+  uint  bitmap_min                = BITMAP_MIN;
+  uint  bitmap_max                = BITMAP_MAX;
+  char *custom_charset_1          = NULL;
+  char *custom_charset_2          = NULL;
+  char *custom_charset_3          = NULL;
+  char *custom_charset_4          = NULL;
 
   #define IDX_HELP                      'h'
   #define IDX_VERSION                   'V'
@@ -5534,7 +5558,7 @@ int main (int argc, char **argv)
   #define IDX_RESTORE_DISABLE           0xff27
   #define IDX_STATUS                    0xff17
   #define IDX_STATUS_TIMER              0xff18
-  #define IDX_STATUS_AUTOMAT            0xff50
+  #define IDX_MACHINE_READABLE          0xff50
   #define IDX_LOOPBACK                  0xff38
   #define IDX_WEAK_HASH_THRESHOLD       0xff42
   #define IDX_SESSION                   0xff19
@@ -5598,7 +5622,7 @@ int main (int argc, char **argv)
     {"restore-disable",           no_argument,       0, IDX_RESTORE_DISABLE},
     {"status",                    no_argument,       0, IDX_STATUS},
     {"status-timer",              required_argument, 0, IDX_STATUS_TIMER},
-    {"status-automat",            no_argument,       0, IDX_STATUS_AUTOMAT},
+    {"machine-readable",          no_argument,       0, IDX_MACHINE_READABLE},
     {"loopback",                  no_argument,       0, IDX_LOOPBACK},
     {"weak-hash-threshold",       required_argument, 0, IDX_WEAK_HASH_THRESHOLD},
     {"session",                   required_argument, 0, IDX_SESSION},
@@ -5901,7 +5925,7 @@ int main (int argc, char **argv)
       case IDX_RESTORE_DISABLE:           restore_disable           = 1;              break;
       case IDX_STATUS:                    status                    = 1;              break;
       case IDX_STATUS_TIMER:              status_timer              = atoi (optarg);  break;
-      case IDX_STATUS_AUTOMAT:            status_automat            = 1;              break;
+      case IDX_MACHINE_READABLE:          machine_readable          = 1;              break;
       case IDX_LOOPBACK:                  loopback                  = 1;              break;
       case IDX_WEAK_HASH_THRESHOLD:       weak_hash_threshold       = atoi (optarg);  break;
     //case IDX_SESSION:                   session                   = optarg;         break;
@@ -6002,7 +6026,7 @@ int main (int argc, char **argv)
   {
     if (benchmark == 1)
     {
-      if (status_automat == 0)
+      if (machine_readable == 0)
       {
         log_info ("%s (%s) starting in benchmark-mode...", PROGNAME, VERSION_TAG);
         log_info ("");
@@ -6632,47 +6656,47 @@ int main (int argc, char **argv)
    * store stuff
    */
 
-  data.hash_mode          = hash_mode;
-  data.restore            = restore;
-  data.restore_timer      = restore_timer;
-  data.restore_disable    = restore_disable;
-  data.status             = status;
-  data.status_timer       = status_timer;
-  data.status_automat     = status_automat;
-  data.loopback           = loopback;
-  data.runtime            = runtime;
-  data.remove             = remove;
-  data.remove_timer       = remove_timer;
-  data.debug_mode         = debug_mode;
-  data.debug_file         = debug_file;
-  data.username           = username;
-  data.quiet              = quiet;
-  data.outfile            = outfile;
-  data.outfile_format     = outfile_format;
-  data.outfile_autohex    = outfile_autohex;
-  data.hex_charset        = hex_charset;
-  data.hex_salt           = hex_salt;
-  data.hex_wordlist       = hex_wordlist;
-  data.separator          = separator;
-  data.rp_files           = rp_files;
-  data.rp_files_cnt       = rp_files_cnt;
-  data.rp_gen             = rp_gen;
-  data.rp_gen_seed        = rp_gen_seed;
-  data.force              = force;
-  data.benchmark          = benchmark;
-  data.skip               = skip;
-  data.limit              = limit;
+  data.hash_mode               = hash_mode;
+  data.restore                 = restore;
+  data.restore_timer           = restore_timer;
+  data.restore_disable         = restore_disable;
+  data.status                  = status;
+  data.status_timer            = status_timer;
+  data.machine_readable        = machine_readable;
+  data.loopback                = loopback;
+  data.runtime                 = runtime;
+  data.remove                  = remove;
+  data.remove_timer            = remove_timer;
+  data.debug_mode              = debug_mode;
+  data.debug_file              = debug_file;
+  data.username                = username;
+  data.quiet                   = quiet;
+  data.outfile                 = outfile;
+  data.outfile_format          = outfile_format;
+  data.outfile_autohex         = outfile_autohex;
+  data.hex_charset             = hex_charset;
+  data.hex_salt                = hex_salt;
+  data.hex_wordlist            = hex_wordlist;
+  data.separator               = separator;
+  data.rp_files                = rp_files;
+  data.rp_files_cnt            = rp_files_cnt;
+  data.rp_gen                  = rp_gen;
+  data.rp_gen_seed             = rp_gen_seed;
+  data.force                   = force;
+  data.benchmark               = benchmark;
+  data.skip                    = skip;
+  data.limit                   = limit;
   #ifdef HAVE_HWMON
   #ifdef HAVE_ADL
-  data.powertune_enable   = powertune_enable;
+  data.powertune_enable        = powertune_enable;
   #endif
   #endif
-  data.logfile_disable    = logfile_disable;
-  data.truecrypt_keyfiles = truecrypt_keyfiles;
-  data.veracrypt_keyfiles = veracrypt_keyfiles;
-  data.veracrypt_pim      = veracrypt_pim;
-  data.scrypt_tmto        = scrypt_tmto;
-  data.workload_profile   = workload_profile;
+  data.logfile_disable         = logfile_disable;
+  data.truecrypt_keyfiles      = truecrypt_keyfiles;
+  data.veracrypt_keyfiles      = veracrypt_keyfiles;
+  data.veracrypt_pim           = veracrypt_pim;
+  data.scrypt_tmto             = scrypt_tmto;
+  data.workload_profile        = workload_profile;
 
   /**
    * cpu affinity
@@ -6786,7 +6810,7 @@ int main (int argc, char **argv)
   logfile_top_uint   (segment_size);
   logfile_top_uint   (show);
   logfile_top_uint   (status);
-  logfile_top_uint   (status_automat);
+  logfile_top_uint   (machine_readable);
   logfile_top_uint   (status_timer);
   logfile_top_uint   (usage);
   logfile_top_uint   (username);
@@ -6864,6 +6888,7 @@ int main (int argc, char **argv)
     potfile_disable       = 1;
     weak_hash_threshold   = 0;
     gpu_temp_disable      = 1;
+    powertune_enable      = 1;
 
     data.status_timer     = status_timer;
     data.restore_timer    = restore_timer;
@@ -13712,7 +13737,7 @@ int main (int argc, char **argv)
 
         if ((benchmark == 1 || quiet == 0) && (algorithm_pos == 0))
         {
-          if (status_automat == 0)
+          if (machine_readable == 0)
           {
             if (device_param->skipped == 0)
             {
@@ -13910,7 +13935,7 @@ int main (int argc, char **argv)
 
     if ((benchmark == 1 || quiet == 0) && (algorithm_pos == 0))
     {
-      if (status_automat == 0)
+      if (machine_readable == 0)
       {
         log_info ("");
       }
@@ -15729,7 +15754,7 @@ int main (int argc, char **argv)
 
     if (benchmark == 1)
     {
-      if (status_automat == 0)
+      if (machine_readable == 0)
       {
         quiet = 0;
 
@@ -17733,7 +17758,7 @@ int main (int argc, char **argv)
     {
       status_benchmark ();
 
-      if (status_automat == 0)
+      if (machine_readable == 0)
       {
         log_info ("");
       }