mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-21 05:43:23 -07:00
fix buffer length bugs
adjust lf search a little as to when the chiptype check happens
This commit is contained in:
parent
0aed2199a4
commit
f1004b345e
2 changed files with 10 additions and 8 deletions
|
@ -40,7 +40,7 @@ void setDemodBuf(uint8_t *buff, size_t size, size_t startIdx)
|
|||
if (buff == NULL)
|
||||
return;
|
||||
|
||||
if ( size >= MAX_DEMOD_BUF_LEN)
|
||||
if ( size + startIdx >= MAX_DEMOD_BUF_LEN)
|
||||
size = MAX_DEMOD_BUF_LEN;
|
||||
|
||||
size_t i = 0;
|
||||
|
@ -65,11 +65,12 @@ bool getDemodBuf(uint8_t *buff, size_t *size) {
|
|||
// option '1' to save DemodBuffer any other to restore
|
||||
void save_restoreDB(uint8_t saveOpt)
|
||||
{
|
||||
static uint8_t SavedDB[MAX_GRAPH_TRACE_LEN];
|
||||
static uint8_t SavedDB[MAX_DEMOD_BUF_LEN];
|
||||
static size_t SavedDBlen;
|
||||
static bool DB_Saved = false;
|
||||
|
||||
if (saveOpt==1) { //save
|
||||
|
||||
memcpy(SavedDB, DemodBuffer, sizeof(DemodBuffer));
|
||||
SavedDBlen = DemodBufferLen;
|
||||
DB_Saved=true;
|
||||
|
@ -322,7 +323,7 @@ int Cmdmandecoderaw(const char *Cmd)
|
|||
return 0;
|
||||
}
|
||||
if (DemodBufferLen==0) return 0;
|
||||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
|
||||
uint8_t BitStream[MAX_DEMOD_BUF_LEN]={0};
|
||||
int high=0,low=0;
|
||||
for (;i<DemodBufferLen;++i){
|
||||
if (DemodBuffer[i]>high) high=DemodBuffer[i];
|
||||
|
@ -388,7 +389,7 @@ int CmdBiphaseDecodeRaw(const char *Cmd)
|
|||
PrintAndLog("DemodBuffer Empty - run 'data rawdemod ar' first");
|
||||
return 0;
|
||||
}
|
||||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
|
||||
uint8_t BitStream[MAX_DEMOD_BUF_LEN]={0};
|
||||
size = sizeof(BitStream);
|
||||
if ( !getDemodBuf(BitStream, &size) ) return 0;
|
||||
errCnt=BiphaseRawDecode(BitStream, &size, offset, invert);
|
||||
|
@ -419,7 +420,7 @@ int ASKbiphaseDemod(const char *Cmd, bool verbose)
|
|||
int offset=0, clk=0, invert=0, maxErr=0;
|
||||
sscanf(Cmd, "%i %i %i %i", &offset, &clk, &invert, &maxErr);
|
||||
|
||||
uint8_t BitStream[MAX_DEMOD_BUF_LEN];
|
||||
uint8_t BitStream[MAX_GRAPH_TRACE_LEN];
|
||||
size_t size = getFromGraphBuf(BitStream);
|
||||
//invert here inverts the ask raw demoded bits which has no effect on the demod, but we need the pointer
|
||||
int errCnt = askdemod(BitStream, &size, &clk, &invert, maxErr, 0, 0);
|
||||
|
|
|
@ -1066,7 +1066,7 @@ int CmdLFfind(const char *Cmd)
|
|||
ans=FSKrawDemod("",true);
|
||||
if (ans>0) {
|
||||
PrintAndLog("\nUnknown FSK Modulated Tag Found!");
|
||||
return 1;
|
||||
return CheckChipType(cmdp);;
|
||||
}
|
||||
}
|
||||
bool st = true;
|
||||
|
@ -1074,15 +1074,16 @@ int CmdLFfind(const char *Cmd)
|
|||
if (ans>0) {
|
||||
PrintAndLog("\nUnknown ASK Modulated and Manchester encoded Tag Found!");
|
||||
PrintAndLog("\nif it does not look right it could instead be ASK/Biphase - try 'data rawdemod ab'");
|
||||
return 1;
|
||||
return CheckChipType(cmdp);;
|
||||
}
|
||||
ans=CmdPSK1rawDemod("");
|
||||
if (ans>0) {
|
||||
PrintAndLog("Possible unknown PSK1 Modulated Tag Found above!\n\nCould also be PSK2 - try 'data rawdemod p2'");
|
||||
PrintAndLog("\nCould also be PSK3 - [currently not supported]");
|
||||
PrintAndLog("\nCould also be NRZ - try 'data nrzrawdemod'");
|
||||
return 1;
|
||||
return CheckChipType(cmdp);;
|
||||
}
|
||||
ans = CheckChipType(cmdp);
|
||||
PrintAndLog("\nNo Data Found!\n");
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue