X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/ed28bbe5ae5ef5ac83c838fcc7354b349644f9fe..0bfa4b6a4d7cf0d5f626af9763735ffc2776e996:/client/cmdlf.c?ds=inline diff --git a/client/cmdlf.c b/client/cmdlf.c index dde05cb3..e1cb1bdf 100644 --- a/client/cmdlf.c +++ b/client/cmdlf.c @@ -249,8 +249,9 @@ int CmdFlexdemod(const char *Cmd) int CmdIndalaDemod(const char *Cmd) { + // PSK1, Bitrate 32, + // Usage: recover 64bit UID by default, specify "224" as arg to recover a 224bit UID - int state = -1; int count = 0; int i, j; @@ -293,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 @@ -326,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 @@ -413,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) @@ -1012,13 +1011,18 @@ int CmdLFfind(const char *Cmd) { if (!offline && (cmdp != '1')){ CmdLFRead("s"); - getSamples("30000",false); + getSamples("30000", TRUE); } else if (GraphTraceLen < 1000) { PrintAndLog("Data in Graphbuffer was too small."); return 0; } if (cmdp == 'u' || cmdp == 'U') testRaw = 'u'; + // if ( justNoise(GraphBuffer, GraphTraceLen) ) { + // PrintAndLog("Signal looks just like noise. Quitting."); + // return 0; + // } + PrintAndLog("NOTE: some demods output possible binary\n if it finds something that looks like a tag"); PrintAndLog("False Positives ARE possible\n"); PrintAndLog("\nChecking for known tags:\n"); @@ -1093,6 +1097,21 @@ int CmdLFfind(const char *Cmd) { PrintAndLog("\nValid NEDAP ID Found!"); return 1; } + ans=CmdVisa2kDemod(""); + if (ans>0) { + 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? @@ -1160,20 +1179,24 @@ 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... }"}, {"hid", CmdLFHID, 1, "{ HID RFIDs... }"}, {"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... }"}, {"ti", CmdLFTI, 1, "{ TI RFIDs... }"}, {"t55xx", CmdLFT55XX, 1, "{ T55xx RFIDs... }"}, {"viking", CmdLFViking, 1, "{ Viking RFIDs... }"}, + {"visa2000", CmdLFVisa2k, 1, "{ Visa2000 RFIDs... }"}, {"config", CmdLFSetConfig, 0, "Set config for LF sampling, bit/sample, decimation, frequency"}, {"cmdread", CmdLFCommandRead, 0, " <'0' period> <'1' period> ['h' 134] \n\t\t-- Modulate LF reader field to send command before read (all periods in microseconds)"}, {"flexdemod", CmdFlexdemod, 1, "Demodulate samples for FlexPass"},