static void main_outerloop_mainscreen (MAYBE_UNUSED hashcat_ctx_t *hashcat_ctx, MAYBE_UNUSED const void *buf, MAYBE_UNUSED const size_t len) { const bitmap_ctx_t *bitmap_ctx = hashcat_ctx->bitmap_ctx; const hashconfig_t *hashconfig = hashcat_ctx->hashconfig; const hashes_t *hashes = hashcat_ctx->hashes; const hwmon_ctx_t *hwmon_ctx = hashcat_ctx->hwmon_ctx; const straight_ctx_t *straight_ctx = hashcat_ctx->straight_ctx; const user_options_t *user_options = hashcat_ctx->user_options; /** * In benchmark-mode, inform user which algorithm is checked */ if (user_options->benchmark == true) { if (user_options->machine_readable == false) { char *hash_type = strhashtype (hashconfig->hash_mode); // not a bug event_log_info (hashcat_ctx, "Hashtype: %s", hash_type); event_log_info (hashcat_ctx, ""); } } if (user_options->quiet == true) return; event_log_info (hashcat_ctx, "Hashes: %u digests; %u unique digests, %u unique salts", hashes->hashes_cnt_orig, hashes->digests_cnt, hashes->salts_cnt); event_log_info (hashcat_ctx, "Bitmaps: %u bits, %u entries, 0x%08x mask, %u bytes, %u/%u rotates", bitmap_ctx->bitmap_bits, bitmap_ctx->bitmap_nums, bitmap_ctx->bitmap_mask, bitmap_ctx->bitmap_size, bitmap_ctx->bitmap_shift1, bitmap_ctx->bitmap_shift2); if (user_options->attack_mode == ATTACK_MODE_STRAIGHT) { event_log_info (hashcat_ctx, "Rules: %u", straight_ctx->kernel_rules_cnt); } if (user_options->quiet == false) event_log_info (hashcat_ctx, ""); if (hashconfig->opti_type) { event_log_info (hashcat_ctx, "Applicable Optimizers:"); for (u32 i = 0; i < 32; i++) { const u32 opti_bit = 1u << i; if (hashconfig->opti_type & opti_bit) event_log_info (hashcat_ctx, "* %s", stroptitype (opti_bit)); } } event_log_info (hashcat_ctx, ""); /** * Watchdog and Temperature balance */ if (hwmon_ctx->enabled == false && user_options->gpu_temp_disable == false) { event_log_info (hashcat_ctx, "Watchdog: Hardware Monitoring Interface not found on your system"); } if (hwmon_ctx->enabled == true && user_options->gpu_temp_abort > 0) { event_log_info (hashcat_ctx, "Watchdog: Temperature abort trigger set to %uc", user_options->gpu_temp_abort); } else { event_log_info (hashcat_ctx, "Watchdog: Temperature abort trigger disabled"); } if (hwmon_ctx->enabled == true && user_options->gpu_temp_retain > 0) { event_log_info (hashcat_ctx, "Watchdog: Temperature retain trigger set to %uc", user_options->gpu_temp_retain); } else { event_log_info (hashcat_ctx, "Watchdog: Temperature retain trigger disabled"); } event_log_info (hashcat_ctx, ""); #if defined (DEBUG) if (user_options->benchmark == true) event_log_info (hashcat_ctx, "Hashmode: %d", hashconfig->hash_mode); #endif }
void example_hashes (hashcat_ctx_t *hashcat_ctx) { user_options_t *user_options = hashcat_ctx->user_options; if (user_options->hash_mode_chgd == true) { const int rc = hashconfig_init (hashcat_ctx); if (rc == 0) { hashconfig_t *hashconfig = hashcat_ctx->hashconfig; event_log_info (hashcat_ctx, "MODE: %u", hashconfig->hash_mode); event_log_info (hashcat_ctx, "TYPE: %s", strhashtype (hashconfig->hash_mode)); if ((hashconfig->st_hash != NULL) && (hashconfig->st_pass != NULL)) { event_log_info (hashcat_ctx, "HASH: %s", hashconfig->st_hash); if (need_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), user_options->separator, 0)) { char tmp_buf[HCBUFSIZ_LARGE]; int tmp_len = 0; tmp_buf[tmp_len++] = '$'; tmp_buf[tmp_len++] = 'H'; tmp_buf[tmp_len++] = 'E'; tmp_buf[tmp_len++] = 'X'; tmp_buf[tmp_len++] = '['; exec_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), (u8 *) tmp_buf + tmp_len); tmp_len += strlen (hashconfig->st_pass) * 2; tmp_buf[tmp_len++] = ']'; tmp_buf[tmp_len++] = 0; event_log_info (hashcat_ctx, "PASS: %s", tmp_buf); } else { event_log_info (hashcat_ctx, "PASS: %s", hashconfig->st_pass); } } else { event_log_info (hashcat_ctx, "HASH: not stored"); event_log_info (hashcat_ctx, "PASS: not stored"); } event_log_info (hashcat_ctx, NULL); } hashconfig_destroy (hashcat_ctx); } else { for (int i = 0; i < 100000; i++) { user_options->hash_mode = i; const int rc = hashconfig_init (hashcat_ctx); if (rc == 0) { hashconfig_t *hashconfig = hashcat_ctx->hashconfig; event_log_info (hashcat_ctx, "MODE: %u", hashconfig->hash_mode); event_log_info (hashcat_ctx, "TYPE: %s", strhashtype (hashconfig->hash_mode)); if ((hashconfig->st_hash != NULL) && (hashconfig->st_pass != NULL)) { event_log_info (hashcat_ctx, "HASH: %s", hashconfig->st_hash); if (need_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), user_options->separator, 0)) { char tmp_buf[HCBUFSIZ_LARGE]; int tmp_len = 0; tmp_buf[tmp_len++] = '$'; tmp_buf[tmp_len++] = 'H'; tmp_buf[tmp_len++] = 'E'; tmp_buf[tmp_len++] = 'X'; tmp_buf[tmp_len++] = '['; exec_hexify ((const u8 *) hashconfig->st_pass, strlen (hashconfig->st_pass), (u8 *) tmp_buf + tmp_len); tmp_len += strlen (hashconfig->st_pass) * 2; tmp_buf[tmp_len++] = ']'; tmp_buf[tmp_len++] = 0; event_log_info (hashcat_ctx, "PASS: %s", tmp_buf); } else { event_log_info (hashcat_ctx, "PASS: %s", hashconfig->st_pass); } } else { event_log_info (hashcat_ctx, "HASH: not stored"); event_log_info (hashcat_ctx, "PASS: not stored"); } event_log_info (hashcat_ctx, NULL); } hashconfig_destroy (hashcat_ctx); } } }