X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/199c74a47f3d44b815650d7ce79023cdc75ca550..347efc12741e72e6ce3a3c4f3ed554fae0cefc73:/client/cmdlfnoralsy.c diff --git a/client/cmdlfnoralsy.c b/client/cmdlfnoralsy.c index e56ebf7f..52c35081 100644 --- a/client/cmdlfnoralsy.c +++ b/client/cmdlfnoralsy.c @@ -5,13 +5,15 @@ // the license. //----------------------------------------------------------------------------- // Low frequency Noralsy tag commands -// ASK/Manchester, STT, RF/32, 96 bits long +// ASK/Manchester, STT, RF/32, 96 bits long (some bits unknown) //----------------------------------------------------------------------------- + #include "cmdlfnoralsy.h" + #include #include #include -#include "proxmark3.h" +#include "comms.h" #include "ui.h" #include "util.h" #include "graph.h" @@ -98,30 +100,27 @@ int NoralsyDemod_AM(uint8_t *dest, size_t *size) { /* * * 2520116 | BB0214FF2529900116360000 | 10111011 00000011 00010100 11111111 00100101 00101001 10010000 00000001 00010110 00110110 00000000 00000000 -* aaaaaaaaiii***iiiicc---- iiiiiiii iiiiYYYY YYYY**** iiiiiiii iiiiiiii cccccccc +* aaa*aaaaiiiYY*iiiicc---- **** iiiiiiii iiiiYYYY YYYY**** iiiiiiii iiiiiiii cccccccc * -* a = fixed value BB0314FF +* a = fixed value BB0*14FF * i = printed id, BCD-format * Y = year * c = checksum -* +* * = unknown +* **/ //see ASKDemod for what args are accepted int CmdNoralsyDemod(const char *Cmd) { //ASK / Manchester - DemodBufferLen = getFromGraphBuf(DemodBuffer); - if (DemodBufferLen < 255) return 0; - int foundclk = 0; - size_t ststart = 0, stend = 0; - bool st = DetectST_ext(DemodBuffer, &DemodBufferLen, &foundclk, &ststart, &stend); - if (!st) return 0; - + bool st = true; if (!ASKDemod_ext("32 0 0", false, false, 1, &st)) { if (g_debugMode) PrintAndLog("DEBUG: Error - Noralsy: ASK/Manchester Demod failed"); return 0; } + if (!st) return 0; + size_t size = DemodBufferLen; int ans = NoralsyDemod_AM(DemodBuffer, &size); if (ans < 0){ @@ -138,6 +137,7 @@ int CmdNoralsyDemod(const char *Cmd) { return 0; } setDemodBuf(DemodBuffer, 96, ans); + setClockGrid(g_DemodClock, g_DemodStartIdx + (ans*g_DemodClock)); //setGrid_Clock(32); //got a good demod @@ -175,8 +175,7 @@ int CmdNoralsyDemod(const char *Cmd) { } int CmdNoralsyRead(const char *Cmd) { - CmdLFRead("s"); - getSamples("8000",true); + lf_read(true, 8000); return CmdNoralsyDemod(Cmd); }