X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/eb911aa8d6b2ddf5163fc75f06da416eb968bd9f..2d3f8e5fa7e5a775cef24b526a85465cd7d125b5:/client/cmdlf.c?ds=sidebyside diff --git a/client/cmdlf.c b/client/cmdlf.c index 63e8a2b5..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,8 +1107,24 @@ 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!"); + return 1; + } // TIdemod? + if (!offline && (cmdp != '1')){ + ans=CmdLFHitagReader("26"); + if (ans==0) { + return 1; + } + } PrintAndLog("\nNo Known Tags Found!\n"); if (testRaw=='u' || testRaw=='U'){ @@ -1171,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... }"}, @@ -1178,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... }"},