]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlf.c
lf improvements
[proxmark3-svn] / client / cmdlf.c
index 341f1fe4a61c478cb4667754fc32c5a5a3ad2c02..f78b380151d87cdacfe6855765b2dd0e67eab15e 100644 (file)
@@ -40,6 +40,9 @@
 #include "cmdlffdx.h"    // for fdx-b menu
 #include "cmdlfparadox.h"// for paradox menu
 #include "cmdlfnexwatch.h"//for nexwatch menu
+#include "cmdlfjablotron.h" //for jablotron menu
+#include "cmdlfnoralsy.h"// for noralsy menu
+#include "cmdlfsecurakey.h"//for securakey menu
 
 bool g_lf_threshold_set = false;
 static int CmdHelp(const char *Cmd);
@@ -860,16 +863,25 @@ int CheckChipType(char cmdp) {
 
        //check for em4x05/em4x69 chips first
        save_restoreGB(1);
+       save_restoreDB(1);
        if ((!offline && (cmdp != '1')) && EM4x05Block0Test(&wordData)) {
                PrintAndLog("\nValid EM4x05/EM4x69 Chip Found\nTry lf em 4x05... commands\n");
                save_restoreGB(0);
+               save_restoreDB(0);
                return 1;
        }
 
        //TODO check for t55xx chip...
 
+       if ((!offline && (cmdp != '1')) && tryDetectP1(true)) {
+               PrintAndLog("\nValid T55xx Chip Found\nTry lf t55xx ... commands\n");
+               save_restoreGB(0);
+               save_restoreDB(0);
+               return 1;               
+       }
        save_restoreGB(0);
-       return 1;
+       save_restoreDB(0);
+       return 0;
 }
 
 //by marshmellow
@@ -921,7 +933,7 @@ int CmdLFfind(const char *Cmd)
                                return 1;
                        }
                        ans=CmdCOTAGRead("");
-                       if (ans>0){
+                       if (ans>0) {
                                PrintAndLog("\nValid COTAG ID Found!");
                                return 1;
                        }
@@ -929,6 +941,8 @@ int CmdLFfind(const char *Cmd)
                return 0;
        }
 
+       // TODO test for modulation then only test formats that use that modulation
+
        ans=CmdFSKdemodIO("");
        if (ans>0) {
                PrintAndLog("\nValid IO Prox ID Found!");
@@ -977,25 +991,43 @@ int CmdLFfind(const char *Cmd)
                return CheckChipType(cmdp);
        }
 
-       ans=CmdFdxDemod("");
+       ans=CmdFdxDemod(""); //biphase
        if (ans>0) {
                PrintAndLog("\nValid FDX-B ID Found!");
                return CheckChipType(cmdp);
        }
 
-       ans=EM4x50Read("", false);
+       ans=EM4x50Read("", false); //ask
        if (ans>0) {
                PrintAndLog("\nValid EM4x50 ID Found!");
                return 1;
-       }       
+       }
+
+       ans=CmdJablotronDemod("");
+       if (ans>0) {
+               PrintAndLog("\nValid Jablotron ID Found!");
+               return CheckChipType(cmdp);
+       }
+
+       ans=CmdNoralsyDemod("");
+       if (ans>0) {
+               PrintAndLog("\nValid Noralsy ID Found!");
+               return CheckChipType(cmdp);
+       }
+
+       ans=CmdSecurakeyDemod("");
+       if (ans>0) {
+               PrintAndLog("\nValid Securakey ID Found!");
+               return CheckChipType(cmdp);
+       }
 
        ans=CmdVikingDemod("");
        if (ans>0) {
                PrintAndLog("\nValid Viking ID Found!");
                return CheckChipType(cmdp);
-       }       
+       }
 
-       ans=CmdIndalaDecode("");
+       ans=CmdIndalaDecode(""); //psk
        if (ans>0) {
                PrintAndLog("\nValid Indala ID Found!");
                return CheckChipType(cmdp);
@@ -1008,14 +1040,14 @@ int CmdLFfind(const char *Cmd)
        }
 
        PrintAndLog("\nNo Known Tags Found!\n");
-       if (testRaw=='u' || testRaw=='U'){
+       if (testRaw=='u' || testRaw=='U') {
                ans=CheckChipType(cmdp);
                //test unknown tag formats (raw mode)0
                PrintAndLog("\nChecking for Unknown tags:\n");
                ans=AutoCorrelate(4000, false, false);
                if (ans > 0) PrintAndLog("Possible Auto Correlation of %d repeating samples",ans);
                ans=GetFskClock("",false,false); 
-               if (ans != 0){ //fsk
+               if (ans != 0) { //fsk
                        ans=FSKrawDemod("",true);
                        if (ans>0) {
                                PrintAndLog("\nUnknown FSK Modulated Tag Found!");
@@ -1053,11 +1085,14 @@ static command_t CommandTable[] =
        {"hitag",       CmdLFHitag,         1, "{ Hitag CHIPs...             }"},
        {"io",          CmdLFIO,            1, "{ ioProx RFIDs...            }"},
        {"indala",      CmdLFINDALA,        1, "{ Indala RFIDs...            }"},
+       {"jablotron",   CmdLFJablotron,     1, "{ Jablotron RFIDs...         }"},
        {"nexwatch",    CmdLFNexWatch,      1, "{ NexWatch RFIDs...          }"},
+       {"noralsy",     CmdLFNoralsy,       1, "{ Noralsy RFIDs...           }"},
        {"paradox",     CmdLFParadox,       1, "{ Paradox RFIDs...           }"},
        {"presco",      CmdLFPresco,        1, "{ Presco RFIDs...            }"},
        {"pcf7931",     CmdLFPCF7931,       1, "{ PCF7931 CHIPs...           }"},
        {"pyramid",     CmdLFPyramid,       1, "{ Farpointe/Pyramid RFIDs... }"},
+       {"securakey",   CmdLFSecurakey,     1, "{ Securakey RFIDs...         }"},
        {"t55xx",       CmdLFT55XX,         1, "{ T55xx CHIPs...             }"},
        {"ti",          CmdLFTI,            1, "{ TI CHIPs...                }"},
        {"viking",      CmdLFViking,        1, "{ Viking RFIDs...            }"},
Impressum, Datenschutz