mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
data raw am - fix length checks
This commit is contained in:
parent
3f9ddf9b29
commit
073c630458
1 changed files with 26 additions and 16 deletions
|
@ -638,28 +638,38 @@ int ASKDemod(int clk, int invert, int maxErr, size_t maxLen, bool amplify, bool
|
||||||
//attempts to demodulate ask while decoding manchester
|
//attempts to demodulate ask while decoding manchester
|
||||||
//prints binary found and saves in graphbuffer for further commands
|
//prints binary found and saves in graphbuffer for further commands
|
||||||
static int Cmdaskmandemod(const char *Cmd) {
|
static int Cmdaskmandemod(const char *Cmd) {
|
||||||
|
|
||||||
|
size_t slen = strlen(Cmd);
|
||||||
|
|
||||||
char cmdp = tolower(param_getchar(Cmd, 0));
|
char cmdp = tolower(param_getchar(Cmd, 0));
|
||||||
if (strlen(Cmd) > 45 || cmdp == 'h') return usage_data_rawdemod_am();
|
if (slen > 45 || cmdp == 'h') return usage_data_rawdemod_am();
|
||||||
bool st = false;
|
|
||||||
if (Cmd[0] == 's') {
|
bool st = false, amplify = false;
|
||||||
st = true;
|
int clk = 0, invert = 0, maxErr = 100;
|
||||||
Cmd++;
|
|
||||||
} else if (Cmd[1] == 's') {
|
|
||||||
st = true;
|
|
||||||
Cmd += 2;
|
|
||||||
}
|
|
||||||
int clk = 0;
|
|
||||||
int invert = 0;
|
|
||||||
int maxErr = 100;
|
|
||||||
size_t maxLen = 0;
|
size_t maxLen = 0;
|
||||||
bool amplify = false;
|
|
||||||
char amp = tolower(param_getchar(Cmd, 0));
|
if (slen) {
|
||||||
sscanf(Cmd, "%i %i %i %zu %c", &clk, &invert, &maxErr, &maxLen, &);
|
|
||||||
amplify = amp == 'a';
|
|
||||||
|
if (Cmd[0] == 's') {
|
||||||
|
st = true;
|
||||||
|
Cmd++;
|
||||||
|
} else if (slen > 1 && Cmd[1] == 's') {
|
||||||
|
st = true;
|
||||||
|
Cmd += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
char amp = tolower(param_getchar(Cmd, 0));
|
||||||
|
sscanf(Cmd, "%i %i %i %zu %c", &clk, &invert, &maxErr, &maxLen, &);
|
||||||
|
|
||||||
|
amplify = (amp == 'a');
|
||||||
|
}
|
||||||
|
|
||||||
if (clk == 1) {
|
if (clk == 1) {
|
||||||
invert = 1;
|
invert = 1;
|
||||||
clk = 0;
|
clk = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invert != 0 && invert != 1) {
|
if (invert != 0 && invert != 1) {
|
||||||
PrintAndLogEx(WARNING, "Invalid value for invert: %i", invert);
|
PrintAndLogEx(WARNING, "Invalid value for invert: %i", invert);
|
||||||
return PM3_EINVARG;
|
return PM3_EINVARG;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue