From ef3f88bca9fbf8f228781f7e7b41fb6435130d84 Mon Sep 17 00:00:00 2001
From: marshmellow42 <marshmellowrf@gmail.com>
Date: Thu, 28 Jul 2016 12:52:18 -0400
Subject: [PATCH] disable extra attack - disable stats.txt

Moebius attack didn't yield any better results in my testing so
disabling it, but allowing it to be re-enabled at will.
also disabled the auto logging of all keys with uid delimited file
stats.txt - can be uncommented when needed
---
 client/cmdhfmf.c             | 5 +++--
 client/nonce2key/nonce2key.c | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c
index 43eca8cb..36c8e6c3 100644
--- a/client/cmdhfmf.c
+++ b/client/cmdhfmf.c
@@ -1079,14 +1079,15 @@ void readerAttack(nonces_t ar_resp[], bool setEmulatorMem) {
 			}
 		}
 	}
-	//moebius attack
+	/*
+	//un-comment to use as well moebius attack
 	for (uint8_t i = ATTACK_KEY_COUNT; i<ATTACK_KEY_COUNT*2; i++) {
 		if (ar_resp[i].ar2 > 0) {
 			if (tryMfk32_moebius(ar_resp[i], &key)) {
 				PrintAndLog("M-Found Key%s for sector %02d: [%04x%08x]", (ar_resp[i].keytype) ? "B" : "A", ar_resp[i].sector, (uint32_t) (key>>32), (uint32_t) (key &0xFFFFFFFF));
 			}
 		}
-	}
+	}*/
 }
 
 int usage_hf14_mf1ksim(void) {
diff --git a/client/nonce2key/nonce2key.c b/client/nonce2key/nonce2key.c
index 942ef78b..5647c424 100644
--- a/client/nonce2key/nonce2key.c
+++ b/client/nonce2key/nonce2key.c
@@ -181,12 +181,12 @@ bool mfkey32(nonces_t data, uint64_t *outputkey) {
 			if (counter==20) break;
 		}
 	}
-	//free(s);
 	isSuccess = (counter == 1);
 	t1 = clock() - t1;
 	//if ( t1 > 0 ) PrintAndLog("Time in mfkey32: %.0f ticks \nFound %d possible keys", (float)t1, counter);
 	*outputkey = ( isSuccess ) ? outkey : 0;
 	crypto1_destroy(s);
+	/* //un-comment to save all keys to a stats.txt file 
 	FILE *fout;
 	if ((fout = fopen("stats.txt","ab")) == NULL) { 
 		PrintAndLog("Could not create file name stats.txt");
@@ -194,6 +194,7 @@ bool mfkey32(nonces_t data, uint64_t *outputkey) {
 	}
 	fprintf(fout, "mfkey32,%d,%08x,%d,%s,%04x%08x,%.0Lf\r\n", counter, data.cuid, data.sector, (data.keytype) ? "B" : "A", (uint32_t)(outkey>>32) & 0xFFFF,(uint32_t)(outkey&0xFFFFFFFF),(long double)t1);
 	fclose(fout);
+	*/
 	return isSuccess;
 }
 
@@ -205,7 +206,6 @@ bool tryMfk32_moebius(nonces_t data, uint64_t *outputkey) {
 	uint32_t nt0     = data.nonce;  // first tag challenge (nonce)
 	uint32_t nr0_enc = data.nr;  // first encrypted reader challenge
 	uint32_t ar0_enc = data.ar; // first encrypted reader response
-	//uint32_t uid1    = le32toh(data+16);
 	uint32_t nt1     = data.nonce2; // second tag challenge (nonce)
 	uint32_t nr1_enc = data.nr2; // second encrypted reader challenge
 	uint32_t ar1_enc = data.ar2; // second encrypted reader response	
@@ -238,6 +238,7 @@ bool tryMfk32_moebius(nonces_t data, uint64_t *outputkey) {
 	//if ( t1 > 0 ) PrintAndLog("Time in mfkey32_moebius: %.0f ticks \nFound %d possible keys", (float)t1,counter);
 	*outputkey = ( isSuccess ) ? outkey : 0;
 	crypto1_destroy(s);
+	/* // un-comment to output all keys to stats.txt
 	FILE *fout;
 	if ((fout = fopen("stats.txt","ab")) == NULL) { 
 		PrintAndLog("Could not create file name stats.txt");
@@ -245,6 +246,7 @@ bool tryMfk32_moebius(nonces_t data, uint64_t *outputkey) {
 	}
 	fprintf(fout, "moebius,%d,%08x,%d,%s,%04x%08x,%0.Lf\r\n", counter, data.cuid, data.sector, (data.keytype) ? "B" : "A", (uint32_t) (outkey>>32),(uint32_t)(outkey&0xFFFFFFFF),(long double)t1);
 	fclose(fout);
+	*/
 	return isSuccess;
 }
 
-- 
2.39.5