X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/e108a48ac415ab2b1fc212c63ad1a2e68efd5e4e..f7c1147ab81009cd48b5e28f70dc57c84f6fa2d0:/client/cmdhfmfhard.c?ds=sidebyside diff --git a/client/cmdhfmfhard.c b/client/cmdhfmfhard.c index f9c1415c..2e504675 100644 --- a/client/cmdhfmfhard.c +++ b/client/cmdhfmfhard.c @@ -723,8 +723,8 @@ static void simulate_acquire_nonces() cuid = (rand() & 0xff) << 24 | (rand() & 0xff) << 16 | (rand() & 0xff) << 8 | (rand() & 0xff); known_target_key = ((uint64_t)rand() & 0xfff) << 36 | ((uint64_t)rand() & 0xfff) << 24 | ((uint64_t)rand() & 0xfff) << 12 | ((uint64_t)rand() & 0xfff); - printf("Simulating nonce acquisition for target key %012"llx", cuid %08x ...\n", known_target_key, cuid); - fprintf(fstats, "%012"llx";%08x;", known_target_key, cuid); + printf("Simulating nonce acquisition for target key %012" PRIx64 ", cuid %08x ...\n", known_target_key, cuid); + fprintf(fstats, "%012" PRIx64 ";%08x;", known_target_key, cuid); do { uint32_t nt_enc = 0; @@ -803,7 +803,7 @@ static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_ while(!WaitForResponseTimeout(CMD_ACK, &resp, 2000)) { timeout++; printf("."); - if (timeout > 7) { + if (timeout > 3) { PrintAndLog("\nNo response from Proxmark. Aborting..."); if (fnonces) fclose(fnonces); return 1; @@ -1247,7 +1247,7 @@ static bool TestIfKeyExists(uint64_t key) uint32_t state_odd = pcs->odd & 0x00ffffff; uint32_t state_even = pcs->even & 0x00ffffff; - //printf("Tests: searching for key %llx after first byte 0x%02x (state_odd = 0x%06x, state_even = 0x%06x) ...\n", key, best_first_bytes[0], state_odd, state_even); + //printf("Tests: searching for key %" PRIx64 " after first byte 0x%02x (state_odd = 0x%06x, state_even = 0x%06x) ...\n", key, best_first_bytes[0], state_odd, state_even); printf("Validating key search space\n"); uint64_t count = 0; for (statelist_t *p = candidates; p != NULL; p = p->next) { @@ -1271,7 +1271,7 @@ static bool TestIfKeyExists(uint64_t key) count += (p_odd - p->states[ODD_STATE]) * (p_even - p->states[EVEN_STATE]); if (found_odd && found_even) { if (known_target_key != -1) { - PrintAndLog("Key Found after testing %llu (2^%1.1f) out of %lld (2^%1.1f) keys.", + PrintAndLog("Key Found after testing %" PRIu64 " (2^%1.1f) out of %lld (2^%1.1f) keys.", count, log(count)/log(2), maximum_states, @@ -1788,6 +1788,10 @@ int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBloc } else { // acquire nonces. uint16_t is_OK = acquire_nonces(blockNo, keyType, key, trgBlockNo, trgKeyType, nonce_file_write, slow); if (is_OK != 0) { + free_nonces_memory(); + //free_statelist_cache(); + free_candidates_memory(candidates); + candidates = NULL; return is_OK; } }