mirror of
https://github.com/Proxmark/proxmark3.git
synced 2024-11-11 01:35:51 +08:00
Added the new SRIX4K reading routine, thanks to jonor. Regression tested against SRI512 tags,
but I do not have SRIX4K tags to test this with.
This commit is contained in:
parent
e70140224f
commit
c86cc30801
6 changed files with 34 additions and 2 deletions
|
@ -582,6 +582,9 @@ void UsbPacketReceived(BYTE *packet, int len)
|
|||
case CMD_READ_SRI512_TAG:
|
||||
ReadSRI512Iso14443(c->ext1);
|
||||
break;
|
||||
case CMD_READ_SRIX4K_TAG:
|
||||
ReadSRIX4KIso14443(c->ext1);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef WITH_ISO14443a
|
||||
|
|
|
@ -81,6 +81,8 @@ void SimulateTagLowFrequencyBidir(int divisor, int max_bitlen);
|
|||
void SimulateIso14443Tag(void);
|
||||
void AcquireRawAdcSamplesIso14443(DWORD parameter);
|
||||
void ReadSRI512Iso14443(DWORD parameter);
|
||||
void ReadSRIX4KIso14443(DWORD parameter);
|
||||
void ReadSTMemoryIso14443(DWORD parameter,DWORD dwLast);
|
||||
void SnoopIso14443(void);
|
||||
|
||||
/// iso14443a.h
|
||||
|
|
|
@ -873,6 +873,15 @@ void AcquireRawAdcSamplesIso14443(DWORD parameter)
|
|||
//-----------------------------------------------------------------------------
|
||||
void ReadSRI512Iso14443(DWORD parameter)
|
||||
{
|
||||
ReadSTMemoryIso14443(parameter,0x0F);
|
||||
}
|
||||
void ReadSRIX4KIso14443(DWORD parameter)
|
||||
{
|
||||
ReadSTMemoryIso14443(parameter,0x7F);
|
||||
}
|
||||
|
||||
void ReadSTMemoryIso14443(DWORD parameter,DWORD dwLast)
|
||||
{
|
||||
BYTE i = 0x00;
|
||||
|
||||
// Make sure that we start from off, since the tags are stateful;
|
||||
|
@ -961,8 +970,9 @@ void ReadSRI512Iso14443(DWORD parameter)
|
|||
DbpString("Tag memory dump, block 0 to 15");
|
||||
cmd1[0] = 0x08;
|
||||
i = 0x00;
|
||||
dwLast++;
|
||||
for (;;) {
|
||||
if (i == 0x10) {
|
||||
if (i == dwLast) {
|
||||
DbpString("System area block (0xff):");
|
||||
i = 0xff;
|
||||
}
|
||||
|
|
|
@ -60,7 +60,8 @@ typedef struct {
|
|||
#define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443 0x0301
|
||||
#define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443_SIM 0x0302
|
||||
#define CMD_READ_SRI512_TAG 0x0303
|
||||
#define CMD_READER_ISO_15693 0x0310
|
||||
#define CMD_READ_SRIX4K_TAG 0x0304
|
||||
#define CMD_READER_ISO_15693 0x0310
|
||||
#define CMD_SIMTAG_ISO_15693 0x0311
|
||||
#define CMD_SIMULATE_TAG_HF_LISTEN 0x0380
|
||||
#define CMD_SIMULATE_TAG_ISO_14443 0x0381
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <QKeyEvent>
|
||||
#include <math.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include "proxguiqt.h"
|
||||
#include "proxgui.h"
|
||||
|
||||
|
|
|
@ -107,6 +107,20 @@ static void CmdSri512read(char *str)
|
|||
c.ext1 = atoi(str);
|
||||
SendCommand(&c, FALSE);
|
||||
}
|
||||
|
||||
/* New command to read the contents of a SRIX4K tag
|
||||
* SRIX4K tags are ISO14443-B modulated memory tags,
|
||||
* this command just dumps the contents of the memory/
|
||||
*/
|
||||
static void CmdSrix4kread(char *str)
|
||||
{
|
||||
UsbCommand c;
|
||||
c.cmd = CMD_READ_SRIX4K_TAG;
|
||||
c.ext1 = atoi(str);
|
||||
SendCommand(&c, FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ## New command
|
||||
static void CmdHi14areader(char *str)
|
||||
|
@ -2935,6 +2949,7 @@ static struct {
|
|||
{"setlfdivisor", CmdSetDivisor, 0, "<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"},
|
||||
{"setmux", CmdSetMux, 0, "<loraw|hiraw|lopkd|hipkd> -- Set the ADC mux to a specific value"},
|
||||
{"sri512read", CmdSri512read, 0, "<int> -- Read contents of a SRI512 tag"},
|
||||
{"srix4kread", CmdSrix4kread, 0, "<int> -- Read contents of a SRIX4K tag"},
|
||||
{"tidemod", CmdTIDemod, 1, "Demodulate raw bits for TI-type LF tag"},
|
||||
{"tiread", CmdTIRead, 0, "Read and decode a TI 134 kHz tag"},
|
||||
{"tiwrite", CmdTIWrite, 0, "Write new data to a r/w TI 134 kHz tag"},
|
||||
|
|
Loading…
Reference in a new issue