]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
add check for no wave in graphbuffer prior to...
authormarshmellow42 <marshmellowrf@gmail.com>
Wed, 1 Feb 2017 20:39:10 +0000 (15:39 -0500)
committermarshmellow42 <marshmellowrf@gmail.com>
Wed, 1 Feb 2017 20:39:10 +0000 (15:39 -0500)
hitag lf search check

client/cmdlf.c
client/graph.c
client/graph.h

index 2000f6d00f3286d32a376c5215a6274b1a17d596..59f6cd0d4a336ba12e89bdc3406e85a941807e64 100644 (file)
@@ -1180,10 +1180,14 @@ int CmdLFfind(const char *Cmd)
                return 1;
        }
 
-       if (!offline && (cmdp != '1')){
-               ans=CmdLFHitagReader("26");
-               if (ans==0) {
-                       return 1;
+       size_t testLen = (GraphTraceLen < 500) ? GraphTraceLen : 500;
+       // only run if graphbuffer is just noise as it should be for hitag
+       if (graphJustNoise(GraphBuffer, testLen)) { 
+               if (!offline && (cmdp != '1')){
+                       ans=CmdLFHitagReader("26");
+                       if (ans==0) {
+                               return 1;
+                       }
                }
        }
 
index 319cde39217791bd3cc0a909aa228a8241509d96..ab10a446cd8f04af8e0e49459b63b2a917126c49 100644 (file)
@@ -268,3 +268,13 @@ uint8_t fskClocks(uint8_t *fc1, uint8_t *fc2, uint8_t *rf1, bool verbose)
        }
        return 1;
 }
+bool graphJustNoise(int *BitStream, int size)
+{
+       static const uint8_t THRESHOLD = 10; //might not be high enough for noisy environments
+       //test samples are not just noise
+       bool justNoise1 = 1;
+       for(int idx=0; idx < size && justNoise1 ;idx++){
+               justNoise1 = BitStream[idx] < THRESHOLD;
+       }
+       return justNoise1;
+}
index 8deeb386d8da2a0754e30f1790c481dec5c797ef..6f3f600d9832b73858f45c20277eee392939e5f3 100644 (file)
@@ -22,6 +22,7 @@ uint8_t GetPskCarrier(const char str[], bool printAns, bool verbose);
 uint8_t GetNrzClock(const char str[], bool printAns, bool verbose);
 uint8_t GetFskClock(const char str[], bool printAns, bool verbose);
 uint8_t fskClocks(uint8_t *fc1, uint8_t *fc2, uint8_t *rf1, bool verbose);
+bool graphJustNoise(int *BitStream, int size);
 void setGraphBuf(uint8_t *buff, size_t size);
 void save_restoreGB(uint8_t saveOpt);
 
Impressum, Datenschutz