mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-12-31 04:39:49 +08:00
identify gen3
This commit is contained in:
parent
cc30f4ed9f
commit
ecbcba18dd
4 changed files with 26 additions and 2 deletions
|
@ -2243,6 +2243,7 @@ void MifareCIdent(void) {
|
||||||
uint8_t recpar[1] = {0x00};
|
uint8_t recpar[1] = {0x00};
|
||||||
uint8_t rats[4] = { ISO14443A_CMD_RATS, 0x80, 0x31, 0x73 };
|
uint8_t rats[4] = { ISO14443A_CMD_RATS, 0x80, 0x31, 0x73 };
|
||||||
uint8_t rdbl[4] = { ISO14443A_CMD_READBLOCK, 0xF0, 0x8D, 0x5f};
|
uint8_t rdbl[4] = { ISO14443A_CMD_READBLOCK, 0xF0, 0x8D, 0x5f};
|
||||||
|
uint8_t rdbl0[4] = { ISO14443A_CMD_READBLOCK, 0x00, 0x02, 0xa8};
|
||||||
uint8_t *par = BigBuf_malloc(MAX_PARITY_SIZE);
|
uint8_t *par = BigBuf_malloc(MAX_PARITY_SIZE);
|
||||||
uint8_t *buf = BigBuf_malloc(PM3_CMD_DATA_SIZE);
|
uint8_t *buf = BigBuf_malloc(PM3_CMD_DATA_SIZE);
|
||||||
uint8_t *uid = BigBuf_malloc(10);
|
uint8_t *uid = BigBuf_malloc(10);
|
||||||
|
@ -2334,6 +2335,19 @@ void MifareCIdent(void) {
|
||||||
isGen = MAGIC_NTAG21X;
|
isGen = MAGIC_NTAG21X;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// magic MFC Gen3 test
|
||||||
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
|
SpinDelay(40);
|
||||||
|
iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN);
|
||||||
|
res = iso14443a_select_card(uid, NULL, &cuid, true, 0, true);
|
||||||
|
if (res == 2) {
|
||||||
|
ReaderTransmit(rdbl0, sizeof(rdbl0), NULL);
|
||||||
|
res = ReaderReceive(buf, par);
|
||||||
|
if (res == 18) {
|
||||||
|
isGen = MAGIC_GEN_3;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
OUT:
|
OUT:
|
||||||
|
|
|
@ -1174,7 +1174,10 @@ int detect_classic_magic(void) {
|
||||||
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Gen 1b"));
|
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Gen 1b"));
|
||||||
break;
|
break;
|
||||||
case MAGIC_GEN_2:
|
case MAGIC_GEN_2:
|
||||||
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Gen 2 / CUID"));
|
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Gen 2 / CUID"));
|
||||||
|
break;
|
||||||
|
case MAGIC_GEN_3:
|
||||||
|
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Gen 3 / APDU"));
|
||||||
break;
|
break;
|
||||||
case MAGIC_GEN_UNFUSED:
|
case MAGIC_GEN_UNFUSED:
|
||||||
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Write Once / FUID"));
|
PrintAndLogEx(SUCCESS, "Magic capabilities : " _GREEN_("Write Once / FUID"));
|
||||||
|
|
|
@ -344,7 +344,11 @@ hf 14a raw -c 85000000000000000000000000000008
|
||||||
|
|
||||||
### Identify
|
### Identify
|
||||||
|
|
||||||
**TODO**
|
```
|
||||||
|
hf 14a info
|
||||||
|
...
|
||||||
|
[+] Magic capabilities : Gen 3 / APDU
|
||||||
|
```
|
||||||
|
|
||||||
### Magic commands
|
### Magic commands
|
||||||
|
|
||||||
|
@ -362,6 +366,8 @@ It seems the length byte gets ignored anyway.
|
||||||
|
|
||||||
Note: it seems some cards only accept the "change UID" command.
|
Note: it seems some cards only accept the "change UID" command.
|
||||||
|
|
||||||
|
It accepts direct read of block0 (and only block0) without prior auth.
|
||||||
|
|
||||||
### Characteristics
|
### Characteristics
|
||||||
|
|
||||||
* UID: 4b and 7b versions
|
* UID: 4b and 7b versions
|
||||||
|
|
|
@ -221,6 +221,7 @@ ISO 7816-4 Basic interindustry commands. For command APDU's.
|
||||||
#define MAGIC_GEN_UNFUSED 5
|
#define MAGIC_GEN_UNFUSED 5
|
||||||
#define MAGIC_SUPER 6
|
#define MAGIC_SUPER 6
|
||||||
#define MAGIC_NTAG21X 7
|
#define MAGIC_NTAG21X 7
|
||||||
|
#define MAGIC_GEN_3 8
|
||||||
/**
|
/**
|
||||||
06 00 = INITIATE
|
06 00 = INITIATE
|
||||||
0E xx = SELECT ID (xx = Chip-ID)
|
0E xx = SELECT ID (xx = Chip-ID)
|
||||||
|
|
Loading…
Reference in a new issue