mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-07-15 01:33:00 -07:00
add first attempt at lf miller decoding
don't have any tags capable to test and not yet hooked up to data rawdemod...
This commit is contained in:
parent
549daaf778
commit
127f149075
2 changed files with 35 additions and 12 deletions
|
@ -29,6 +29,9 @@
|
|||
uint8_t DemodBuffer[MAX_DEMOD_BUF_LEN];
|
||||
uint8_t g_debugMode=0;
|
||||
size_t DemodBufferLen=0;
|
||||
size_t g_demodStartIdx=0;
|
||||
uint8_t g_demodClock=0;
|
||||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
//set the demod buffer with given array of binary (one bit per byte)
|
||||
|
@ -253,6 +256,7 @@ void printEM410x(uint32_t hi, uint64_t id)
|
|||
return;
|
||||
}
|
||||
|
||||
//should be moved to cmdlfem4x.c
|
||||
int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo )
|
||||
{
|
||||
size_t idx = 0;
|
||||
|
@ -274,7 +278,7 @@ int AskEm410xDecode(bool verbose, uint32_t *hi, uint64_t *lo )
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//should be moved to cmdlfem4x.c
|
||||
int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose)
|
||||
{
|
||||
bool st = true;
|
||||
|
@ -282,6 +286,7 @@ int AskEm410xDemod(const char *Cmd, uint32_t *hi, uint64_t *lo, bool verbose)
|
|||
return AskEm410xDecode(verbose, hi, lo);
|
||||
}
|
||||
|
||||
//should be moved to cmdlfem4x.c
|
||||
//by marshmellow
|
||||
//takes 3 arguments - clock, invert and maxErr as integers
|
||||
//attempts to demodulate ask while decoding manchester
|
||||
|
@ -451,7 +456,8 @@ int Cmdmandecoderaw(const char *Cmd)
|
|||
|
||||
sscanf(Cmd, "%i %i", &invert, &maxErr);
|
||||
size=i;
|
||||
errCnt=manrawdecode(BitStream, &size, invert);
|
||||
uint8_t alignPos = 0;
|
||||
errCnt=manrawdecode(BitStream, &size, invert, &alignPos);
|
||||
if (errCnt>=maxErr){
|
||||
PrintAndLog("Too many errors: %d",errCnt);
|
||||
return 0;
|
||||
|
@ -590,6 +596,7 @@ int Cmdaskbiphdemod(const char *Cmd)
|
|||
return ASKbiphaseDemod(Cmd, true);
|
||||
}
|
||||
|
||||
//could be split to a gProxII file
|
||||
//by marshmellow
|
||||
//attempts to demodulate and identify a G_Prox_II verex/chubb card
|
||||
//WARNING: if it fails during some points it will destroy the DemodBuffer data
|
||||
|
@ -655,6 +662,7 @@ int CmdG_Prox_II_Demod(const char *Cmd)
|
|||
return 1;
|
||||
}
|
||||
|
||||
//could be moved to a viking file
|
||||
//by marshmellow
|
||||
//see ASKDemod for what args are accepted
|
||||
int CmdVikingDemod(const char *Cmd)
|
||||
|
@ -1038,6 +1046,7 @@ int CmdFSKrawdemod(const char *Cmd)
|
|||
return FSKrawDemod(Cmd, true);
|
||||
}
|
||||
|
||||
//move to cmdlfhid.c
|
||||
//by marshmellow (based on existing demod + holiman's refactor)
|
||||
//HID Prox demod - FSK RF/50 with preamble of 00011101 (then manchester encoded)
|
||||
//print full HID Prox ID and some bit format details if found
|
||||
|
@ -1124,6 +1133,7 @@ int CmdFSKdemodHID(const char *Cmd)
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
//by marshmellow
|
||||
//Paradox Prox demod - FSK RF/50 with preamble of 00001111 (then manchester encoded)
|
||||
//print full Paradox Prox ID and some bit format details if found
|
||||
|
@ -2264,13 +2274,13 @@ int CmdDirectionalThreshold(const char *Cmd)
|
|||
if (GraphBuffer[i] >= upThres && GraphBuffer[i] > lastValue)
|
||||
{
|
||||
lastValue = GraphBuffer[i]; // Buffer last value as we overwrite it.
|
||||
GraphBuffer[i] = 1;
|
||||
GraphBuffer[i] = 127;
|
||||
}
|
||||
// Apply second threshold to samples heading down
|
||||
else if (GraphBuffer[i] <= downThres && GraphBuffer[i] < lastValue)
|
||||
{
|
||||
lastValue = GraphBuffer[i]; // Buffer last value as we overwrite it.
|
||||
GraphBuffer[i] = -1;
|
||||
GraphBuffer[i] = -127;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue