]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfpyramid.c
Fix memory bounds error
[proxmark3-svn] / client / cmdlfpyramid.c
index d1b4c293e396044a5eba952b15155407a835ba31..366889f3f9ea2a68a0256ca95437f807b1b806ca 100644 (file)
@@ -5,10 +5,12 @@
 // the license.
 //-----------------------------------------------------------------------------
 // Low frequency Farpoint / Pyramid tag commands
 // the license.
 //-----------------------------------------------------------------------------
 // Low frequency Farpoint / Pyramid tag commands
+// FSK2a, rf/50, 128 bits (complete)
 //-----------------------------------------------------------------------------
 #include <string.h>
 #include <inttypes.h>
 #include <stdio.h>
 //-----------------------------------------------------------------------------
 #include <string.h>
 #include <inttypes.h>
 #include <stdio.h>
+#include "cmdlfpyramid.h"
 #include "proxmark3.h"
 #include "ui.h"
 #include "util.h"
 #include "proxmark3.h"
 #include "ui.h"
 #include "util.h"
@@ -94,8 +96,9 @@ int CmdFSKdemodPyramid(const char *Cmd)
        size_t size = getFromGraphBuf(BitStream);
        if (size==0) return 0;
 
        size_t size = getFromGraphBuf(BitStream);
        if (size==0) return 0;
 
+       int waveIdx=0;
        //get binary from fsk wave
        //get binary from fsk wave
-       int idx = PyramiddemodFSK(BitStream, &size);
+       int idx = PyramiddemodFSK(BitStream, &size, &waveIdx);
        if (idx < 0){
                if (g_debugMode){
                        if (idx == -5)
        if (idx < 0){
                if (g_debugMode){
                        if (idx == -5)
@@ -150,6 +153,7 @@ int CmdFSKdemodPyramid(const char *Cmd)
        uint32_t rawHi2 = bytebits_to_byte(BitStream+idx+32,32);
        uint32_t rawHi3 = bytebits_to_byte(BitStream+idx,32);
        setDemodBuf(BitStream,128,idx);
        uint32_t rawHi2 = bytebits_to_byte(BitStream+idx+32,32);
        uint32_t rawHi3 = bytebits_to_byte(BitStream+idx,32);
        setDemodBuf(BitStream,128,idx);
+       setClockGrid(50, waveIdx + (idx*50));
 
        size = removeParity(BitStream, idx+8, 8, 1, 120);
        if (size != 105){
 
        size = removeParity(BitStream, idx+8, 8, 1, 120);
        if (size != 105){
@@ -224,8 +228,7 @@ int CmdFSKdemodPyramid(const char *Cmd)
 }
 
 int CmdPyramidRead(const char *Cmd) {
 }
 
 int CmdPyramidRead(const char *Cmd) {
-       CmdLFRead("s");
-       getSamples("30000",false);
+       lf_read(true, 15000);
        return CmdFSKdemodPyramid("");
 }
 
        return CmdFSKdemodPyramid("");
 }
 
Impressum, Datenschutz