mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-07-16 02:03:00 -07:00
finish FSK graph index changes
This commit is contained in:
parent
b760f0ffd8
commit
1c70664ae7
9 changed files with 47 additions and 40 deletions
|
@ -68,15 +68,21 @@ void save_restoreDB(uint8_t saveOpt)
|
|||
static uint8_t SavedDB[MAX_DEMOD_BUF_LEN];
|
||||
static size_t SavedDBlen;
|
||||
static bool DB_Saved = false;
|
||||
static int savedDemodStartIdx = 0;
|
||||
static int savedDemodClock = 0;
|
||||
|
||||
if (saveOpt==1) { //save
|
||||
|
||||
memcpy(SavedDB, DemodBuffer, sizeof(DemodBuffer));
|
||||
SavedDBlen = DemodBufferLen;
|
||||
DB_Saved=true;
|
||||
savedDemodStartIdx = g_DemodStartIdx;
|
||||
savedDemodClock = g_DemodClock;
|
||||
} else if (DB_Saved) { //restore
|
||||
memcpy(DemodBuffer, SavedDB, sizeof(DemodBuffer));
|
||||
DemodBufferLen = SavedDBlen;
|
||||
g_DemodClock = savedDemodClock;
|
||||
g_DemodStartIdx = savedDemodStartIdx;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -803,7 +809,7 @@ int FSKrawDemod(const char *Cmd, bool verbose)
|
|||
if (!rfLen) rfLen = 50;
|
||||
}
|
||||
int startIdx = 0;
|
||||
int size = fskdemod_ext(BitStream, BitLen, rfLen, invert, fchigh, fclow, &startIdx);
|
||||
int size = fskdemod(BitStream, BitLen, rfLen, invert, fchigh, fclow, &startIdx);
|
||||
if (size > 0) {
|
||||
setDemodBuf(BitStream,size,0);
|
||||
setClockGrid(rfLen, startIdx);
|
||||
|
|
|
@ -88,8 +88,9 @@ int CmdFSKdemodAWID(const char *Cmd)
|
|||
size_t size = getFromGraphBuf(BitStream);
|
||||
if (size==0) return 0;
|
||||
|
||||
int waveIdx = 0;
|
||||
//get binary from fsk wave
|
||||
int idx = AWIDdemodFSK(BitStream, &size);
|
||||
int idx = AWIDdemodFSK(BitStream, &size, &waveIdx);
|
||||
if (idx<=0){
|
||||
if (g_debugMode){
|
||||
if (idx == -1)
|
||||
|
@ -126,7 +127,7 @@ int CmdFSKdemodAWID(const char *Cmd)
|
|||
uint32_t rawHi = bytebits_to_byte(BitStream+idx+32,32);
|
||||
uint32_t rawHi2 = bytebits_to_byte(BitStream+idx,32);
|
||||
setDemodBuf(BitStream,96,idx);
|
||||
setClockGrid(g_DemodClock, g_DemodStartIdx + (idx*g_DemodClock));
|
||||
setClockGrid(50, waveIdx + (idx*50));
|
||||
|
||||
size = removeParity(BitStream, idx+8, 4, 1, 88);
|
||||
if (size != 66){
|
||||
|
|
|
@ -32,7 +32,8 @@ int CmdFSKdemodHID(const char *Cmd)
|
|||
size_t BitLen = getFromGraphBuf(BitStream);
|
||||
if (BitLen==0) return 0;
|
||||
//get binary from fsk wave
|
||||
int idx = HIDdemodFSK(BitStream,&BitLen,&hi2,&hi,&lo);
|
||||
int waveIdx = 0;
|
||||
int idx = HIDdemodFSK(BitStream,&BitLen,&hi2,&hi,&lo, &waveIdx);
|
||||
if (idx<0){
|
||||
if (g_debugMode){
|
||||
if (idx==-1){
|
||||
|
@ -99,7 +100,7 @@ int CmdFSKdemodHID(const char *Cmd)
|
|||
(unsigned int) fmtLen, (unsigned int) fc, (unsigned int) cardnum);
|
||||
}
|
||||
setDemodBuf(BitStream,BitLen,idx);
|
||||
setClockGrid(g_DemodClock, g_DemodStartIdx + (idx*g_DemodClock));
|
||||
setClockGrid(50, waveIdx + (idx*50));
|
||||
if (g_debugMode){
|
||||
PrintAndLog("DEBUG: idx: %d, Len: %d, Printing Demod Buffer:", idx, BitLen);
|
||||
printDemodBuff();
|
||||
|
|
|
@ -53,8 +53,9 @@ int CmdFSKdemodIO(const char *Cmd)
|
|||
size_t BitLen = getFromGraphBuf(BitStream);
|
||||
if (BitLen==0) return 0;
|
||||
|
||||
int waveIdx = 0;
|
||||
//get binary from fsk wave
|
||||
idx = IOdemodFSK(BitStream,BitLen);
|
||||
idx = IOdemodFSK(BitStream,BitLen, &waveIdx);
|
||||
if (idx<0){
|
||||
if (g_debugMode){
|
||||
if (idx==-1){
|
||||
|
@ -119,7 +120,7 @@ int CmdFSKdemodIO(const char *Cmd)
|
|||
|
||||
PrintAndLog("IO Prox XSF(%02d)%02x:%05d (%08x%08x) [%02x %s]",version,facilitycode,number,code,code2, crc, crcStr);
|
||||
setDemodBuf(BitStream,64,idx);
|
||||
setClockGrid(g_DemodClock, g_DemodStartIdx + (idx*g_DemodClock));
|
||||
setClockGrid(64, waveIdx + (idx*64));
|
||||
|
||||
if (g_debugMode){
|
||||
PrintAndLog("DEBUG: idx: %d, Len: %d, Printing demod buffer:",idx,64);
|
||||
|
|
|
@ -32,8 +32,9 @@ int CmdFSKdemodParadox(const char *Cmd)
|
|||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
|
||||
size_t BitLen = getFromGraphBuf(BitStream);
|
||||
if (BitLen==0) return 0;
|
||||
int waveIdx=0;
|
||||
//get binary from fsk wave
|
||||
int idx = ParadoxdemodFSK(BitStream,&BitLen,&hi2,&hi,&lo);
|
||||
int idx = ParadoxdemodFSK(BitStream,&BitLen,&hi2,&hi,&lo,&waveIdx);
|
||||
if (idx<0){
|
||||
if (g_debugMode){
|
||||
if (idx==-1){
|
||||
|
@ -63,7 +64,7 @@ int CmdFSKdemodParadox(const char *Cmd)
|
|||
PrintAndLog("Paradox TAG ID: %x%08x - FC: %d - Card: %d - Checksum: %02x - RAW: %08x%08x%08x",
|
||||
hi>>10, (hi & 0x3)<<26 | (lo>>10), fc, cardnum, (lo>>2) & 0xFF, rawHi2, rawHi, rawLo);
|
||||
setDemodBuf(BitStream,BitLen,idx);
|
||||
setClockGrid(g_DemodClock, g_DemodStartIdx + (idx*g_DemodClock));
|
||||
setClockGrid(50, waveIdx + (idx*50));
|
||||
if (g_debugMode){
|
||||
PrintAndLog("DEBUG: idx: %d, len: %d, Printing Demod Buffer:", idx, BitLen);
|
||||
printDemodBuff();
|
||||
|
|
|
@ -96,8 +96,9 @@ int CmdFSKdemodPyramid(const char *Cmd)
|
|||
size_t size = getFromGraphBuf(BitStream);
|
||||
if (size==0) return 0;
|
||||
|
||||
int waveIdx=0;
|
||||
//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)
|
||||
|
@ -152,7 +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);
|
||||
setClockGrid(g_DemodClock, g_DemodStartIdx + (idx*g_DemodClock));
|
||||
setClockGrid(50, waveIdx + (idx*50));
|
||||
|
||||
size = removeParity(BitStream, idx+8, 8, 1, 120);
|
||||
if (size != 105){
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue