X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/75465377b93c9a27450a186342e9cfd2a84b4173..a61b4976bd2085bf0495855b48fcad0d9ed4572e:/client/cmdhf15.c diff --git a/client/cmdhf15.c b/client/cmdhf15.c index 195560ed..556d3f56 100644 --- a/client/cmdhf15.c +++ b/client/cmdhf15.c @@ -44,6 +44,7 @@ #define Crc(data,datalen) Iso15693Crc(data,datalen) #define AddCrc(data,datalen) Iso15693AddCrc(data,datalen) #define sprintUID(target,uid) Iso15693sprintUID(target,uid) +#define TRACE_BUFF_SIZE 12000 // structure and database for uid -> tagtype lookups typedef struct { @@ -58,8 +59,10 @@ const productName uidmapping[] = { { 0xE001000000000000LL, 16, "Motorola" }, { 0xE002000000000000LL, 16, "ST Microelectronics" }, { 0xE003000000000000LL, 16, "Hitachi" }, - { 0xE004000000000000LL, 16, "Philips" }, - { 0xE004010000000000LL, 24, "Philips; IC SL2 ICS20" }, + { 0xE004000000000000LL, 16, "NXP(Philips)" }, + { 0xE004010000000000LL, 24, "NXP(Philips); IC SL2 ICS20/ICS21(SLI) ICS2002/ICS2102(SLIX)" }, + { 0xE004020000000000LL, 24, "NXP(Philips); IC SL2 ICS53/ICS54(SLI-S) ICS5302/ICS5402(SLIX-S)" }, + { 0xE004030000000000LL, 24, "NXP(Philips); IC SL2 ICS50/ICS51(SLI-L) ICS5002/ICS5102(SLIX-L)" }, { 0xE005000000000000LL, 16, "Infineon" }, { 0xE005400000000000LL, 24, "Infineon; 56x32bit" }, { 0xE006000000000000LL, 16, "Cylinc" }, @@ -252,6 +255,17 @@ int CmdHF15Read(const char *Cmd) { UsbCommand c = {CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693}; SendCommand(&c); + + uint8_t data[TRACE_BUFF_SIZE] = {0x00}; + + GetFromBigBuf(data,TRACE_BUFF_SIZE,3560); //3560 -- should be offset.. + WaitForResponseTimeout(CMD_ACK,NULL, 1500); + + for (int j = 0; j < TRACE_BUFF_SIZE; j++) { + GraphBuffer[j] = ((int)data[j]) ; + } + GraphTraceLen = TRACE_BUFF_SIZE; + RepaintGraphWindow(); return 0; } @@ -260,6 +274,17 @@ int CmdHF15Record(const char *Cmd) { UsbCommand c = {CMD_RECORD_RAW_ADC_SAMPLES_ISO_15693}; SendCommand(&c); + + uint8_t data[TRACE_BUFF_SIZE] = {0x00}; + + GetFromBigBuf(data,TRACE_BUFF_SIZE,3560); //3560 -- should be offset.. + WaitForResponseTimeout(CMD_ACK,NULL, 1500); + + for (int j = 0; j < TRACE_BUFF_SIZE; j++) { + GraphBuffer[j] = ((int)data[j]) ; + } + GraphTraceLen = TRACE_BUFF_SIZE; + RepaintGraphWindow(); return 0; } @@ -324,7 +349,7 @@ int CmdHF15DumpMem(const char*Cmd) { if (!(recv[0] & ISO15_RES_ERROR)) { retry=0; *output=0; // reset outputstring - sprintf(output, "Block %2i ",blocknum); + sprintf(output, "Block %02x ",blocknum); for ( int i=1; i"); - PrintAndLog(" 0..no debugging output 1..turn debugging on"); + PrintAndLog("Usage: hf 15 cmd debug <0|1>"); + PrintAndLog(" 0 no debugging"); + PrintAndLog(" 1 turn debugging on"); return 0; } @@ -535,8 +561,9 @@ int CmdHF15CmdRaw (const char *cmd) { */ int prepareHF15Cmd(char **cmd, UsbCommand *c, uint8_t iso15cmd[], int iso15cmdlen) { int temp; - uint8_t *req=c->d.asBytes, uid[8]; - uint32_t reqlen=0; + uint8_t *req = c->d.asBytes; + uint8_t uid[8] = {0x00}; + uint32_t reqlen = 0; // strip while (**cmd==' ' || **cmd=='\t') (*cmd)++;