mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
Check for silicon version in iclass info
Updated hf iclass info to check whether the card's chipset is old silicon (supporting 14b) or new silicon (without the 14b support)
This commit is contained in:
parent
3c3041cdee
commit
4f85def6b0
4 changed files with 16 additions and 4 deletions
|
@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file.
|
||||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||||
|
|
||||||
## [unreleased][unreleased]
|
## [unreleased][unreleased]
|
||||||
|
- Changed `hf iclass info` - now checks for cards silicon version (@antiklesys)
|
||||||
- Changed `hf iclass legrec` - updated script implementation to ensure functionality (@antiklesys)
|
- Changed `hf iclass legrec` - updated script implementation to ensure functionality (@antiklesys)
|
||||||
- Added recovered iclass custom key to dictionary (@antiklesys)
|
- Added recovered iclass custom key to dictionary (@antiklesys)
|
||||||
- Changed `hf mf sim` - add option to allow key b to be used even if readable (@doegox)
|
- Changed `hf mf sim` - add option to allow key b to be used even if readable (@doegox)
|
||||||
|
|
|
@ -1411,7 +1411,7 @@ static bool HF14B_ask_ct_reader(bool verbose) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool HF14B_picopass_reader(bool verbose) {
|
bool HF14B_picopass_reader(bool verbose, bool info) {
|
||||||
|
|
||||||
iso14b_raw_cmd_t packet = {
|
iso14b_raw_cmd_t packet = {
|
||||||
.flags = (ISO14B_CONNECT | ISO14B_SELECT_PICOPASS | ISO14B_DISCONNECT),
|
.flags = (ISO14B_CONNECT | ISO14B_SELECT_PICOPASS | ISO14B_DISCONNECT),
|
||||||
|
@ -1437,8 +1437,10 @@ static bool HF14B_picopass_reader(bool verbose) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
memcpy(card, resp.data.asBytes, sizeof(picopass_hdr_t));
|
memcpy(card, resp.data.asBytes, sizeof(picopass_hdr_t));
|
||||||
PrintAndLogEx(NORMAL, "");
|
if(info){
|
||||||
PrintAndLogEx(SUCCESS, "iCLASS / Picopass CSN: " _GREEN_("%s"), sprint_hex(card->csn, sizeof(card->csn)));
|
PrintAndLogEx(NORMAL, "");
|
||||||
|
PrintAndLogEx(SUCCESS, "iCLASS / Picopass CSN: " _GREEN_("%s"), sprint_hex(card->csn, sizeof(card->csn)));
|
||||||
|
}
|
||||||
free(card);
|
free(card);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3034,6 +3036,7 @@ int infoHF14B(bool verbose, bool do_aid_search) {
|
||||||
// get and print general info about all known 14b chips
|
// get and print general info about all known 14b chips
|
||||||
int readHF14B(bool loop, bool verbose, bool read_plot) {
|
int readHF14B(bool loop, bool verbose, bool read_plot) {
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
bool info = true;
|
||||||
int res = PM3_SUCCESS;
|
int res = PM3_SUCCESS;
|
||||||
do {
|
do {
|
||||||
found = false;
|
found = false;
|
||||||
|
@ -3049,7 +3052,7 @@ int readHF14B(bool loop, bool verbose, bool read_plot) {
|
||||||
goto plot;
|
goto plot;
|
||||||
|
|
||||||
// Picopass
|
// Picopass
|
||||||
found |= HF14B_picopass_reader(verbose);
|
found |= HF14B_picopass_reader(verbose, info);
|
||||||
if (found)
|
if (found)
|
||||||
goto plot;
|
goto plot;
|
||||||
|
|
||||||
|
|
|
@ -31,4 +31,6 @@ int select_card_14443b_4(bool disconnect, iso14b_card_select_t *card);
|
||||||
|
|
||||||
int infoHF14B(bool verbose, bool do_aid_search);
|
int infoHF14B(bool verbose, bool do_aid_search);
|
||||||
int readHF14B(bool loop, bool verbose, bool read_plot);
|
int readHF14B(bool loop, bool verbose, bool read_plot);
|
||||||
|
bool HF14B_picopass_reader(bool verbose, bool info);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
#include "crypto/asn1utils.h" // ASN1 decoder
|
#include "crypto/asn1utils.h" // ASN1 decoder
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "generator.h"
|
#include "generator.h"
|
||||||
|
#include "cmdhf14b.h"
|
||||||
|
|
||||||
|
|
||||||
#define NUM_CSNS 9
|
#define NUM_CSNS 9
|
||||||
|
@ -5379,6 +5380,11 @@ int info_iclass(bool shallow_mod) {
|
||||||
uint8_t cardtype = get_mem_config(hdr);
|
uint8_t cardtype = get_mem_config(hdr);
|
||||||
PrintAndLogEx(SUCCESS, " Card type.... " _GREEN_("%s"), card_types[cardtype]);
|
PrintAndLogEx(SUCCESS, " Card type.... " _GREEN_("%s"), card_types[cardtype]);
|
||||||
|
|
||||||
|
if(HF14B_picopass_reader(false, false)){
|
||||||
|
PrintAndLogEx(SUCCESS, " Card chip.... "_YELLOW_("Old Silicon (14b support)"));
|
||||||
|
}else{
|
||||||
|
PrintAndLogEx(SUCCESS, " Card chip.... "_YELLOW_("NEW Silicon (No 14b support)"));
|
||||||
|
}
|
||||||
if (legacy) {
|
if (legacy) {
|
||||||
|
|
||||||
int res = PM3_ESOFT;
|
int res = PM3_ESOFT;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue