mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
Make use of aid_desfire info
This commit is contained in:
parent
f096167cbb
commit
a359e4fac4
7 changed files with 517 additions and 357 deletions
|
@ -216,6 +216,7 @@ set (TARGET_SOURCES
|
|||
${PM3_ROOT}/client/src/uart/uart_posix.c
|
||||
${PM3_ROOT}/client/src/uart/uart_win32.c
|
||||
${PM3_ROOT}/client/src/ui/overlays.ui
|
||||
${PM3_ROOT}/client/src/aiddesfire.c
|
||||
${PM3_ROOT}/client/src/aidsearch.c
|
||||
${PM3_ROOT}/client/src/cmdanalyse.c
|
||||
${PM3_ROOT}/client/src/cmdcrc.c
|
||||
|
|
|
@ -410,7 +410,8 @@ POSTCOMPILE = $(MV) -f $(OBJDIR)/$*.Td $(OBJDIR)/$*.d && $(TOUCH) $@
|
|||
# enumerations #
|
||||
################
|
||||
|
||||
SRCS = aidsearch.c \
|
||||
SRCS = aiddesfire.c \
|
||||
aidsearch.c \
|
||||
cmdanalyse.c \
|
||||
cmdcrc.c \
|
||||
cmddata.c \
|
||||
|
|
|
@ -94,6 +94,7 @@ add_library(pm3rrg_rdv4 SHARED
|
|||
${PM3_ROOT}/client/src/uart/uart_posix.c
|
||||
${PM3_ROOT}/client/src/uart/uart_win32.c
|
||||
${PM3_ROOT}/client/src/ui/overlays.ui
|
||||
${PM3_ROOT}/client/src/aiddesfire.c
|
||||
${PM3_ROOT}/client/src/aidsearch.c
|
||||
${PM3_ROOT}/client/src/cmdanalyse.c
|
||||
${PM3_ROOT}/client/src/cmdcrc.c
|
||||
|
|
|
@ -1,356 +1,355 @@
|
|||
[
|
||||
{
|
||||
"AID": "EEEE10",
|
||||
"Vendor": "NFC Forum",
|
||||
"Country": "US",
|
||||
"Name": "NFC Forum NDEF Tag",
|
||||
"Description": "(FID 03: Capability Container)",
|
||||
"Type": "ndef"
|
||||
},
|
||||
{
|
||||
"AID": "D3494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "SIO DESFire Ev1",
|
||||
"Description": "Field Encoder",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "D9494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "Access control",
|
||||
"Description": "Field Encoder",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "53494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "Access control",
|
||||
"Description": "HID Factory",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "4F5931",
|
||||
"Vendor": "Transport of London",
|
||||
"Country": "UK",
|
||||
"Name": "Oyster Card",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "422201",
|
||||
"Vendor": "Transport of Istanbul",
|
||||
"Country": "Turkey",
|
||||
"Name": "Istanbulkart",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F21190",
|
||||
"Vendor": "Metropolitan Transportation Commission",
|
||||
"Country": "US",
|
||||
"Name": "Clipper Card",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "000357",
|
||||
"Vendor": "LEGIC",
|
||||
"Country": "DE",
|
||||
"Name": "Legic",
|
||||
"Description": "(FID 02: EF-CONF)",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "578000",
|
||||
"Vendor": "NORTIC",
|
||||
"Country": "",
|
||||
"Name": "NORTIC Card Issuer",
|
||||
"Description": "(FID 0C: Card Issuer Header)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "578001",
|
||||
"Vendor": "NORTIC",
|
||||
"Country": "",
|
||||
"Name": "NORTIC Transport",
|
||||
"Description": "(FIDs 01: Transport Product Retailer; 02: Transport Service Provider; 03: Transport Special Event; 04: Transport Stored Value; 05: Transport General Event Log; 06: Transport SV Reload Log; 0A: Transport Environment; 0C: Transport Card Holder",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "784000",
|
||||
"Vendor": "NO1",
|
||||
"Country": "UAE",
|
||||
"Name": "Nol Card/Dubai",
|
||||
"Description": "Nol Card/Dubai",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "956B19",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9800",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9801",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9802",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "F21030",
|
||||
"Vendor": "ORCA Card",
|
||||
"Country": "",
|
||||
"Name": "ORCA Card",
|
||||
"Description": "(FIDs 02: Trip History; 04: current balance)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F21190",
|
||||
"Vendor": "Clipper",
|
||||
"Country": "US",
|
||||
"Name": "Clipper Card/San Francisco Bay Area ",
|
||||
"Description": "(FIDs 02: current balance; 04: Refill History; 08: Card Information; 0E: Trip History)
|
||||
FFFFFF General Issuer Information (FIDs 00: MAD Version; 01: Card Holder; 02: Card Publisher)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F518F0",
|
||||
"Vendor": "Telenot Electronic GmbH",
|
||||
"Country": "DE",
|
||||
"Name": "Telenot Tag",
|
||||
"Description": "",
|
||||
"Type": "alarm system"
|
||||
},
|
||||
{
|
||||
"AID": "F38091",
|
||||
"Vendor": "Microtronic AG",
|
||||
"Country": "CH",
|
||||
"Name": "Microtronic Tag",
|
||||
"Description": "",
|
||||
"Type": "payment system"
|
||||
},
|
||||
|
||||
{
|
||||
"AID": "F88280",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F5217D",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F48EF1",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535501",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535502",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535503",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535504",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535505",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535506",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535507",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535508",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535509",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "53550A",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "53550B",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F001D0",
|
||||
"Vendor": "Arabako Foru Aldundia",
|
||||
"Country": "",
|
||||
"Name": "BAT",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "05845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "15845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "25845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "35845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "55845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "65845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "75845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "C26001",
|
||||
"Vendor": "CAR2GO",
|
||||
"Country": "DE",
|
||||
"Name": "MemberCard",
|
||||
"Description": "CAR2GO - Member Card",
|
||||
"Type": "carsharing"
|
||||
},
|
||||
{
|
||||
"AID": "2F81F4",
|
||||
"Vendor": "Gallagher",
|
||||
"Country": "NZ",
|
||||
"Name": "Access control",
|
||||
"Description": "Card Application Directory (CAD)",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "2081F4",
|
||||
"Vendor": "Gallagher",
|
||||
"Country": "NZ",
|
||||
"Name": "Access control",
|
||||
"Description": "Cardax Card Data Application",
|
||||
"Type": ""
|
||||
}
|
||||
]
|
||||
[
|
||||
{
|
||||
"AID": "EEEE10",
|
||||
"Vendor": "NFC Forum",
|
||||
"Country": "US",
|
||||
"Name": "NFC Forum NDEF Tag",
|
||||
"Description": "(FID 03: Capability Container)",
|
||||
"Type": "ndef"
|
||||
},
|
||||
{
|
||||
"AID": "D3494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "SIO DESFire Ev1",
|
||||
"Description": "Field Encoder",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "D9494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "Access control",
|
||||
"Description": "Field Encoder",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "53494F",
|
||||
"Vendor": "HID",
|
||||
"Country": "US",
|
||||
"Name": "Access control",
|
||||
"Description": "HID Factory",
|
||||
"Type": "pacs"
|
||||
},
|
||||
{
|
||||
"AID": "4F5931",
|
||||
"Vendor": "Transport of London",
|
||||
"Country": "UK",
|
||||
"Name": "Oyster Card",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "422201",
|
||||
"Vendor": "Transport of Istanbul",
|
||||
"Country": "Turkey",
|
||||
"Name": "Istanbulkart",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F21190",
|
||||
"Vendor": "Metropolitan Transportation Commission",
|
||||
"Country": "US",
|
||||
"Name": "Clipper Card",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "000357",
|
||||
"Vendor": "LEGIC",
|
||||
"Country": "DE",
|
||||
"Name": "Legic",
|
||||
"Description": "(FID 02: EF-CONF)",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "578000",
|
||||
"Vendor": "NORTIC",
|
||||
"Country": "",
|
||||
"Name": "NORTIC Card Issuer",
|
||||
"Description": "(FID 0C: Card Issuer Header)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "578001",
|
||||
"Vendor": "NORTIC",
|
||||
"Country": "",
|
||||
"Name": "NORTIC Transport",
|
||||
"Description": "(FIDs 01: Transport Product Retailer; 02: Transport Service Provider; 03: Transport Special Event; 04: Transport Stored Value; 05: Transport General Event Log; 06: Transport SV Reload Log; 0A: Transport Environment; 0C: Transport Card Holder",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "784000",
|
||||
"Vendor": "NO1",
|
||||
"Country": "UAE",
|
||||
"Name": "Nol Card/Dubai",
|
||||
"Description": "Nol Card/Dubai",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "956B19",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9800",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9801",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "DB9802",
|
||||
"Vendor": "PING PING",
|
||||
"Country": "",
|
||||
"Name": "PingPing Tag",
|
||||
"Description": "PingPing Tag",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "F21030",
|
||||
"Vendor": "ORCA Card",
|
||||
"Country": "",
|
||||
"Name": "ORCA Card",
|
||||
"Description": "(FIDs 02: Trip History; 04: current balance)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F21190",
|
||||
"Vendor": "Clipper",
|
||||
"Country": "US",
|
||||
"Name": "Clipper Card/San Francisco Bay Area ",
|
||||
"Description": "(FIDs 02: current balance; 04: Refill History; 08: Card Information; 0E: Trip History)\\nFFFFFF General Issuer Information (FIDs 00: MAD Version; 01: Card Holder; 02: Card Publisher)",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "F518F0",
|
||||
"Vendor": "Telenot Electronic GmbH",
|
||||
"Country": "DE",
|
||||
"Name": "Telenot Tag",
|
||||
"Description": "",
|
||||
"Type": "alarm system"
|
||||
},
|
||||
{
|
||||
"AID": "F38091",
|
||||
"Vendor": "Microtronic AG",
|
||||
"Country": "CH",
|
||||
"Name": "Microtronic Tag",
|
||||
"Description": "",
|
||||
"Type": "payment system"
|
||||
},
|
||||
|
||||
{
|
||||
"AID": "F88280",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F5217D",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F48EF1",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535501",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535502",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535503",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535504",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535505",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535506",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535507",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535508",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "535509",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "53550A",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "53550B",
|
||||
"Vendor": "TU Delft",
|
||||
"Country": "NL",
|
||||
"Name": "Uni Delft",
|
||||
"Description": "",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "F001D0",
|
||||
"Vendor": "Arabako Foru Aldundia",
|
||||
"Country": "",
|
||||
"Name": "BAT",
|
||||
"Description": "",
|
||||
"Type": "transport"
|
||||
},
|
||||
{
|
||||
"AID": "05845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "15845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "25845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "35845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "55845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "65845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "75845F",
|
||||
"Vendor": "InterCard GmbH Kartensysteme",
|
||||
"Country": "DE",
|
||||
"Name": "InterCard",
|
||||
"Description": "Campus Card",
|
||||
"Type": "student"
|
||||
},
|
||||
{
|
||||
"AID": "C26001",
|
||||
"Vendor": "CAR2GO",
|
||||
"Country": "DE",
|
||||
"Name": "MemberCard",
|
||||
"Description": "CAR2GO - Member Card",
|
||||
"Type": "carsharing"
|
||||
},
|
||||
{
|
||||
"AID": "2F81F4",
|
||||
"Vendor": "Gallagher",
|
||||
"Country": "NZ",
|
||||
"Name": "Access control",
|
||||
"Description": "Card Application Directory (CAD)",
|
||||
"Type": ""
|
||||
},
|
||||
{
|
||||
"AID": "2081F4",
|
||||
"Vendor": "Gallagher",
|
||||
"Country": "NZ",
|
||||
"Name": "Access control",
|
||||
"Description": "Cardax Card Data Application",
|
||||
"Type": ""
|
||||
}
|
||||
]
|
||||
|
|
137
client/src/aiddesfire.c
Normal file
137
client/src/aiddesfire.c
Normal file
|
@ -0,0 +1,137 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||
// the license.
|
||||
//-----------------------------------------------------------------------------
|
||||
// AID DESFire functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "aiddesfire.h"
|
||||
//#include "ui.h"
|
||||
//#include "commonutil.h" // ARRAYLEN
|
||||
#include "pm3_cmd.h"
|
||||
//#include "util.h"
|
||||
#include "fileutils.h"
|
||||
#include "jansson.h"
|
||||
|
||||
// https://www.nxp.com/docs/en/application-note/AN10787.pdf
|
||||
static json_t *df_known_aids = NULL;
|
||||
|
||||
static int open_aiddf_file(json_t **root, bool verbose) {
|
||||
|
||||
char *path;
|
||||
int res = searchFile(&path, RESOURCES_SUBDIR, "aid_desfire", ".json", true);
|
||||
if (res != PM3_SUCCESS) {
|
||||
return PM3_EFILE;
|
||||
}
|
||||
|
||||
int retval = PM3_SUCCESS;
|
||||
json_error_t error;
|
||||
|
||||
*root = json_load_file(path, 0, &error);
|
||||
if (!*root) {
|
||||
PrintAndLogEx(ERR, "json (%s) error on line %d: %s", path, error.line, error.text);
|
||||
retval = PM3_ESOFT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!json_is_array(*root)) {
|
||||
PrintAndLogEx(ERR, "Invalid json (%s) format. root must be an array.", path);
|
||||
retval = PM3_ESOFT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (verbose)
|
||||
PrintAndLogEx(SUCCESS, "Loaded file " _YELLOW_("`%s`") " (%s) %zu records.", path, _GREEN_("ok"), json_array_size(*root));
|
||||
out:
|
||||
free(path);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int close_aiddf_file(json_t *root) {
|
||||
json_decref(root);
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
static const char *aiddf_json_get_str(json_t *data, const char *name) {
|
||||
|
||||
json_t *jstr = json_object_get(data, name);
|
||||
if (jstr == NULL)
|
||||
return NULL;
|
||||
|
||||
if (!json_is_string(jstr)) {
|
||||
PrintAndLogEx(WARNING, _YELLOW_("`%s`") " is not a string", name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *cstr = json_string_value(jstr);
|
||||
if (strlen(cstr) == 0)
|
||||
return NULL;
|
||||
|
||||
return cstr;
|
||||
}
|
||||
|
||||
static int print_aiddf_description(json_t *root, uint8_t aid[3], char *fmt, bool verbose) {
|
||||
char laid[7] = {0};
|
||||
sprintf(laid, "%02x%02x%02x", aid[2], aid[1], aid[0]); // must be lowercase
|
||||
|
||||
json_t *elm = NULL;
|
||||
|
||||
for (uint32_t idx = 0; idx < json_array_size(root); idx++) {
|
||||
json_t *data = json_array_get(root, idx);
|
||||
if (!json_is_object(data)) {
|
||||
PrintAndLogEx(ERR, "data [%d] is not an object\n", idx);
|
||||
continue;
|
||||
}
|
||||
const char *faid = aiddf_json_get_str(data, "AID");
|
||||
char lfaid[strlen(faid) + 1];
|
||||
strcpy(lfaid, faid);
|
||||
str_lower(lfaid);
|
||||
if (strcmp(laid, lfaid) == 0) {
|
||||
elm = data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (elm == NULL) {
|
||||
PrintAndLogEx(INFO, fmt, " (unknown)");
|
||||
return PM3_ENODATA;
|
||||
}
|
||||
const char *vaid = aiddf_json_get_str(elm, "AID");
|
||||
const char *vendor = aiddf_json_get_str(elm, "Vendor");
|
||||
const char *country = aiddf_json_get_str(elm, "Country");
|
||||
const char *name = aiddf_json_get_str(elm, "Name");
|
||||
const char *description = aiddf_json_get_str(elm, "Description");
|
||||
const char *type = aiddf_json_get_str(elm, "Type");
|
||||
|
||||
if (name && vendor) {
|
||||
char result[4 + strlen(name) + strlen(vendor)];
|
||||
sprintf(result, " %s [%s]", name, vendor);
|
||||
PrintAndLogEx(INFO, fmt, result);
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
PrintAndLogEx(SUCCESS, " AID: %s", vaid);
|
||||
if (name)
|
||||
PrintAndLogEx(SUCCESS, " Name: %s", name);
|
||||
if (description)
|
||||
PrintAndLogEx(SUCCESS, " Description: %s", description);
|
||||
if (type)
|
||||
PrintAndLogEx(SUCCESS, " Type: %s", type);
|
||||
if (vendor)
|
||||
PrintAndLogEx(SUCCESS, " Vendor: %s", vendor);
|
||||
if (country)
|
||||
PrintAndLogEx(SUCCESS, " Country: %s", country);
|
||||
}
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
int AIDDFDecodeAndPrint(uint8_t aid[3]) {
|
||||
open_aiddf_file(&df_known_aids, false);
|
||||
|
||||
char fmt[50];
|
||||
sprintf(fmt, " DF AID Function %02X%02X%02X :" _YELLOW_("%s"), aid[2], aid[1], aid[0], "%s");
|
||||
print_aiddf_description(df_known_aids, aid, fmt, false);
|
||||
close_aiddf_file(df_known_aids);
|
||||
return PM3_SUCCESS;
|
||||
}
|
16
client/src/aiddesfire.h
Normal file
16
client/src/aiddesfire.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||
// the license.
|
||||
//-----------------------------------------------------------------------------
|
||||
// AID DESFire functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef _AIDDESFIRE_H_
|
||||
#define _AIDDESFIRE_H_
|
||||
|
||||
#include "common.h"
|
||||
|
||||
int AIDDFDecodeAndPrint(uint8_t aid[3]);
|
||||
|
||||
#endif // _AIDDESFIRE_H_
|
|
@ -34,6 +34,7 @@
|
|||
#include "mifare/ndef.h" // NDEF
|
||||
#include "mifare/mad.h"
|
||||
#include "generator.h"
|
||||
#include "aiddesfire.h"
|
||||
|
||||
#define MAX_KEY_LEN 24
|
||||
#define MAX_KEYS_LIST_LEN 1024
|
||||
|
@ -3612,6 +3613,8 @@ static int CmdHF14ADesDump(const char *Cmd) {
|
|||
PrintAndLogEx(SUCCESS, " AID mapped to MIFARE Classic AID (MAD): " _YELLOW_("%02X"), short_aid);
|
||||
PrintAndLogEx(SUCCESS, " MAD AID Cluster 0x%02X : " _YELLOW_("%s"), short_aid >> 8, cluster_to_text(short_aid >> 8));
|
||||
MADDFDecodeAndPrint(short_aid);
|
||||
} else {
|
||||
AIDDFDecodeAndPrint(aid);
|
||||
}
|
||||
for (uint8_t m = 0; m < dfname_count; m++) {
|
||||
if (dfnames[m].aid[0] == aid[0] && dfnames[m].aid[1] == aid[1] && dfnames[m].aid[2] == aid[2]) {
|
||||
|
@ -3782,6 +3785,8 @@ static int CmdHF14ADesEnumApplications(const char *Cmd) {
|
|||
PrintAndLogEx(SUCCESS, " AID mapped to MIFARE Classic AID (MAD): " _YELLOW_("%02X"), short_aid);
|
||||
PrintAndLogEx(SUCCESS, " MAD AID Cluster 0x%02X : " _YELLOW_("%s"), short_aid >> 8, cluster_to_text(short_aid >> 8));
|
||||
MADDFDecodeAndPrint(short_aid);
|
||||
} else {
|
||||
AIDDFDecodeAndPrint(aid);
|
||||
}
|
||||
for (uint8_t m = 0; m < dfname_count; m++) {
|
||||
if (dfnames[m].aid[0] == aid[0] && dfnames[m].aid[1] == aid[1] && dfnames[m].aid[2] == aid[2]) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue