X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/d48175d4f477d7c0d4b932b4212898b236a82356..8be98f12e9773c18651897ea7d518a2f5bf91b6a:/client/cmdlf.c

diff --git a/client/cmdlf.c b/client/cmdlf.c
index e157baff..43131428 100644
--- a/client/cmdlf.c
+++ b/client/cmdlf.c
@@ -294,12 +294,11 @@ int CmdIndalaDemod(const char *Cmd)
 			count = 0;
 		}
 	}
+	if ( rawbit<1 ) return 0;
 
-	if ( rawbit>0 ){
+	if (g_debugMode) {
 		PrintAndLog("Recovered %d raw bits, expected: %d", rawbit, GraphTraceLen/32);
 		PrintAndLog("worst metric (0=best..7=worst): %d at pos %d", worst, worstPos);
-	} else {
-		return 0;
 	}
 
 	// Finding the start of a UID
@@ -327,15 +326,14 @@ int CmdIndalaDemod(const char *Cmd)
 	}
   
 	if (start == rawbit - uidlen + 1) {
-		PrintAndLog("nothing to wait for");
+		if (g_debugMode) PrintAndLog("nothing to wait for");
 		return 0;
 	}
 
 	// Inverting signal if needed
 	if (first == 1) {
-		for (i = start; i < rawbit; i++) {
+		for (i = start; i < rawbit; i++)
 			rawbits[i] = !rawbits[i];
-		}
 	}
 
 	// Dumping UID
@@ -414,7 +412,7 @@ int CmdIndalaDemod(const char *Cmd)
 		times += 1;
 	}
 
-	PrintAndLog("Occurrences: %d (expected %d)", times, (rawbit - start) / uidlen);
+	if (g_debugMode) PrintAndLog("Occurrences: %d (expected %d)", times, (rawbit - start) / uidlen);
 
 	// Remodulating for tag cloning
 	// HACK: 2015-01-04 this will have an impact on our new way of seening lf commands (demod) 
@@ -604,16 +602,16 @@ int CmdLFSim(const char *Cmd) {
 	for (i = 0; i < GraphTraceLen; i += USB_CMD_DATA_SIZE) {
 		UsbCommand c = {CMD_DOWNLOADED_SIM_SAMPLES_125K, {i, 0, 0}};
 
-		for (j = 0; j < USB_CMD_DATA_SIZE; j++) {
+		for (j = 0; j < USB_CMD_DATA_SIZE; j++)
 			c.d.asBytes[j] = GraphBuffer[i+j];
-		}
+
 		clearCommandBuffer();
 		SendCommand(&c);
 		WaitForResponse(CMD_ACK, NULL);
 		printf(".");
 	}
 
-	PrintAndLog("Starting to simulate");
+	PrintAndLog("Simulating");
 
 	UsbCommand c = {CMD_SIMULATE_TAG_125K, {GraphTraceLen, gap, 0}};
 	clearCommandBuffer();
@@ -1089,6 +1087,11 @@ int CmdLFfind(const char *Cmd) {
 		PrintAndLog("\nValid NexWatch ID Found!");
 		return 1;
 	}
+	ans=CmdPSKIdteck("");
+	if (ans>0) {
+		PrintAndLog("\nValid Idteck ID Found!");
+		return 1;
+	}
 	ans=CmdJablotronDemod("");
 	if (ans>0) {
 		PrintAndLog("\nValid Jablotron ID Found!");
@@ -1104,6 +1107,11 @@ int CmdLFfind(const char *Cmd) {
 		PrintAndLog("\nValid Visa2000 ID Found!");
 		return 1;
 	}
+	ans=CmdNoralsyDemod("");
+	if (ans>0) {
+		PrintAndLog("\nValid Noralsy ID Found!");
+		return 1;
+	}
 	ans=CmdPrescoDemod("");
 	if (ans>0) {
 		PrintAndLog("\nValid Presco ID Found!");
@@ -1111,6 +1119,12 @@ int CmdLFfind(const char *Cmd) {
 	}
 	// TIdemod?
 	
+	if (!offline && (cmdp != '1')){
+		ans=CmdLFHitagReader("26");
+		if (ans==0) {
+			return 1;
+		}
+	}
 
 	PrintAndLog("\nNo Known Tags Found!\n");
 	if (testRaw=='u' || testRaw=='U'){
@@ -1176,6 +1190,7 @@ int CmdLFfind(const char *Cmd) {
 static command_t CommandTable[] = 
 {
 	{"help",        CmdHelp,            1, "This help"},
+	{"animal",      CmdLFFdx,           1, "{ Animal RFIDs... }"},
 	{"awid",        CmdLFAWID,          1, "{ AWID RFIDs... }"},
 	{"em4x",        CmdLFEM4X,          1, "{ EM4X RFIDs... }"},
 	{"guard",       CmdLFGuard,         1, "{ Guardall RFIDs... }"},
@@ -1183,8 +1198,9 @@ static command_t CommandTable[] =
 	{"hitag",       CmdLFHitag,         1, "{ HITAG RFIDs... }"},
 //	{"indala",		CmdLFIndala,		1, "{ Indala RFIDs... }"},
 	{"io",			CmdLFIO,			1, "{ IOPROX RFIDs... }"},
-	{"jablotron",	CmdLFJablotron,		1, "{ JABLOTRON RFIDs... }"},
-	{"nedap",		CmdLFNedap,			1, "{ NEDAP RFIDs... }"},
+	{"jablotron",	CmdLFJablotron,		1, "{ Jablotron RFIDs... }"},
+	{"nedap",		CmdLFNedap,			1, "{ Nedap RFIDs... }"},
+	{"noralsy",		CmdLFNoralsy,		1, "{ Noralsy RFIDs... }"},	
 	{"pcf7931",     CmdLFPCF7931,       1, "{ PCF7931 RFIDs... }"},
 	{"presco",      CmdLFPresco,        1, "{ Presco RFIDs... }"},
 	{"pyramid",		CmdLFPyramid,       1, "{ Farpointe/Pyramid RFIDs... }"},