FIX: the read counter in "hf 14a sim" (for ntag/ev) should work better now. Instead of always returning zero, it increases aswell.

--Started to add the TI demod into the 'LF SEARCH"
This commit is contained in:
iceman1001 2015-11-22 21:48:15 +01:00
parent 5636ee8ce6
commit e9a92fe237
3 changed files with 128 additions and 123 deletions

View file

@ -1204,10 +1204,12 @@ void SimulateIso14443aTag(int tagType, int flags, byte_t* data)
EmSendCmdEx(data,sizeof(data),false); EmSendCmdEx(data,sizeof(data),false);
p_response = NULL; p_response = NULL;
} else if (receivedCmd[0] == 0x39 && tagType == 7) { // Received a READ COUNTER -- } else if (receivedCmd[0] == 0x39 && tagType == 7) { // Received a READ COUNTER --
uint8_t counter = receivedCmd[1]; uint8_t index = receivedCmd[1];
uint32_t value = counters[counter];
uint8_t data[] = {0x00,0x00,0x00,0x14,0xa5}; uint8_t data[] = {0x00,0x00,0x00,0x14,0xa5};
if ( counters[index] > 0) {
num_to_bytes(counters[index], 3, data);
AppendCrc14443a(data, sizeof(data)-2); AppendCrc14443a(data, sizeof(data)-2);
}
EmSendCmdEx(data,sizeof(data),false); EmSendCmdEx(data,sizeof(data),false);
p_response = NULL; p_response = NULL;
} else if (receivedCmd[0] == 0xA5 && tagType == 7) { // Received a INC COUNTER -- } else if (receivedCmd[0] == 0xA5 && tagType == 7) { // Received a INC COUNTER --

View file

@ -1056,8 +1056,7 @@ int CmdVchDemod(const char *Cmd)
} }
//by marshmellow //by marshmellow
int CmdLFfind(const char *Cmd) int CmdLFfind(const char *Cmd) {
{
int ans = 0; int ans = 0;
char cmdp = param_getchar(Cmd, 0); char cmdp = param_getchar(Cmd, 0);
char testRaw = param_getchar(Cmd, 1); char testRaw = param_getchar(Cmd, 1);
@ -1147,6 +1146,8 @@ int CmdLFfind(const char *Cmd)
PrintAndLog("\nValid NexWatch ID Found!"); PrintAndLog("\nValid NexWatch ID Found!");
return 1; return 1;
} }
// TIdemod?
PrintAndLog("\nNo Known Tags Found!\n"); PrintAndLog("\nNo Known Tags Found!\n");
if (testRaw=='u' || testRaw=='U'){ if (testRaw=='u' || testRaw=='U'){
@ -1180,6 +1181,7 @@ int CmdLFfind(const char *Cmd)
} }
} }
} }
ans=GetFskClock("",FALSE,FALSE); ans=GetFskClock("",FALSE,FALSE);
if (ans != 0){ //fsk if (ans != 0){ //fsk
ans=FSKrawDemod("",TRUE); ans=FSKrawDemod("",TRUE);
@ -1188,12 +1190,14 @@ int CmdLFfind(const char *Cmd)
return 1; return 1;
} }
} }
ans=ASKDemod("0 0 0",TRUE,FALSE,1); ans=ASKDemod("0 0 0",TRUE,FALSE,1);
if (ans>0) { if (ans>0) {
PrintAndLog("\nUnknown ASK Modulated and Manchester encoded Tag Found!"); 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'"); PrintAndLog("\nif it does not look right it could instead be ASK/Biphase - try 'data rawdemod ab'");
return 1; return 1;
} }
ans=CmdPSK1rawDemod(""); ans=CmdPSK1rawDemod("");
if (ans>0) { if (ans>0) {
PrintAndLog("Possible unknown PSK1 Modulated Tag Found above!\n\nCould also be PSK2 - try 'data rawdemod p2'"); PrintAndLog("Possible unknown PSK1 Modulated Tag Found above!\n\nCould also be PSK2 - try 'data rawdemod p2'");

View file

@ -263,6 +263,7 @@ int CmdTIDemod(const char *Cmd)
int CmdTIRead(const char *Cmd) int CmdTIRead(const char *Cmd)
{ {
UsbCommand c = {CMD_READ_TI_TYPE}; UsbCommand c = {CMD_READ_TI_TYPE};
clearCommandbuffer();
SendCommand(&c); SendCommand(&c);
return 0; return 0;
} }
@ -279,12 +280,12 @@ int CmdTIWrite(const char *Cmd)
if (res < 2) if (res < 2)
PrintAndLog("Please specify the data as two hex strings, optionally the CRC as a third"); PrintAndLog("Please specify the data as two hex strings, optionally the CRC as a third");
else else
clearCommandbuffer();
SendCommand(&c); SendCommand(&c);
return 0; return 0;
} }
static command_t CommandTable[] = static command_t CommandTable[] = {
{
{"help", CmdHelp, 1, "This help"}, {"help", CmdHelp, 1, "This help"},
{"demod", CmdTIDemod, 1, "Demodulate raw bits for TI-type LF tag"}, {"demod", CmdTIDemod, 1, "Demodulate raw bits for TI-type LF tag"},
{"read", CmdTIRead, 0, "Read and decode a TI 134 kHz tag"}, {"read", CmdTIRead, 0, "Read and decode a TI 134 kHz tag"},
@ -292,14 +293,12 @@ static command_t CommandTable[] =
{NULL, NULL, 0, NULL} {NULL, NULL, 0, NULL}
}; };
int CmdLFTI(const char *Cmd) int CmdLFTI(const char *Cmd){
{
CmdsParse(CommandTable, Cmd); CmdsParse(CommandTable, Cmd);
return 0; return 0;
} }
int CmdHelp(const char *Cmd) int CmdHelp(const char *Cmd){
{
CmdsHelp(CommandTable); CmdsHelp(CommandTable);
return 0; return 0;
} }