diff --git a/client/cmdhf14a.c b/client/cmdhf14a.c index c54c51741..1f27e5a2d 100644 --- a/client/cmdhf14a.c +++ b/client/cmdhf14a.c @@ -1116,16 +1116,16 @@ static int CmdHF14AChaining(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"list", CmdHF14AList, IfPm3Present, "List ISO 14443-a history"}, - {"info", CmdHF14AInfo, IfPm3Present, "Tag information"}, - {"reader", CmdHF14AReader, IfPm3Present, "Act like an ISO14443-a reader"}, - {"cuids", CmdHF14ACUIDs, IfPm3Present, " Collect n>0 ISO14443-a UIDs in one go"}, - {"sim", CmdHF14ASim, IfPm3Present, " -- Simulate ISO 14443-a tag"}, - {"sniff", CmdHF14ASniff, IfPm3Present, "sniff ISO 14443-a traffic"}, - {"apdu", CmdHF14AAPDU, IfPm3Present, "Send ISO 14443-4 APDU to tag"}, - {"chaining", CmdHF14AChaining, IfPm3Present, "Control ISO 14443-4 input chaining"}, - {"raw", CmdHF14ACmdRaw, IfPm3Present, "Send raw hex data to tag"}, - {"antifuzz", CmdHF14AAntiFuzz, IfPm3Present, "Fuzzing the anticollision phase. Warning! Readers may react strange"}, + {"list", CmdHF14AList, IfPm3Iso14443a, "List ISO 14443-a history"}, + {"info", CmdHF14AInfo, IfPm3Iso14443a, "Tag information"}, + {"reader", CmdHF14AReader, IfPm3Iso14443a, "Act like an ISO14443-a reader"}, + {"cuids", CmdHF14ACUIDs, IfPm3Iso14443a, " Collect n>0 ISO14443-a UIDs in one go"}, + {"sim", CmdHF14ASim, IfPm3Iso14443a, " -- Simulate ISO 14443-a tag"}, + {"sniff", CmdHF14ASniff, IfPm3Iso14443a, "sniff ISO 14443-a traffic"}, + {"apdu", CmdHF14AAPDU, IfPm3Iso14443a, "Send ISO 14443-4 APDU to tag"}, + {"chaining", CmdHF14AChaining, IfPm3Iso14443a, "Control ISO 14443-4 input chaining"}, + {"raw", CmdHF14ACmdRaw, IfPm3Iso14443a, "Send raw hex data to tag"}, + {"antifuzz", CmdHF14AAntiFuzz, IfPm3Iso14443a, "Fuzzing the anticollision phase. Warning! Readers may react strange"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhfepa.c b/client/cmdhfepa.c index 18812d15a..c2dbc0163 100644 --- a/client/cmdhfepa.c +++ b/client/cmdhfepa.c @@ -158,8 +158,8 @@ static int CmdHFEPAPACEReplay(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"cnonces", CmdHFEPACollectPACENonces, IfPm3Present, " Acquire n>0 encrypted PACE nonces of size m>0 with d sec pauses"}, - {"preplay", CmdHFEPAPACEReplay, IfPm3Present, " Perform PACE protocol by replaying given APDUs"}, + {"cnonces", CmdHFEPACollectPACENonces, IfPm3Iso14443, " Acquire n>0 encrypted PACE nonces of size m>0 with d sec pauses"}, + {"preplay", CmdHFEPAPACEReplay, IfPm3Iso14443, " Perform PACE protocol by replaying given APDUs"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhffido.c b/client/cmdhffido.c index 522d525ec..39b080dca 100644 --- a/client/cmdhffido.c +++ b/client/cmdhffido.c @@ -896,11 +896,11 @@ static int CmdHFFido2GetAssertion(const char *cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help."}, - {"info", CmdHFFidoInfo, IfPm3Present, "Info about FIDO tag."}, - {"reg", CmdHFFidoRegister, IfPm3Present, "FIDO U2F Registration Message."}, - {"auth", CmdHFFidoAuthenticate, IfPm3Present, "FIDO U2F Authentication Message."}, - {"make", CmdHFFido2MakeCredential, IfPm3Present, "FIDO2 MakeCredential command."}, - {"assert", CmdHFFido2GetAssertion, IfPm3Present, "FIDO2 GetAssertion command."}, + {"info", CmdHFFidoInfo, IfPm3Iso14443a, "Info about FIDO tag."}, + {"reg", CmdHFFidoRegister, IfPm3Iso14443a, "FIDO U2F Registration Message."}, + {"auth", CmdHFFidoAuthenticate, IfPm3Iso14443a, "FIDO U2F Authentication Message."}, + {"make", CmdHFFido2MakeCredential, IfPm3Iso14443a, "FIDO2 MakeCredential command."}, + {"assert", CmdHFFido2GetAssertion, IfPm3Iso14443a, "FIDO2 GetAssertion command."}, {NULL, NULL, 0, NULL} }; diff --git a/client/cmdhfmf.c b/client/cmdhfmf.c index 1b10440df..736b705a8 100644 --- a/client/cmdhfmf.c +++ b/client/cmdhfmf.c @@ -3551,46 +3551,46 @@ static int CmdHF14AMfList(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"list", CmdHF14AMfList, IfPm3Present, "List Mifare history"}, - {"darkside", CmdHF14AMfDarkside, IfPm3Present, "Darkside attack. read parity error messages."}, - {"nested", CmdHF14AMfNested, IfPm3Present, "Nested attack. Test nested authentication"}, - {"hardnested", CmdHF14AMfNestedHard, IfPm3Present, "Nested attack for hardened Mifare cards"}, - {"keybrute", CmdHF14AMfKeyBrute, IfPm3Present, "J_Run's 2nd phase of multiple sector nested authentication key recovery"}, - {"nack", CmdHf14AMfNack, IfPm3Present, "Test for Mifare NACK bug"}, - {"chk", CmdHF14AMfChk, IfPm3Present, "Check keys"}, - {"fchk", CmdHF14AMfChk_fast, IfPm3Present, "Check keys fast, targets all keys on card"}, + {"list", CmdHF14AMfList, IfPm3Iso14443a, "List Mifare history"}, + {"darkside", CmdHF14AMfDarkside, IfPm3Iso14443a, "Darkside attack. read parity error messages."}, + {"nested", CmdHF14AMfNested, IfPm3Iso14443a, "Nested attack. Test nested authentication"}, + {"hardnested", CmdHF14AMfNestedHard, IfPm3Iso14443a, "Nested attack for hardened Mifare cards"}, + {"keybrute", CmdHF14AMfKeyBrute, IfPm3Iso14443a, "J_Run's 2nd phase of multiple sector nested authentication key recovery"}, + {"nack", CmdHf14AMfNack, IfPm3Iso14443a, "Test for Mifare NACK bug"}, + {"chk", CmdHF14AMfChk, IfPm3Iso14443a, "Check keys"}, + {"fchk", CmdHF14AMfChk_fast, IfPm3Iso14443a, "Check keys fast, targets all keys on card"}, {"decrypt", CmdHf14AMfDecryptBytes, AlwaysAvailable, "[nt] [ar_enc] [at_enc] [data] - to decrypt sniff or trace"}, - {"-----------", CmdHelp, IfPm3Present, ""}, - {"dbg", CmdHF14AMfDbg, IfPm3Present, "Set default debug mode"}, - {"rdbl", CmdHF14AMfRdBl, IfPm3Present, "Read MIFARE classic block"}, - {"rdsc", CmdHF14AMfRdSc, IfPm3Present, "Read MIFARE classic sector"}, - {"dump", CmdHF14AMfDump, IfPm3Present, "Dump MIFARE classic tag to binary file"}, - {"restore", CmdHF14AMfRestore, IfPm3Present, "Restore MIFARE classic binary file to BLANK tag"}, - {"wrbl", CmdHF14AMfWrBl, IfPm3Present, "Write MIFARE classic block"}, - {"setmod", CmdHf14AMfSetMod, IfPm3Present, "Set MIFARE Classic EV1 load modulation strength"}, - {"auth4", CmdHF14AMfAuth4, IfPm3Present, "ISO14443-4 AES authentication"}, + {"-----------", CmdHelp, IfPm3Iso14443a, ""}, + {"dbg", CmdHF14AMfDbg, IfPm3Iso14443a, "Set default debug mode"}, + {"rdbl", CmdHF14AMfRdBl, IfPm3Iso14443a, "Read MIFARE classic block"}, + {"rdsc", CmdHF14AMfRdSc, IfPm3Iso14443a, "Read MIFARE classic sector"}, + {"dump", CmdHF14AMfDump, IfPm3Iso14443a, "Dump MIFARE classic tag to binary file"}, + {"restore", CmdHF14AMfRestore, IfPm3Iso14443a, "Restore MIFARE classic binary file to BLANK tag"}, + {"wrbl", CmdHF14AMfWrBl, IfPm3Iso14443a, "Write MIFARE classic block"}, + {"setmod", CmdHf14AMfSetMod, IfPm3Iso14443a, "Set MIFARE Classic EV1 load modulation strength"}, + {"auth4", CmdHF14AMfAuth4, IfPm3Iso14443a, "ISO14443-4 AES authentication"}, // {"sniff", CmdHF14AMfSniff, 0, "Sniff card-reader communication"}, - {"-----------", CmdHelp, IfPm3Present, ""}, - {"sim", CmdHF14AMfSim, IfPm3Present, "Simulate MIFARE card"}, - {"eclr", CmdHF14AMfEClear, IfPm3Present, "Clear simulator memory"}, - {"eget", CmdHF14AMfEGet, IfPm3Present, "Get simulator memory block"}, - {"eset", CmdHF14AMfESet, IfPm3Present, "Set simulator memory block"}, - {"eload", CmdHF14AMfELoad, IfPm3Present, "Load from file emul dump"}, - {"esave", CmdHF14AMfESave, IfPm3Present, "Save to file emul dump"}, - {"ecfill", CmdHF14AMfECFill, IfPm3Present, "Fill simulator memory with help of keys from simulator"}, - {"ekeyprn", CmdHF14AMfEKeyPrn, IfPm3Present, "Print keys from simulator memory"}, - {"-----------", CmdHelp, IfPm3Present, ""}, - {"csetuid", CmdHF14AMfCSetUID, IfPm3Present, "Set UID for magic Chinese card"}, - {"csetblk", CmdHF14AMfCSetBlk, IfPm3Present, "Write block - Magic Chinese card"}, - {"cgetblk", CmdHF14AMfCGetBlk, IfPm3Present, "Read block - Magic Chinese card"}, - {"cgetsc", CmdHF14AMfCGetSc, IfPm3Present, "Read sector - Magic Chinese card"}, - {"cload", CmdHF14AMfCLoad, IfPm3Present, "Load dump into magic Chinese card"}, - {"csave", CmdHF14AMfCSave, IfPm3Present, "Save dump from magic Chinese card into file or emulator"}, - {"-----------", CmdHelp, IfPm3Present, ""}, - {"mad", CmdHF14AMfMAD, IfPm3Present, "Checks and prints MAD"}, - {"ndef", CmdHFMFNDEF, IfPm3Present, "Prints NDEF records from card"}, + {"-----------", CmdHelp, IfPm3Iso14443a, ""}, + {"sim", CmdHF14AMfSim, IfPm3Iso14443a, "Simulate MIFARE card"}, + {"eclr", CmdHF14AMfEClear, IfPm3Iso14443a, "Clear simulator memory"}, + {"eget", CmdHF14AMfEGet, IfPm3Iso14443a, "Get simulator memory block"}, + {"eset", CmdHF14AMfESet, IfPm3Iso14443a, "Set simulator memory block"}, + {"eload", CmdHF14AMfELoad, IfPm3Iso14443a, "Load from file emul dump"}, + {"esave", CmdHF14AMfESave, IfPm3Iso14443a, "Save to file emul dump"}, + {"ecfill", CmdHF14AMfECFill, IfPm3Iso14443a, "Fill simulator memory with help of keys from simulator"}, + {"ekeyprn", CmdHF14AMfEKeyPrn, IfPm3Iso14443a, "Print keys from simulator memory"}, + {"-----------", CmdHelp, IfPm3Iso14443a, ""}, + {"csetuid", CmdHF14AMfCSetUID, IfPm3Iso14443a, "Set UID for magic Chinese card"}, + {"csetblk", CmdHF14AMfCSetBlk, IfPm3Iso14443a, "Write block - Magic Chinese card"}, + {"cgetblk", CmdHF14AMfCGetBlk, IfPm3Iso14443a, "Read block - Magic Chinese card"}, + {"cgetsc", CmdHF14AMfCGetSc, IfPm3Iso14443a, "Read sector - Magic Chinese card"}, + {"cload", CmdHF14AMfCLoad, IfPm3Iso14443a, "Load dump into magic Chinese card"}, + {"csave", CmdHF14AMfCSave, IfPm3Iso14443a, "Save dump from magic Chinese card into file or emulator"}, + {"-----------", CmdHelp, IfPm3Iso14443a, ""}, + {"mad", CmdHF14AMfMAD, IfPm3Iso14443a, "Checks and prints MAD"}, + {"ndef", CmdHFMFNDEF, IfPm3Iso14443a, "Prints NDEF records from card"}, - {"ice", CmdHF14AMfice, IfPm3Present, "collect Mifare Classic nonces to file"}, + {"ice", CmdHF14AMfice, IfPm3Iso14443a, "collect Mifare Classic nonces to file"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhfmfdes.c b/client/cmdhfmfdes.c index fa776fdd6..f5218ebb1 100644 --- a/client/cmdhfmfdes.c +++ b/client/cmdhfmfdes.c @@ -624,12 +624,12 @@ static int CmdHF14ADesAuth(const char *Cmd) { static command_t CommandTable[] = { - {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"info", CmdHF14ADesInfo, IfPm3Present, "Tag information"}, - {"enum", CmdHF14ADesEnumApplications, IfPm3Present, "Tries enumerate all applications"}, - {"auth", CmdHF14ADesAuth, IfPm3Present, "Tries a MIFARE DesFire Authentication"}, -// {"rdbl", CmdHF14ADesRb, 0, "Read MIFARE DesFire block"}, -// {"wrbl", CmdHF14ADesWb, 0, "write MIFARE DesFire block"}, + {"help", CmdHelp, AlwaysAvailable, "This help"}, + {"info", CmdHF14ADesInfo, IfPm3Iso14443a, "Tag information"}, + {"enum", CmdHF14ADesEnumApplications, IfPm3Iso14443a, "Tries enumerate all applications"}, + {"auth", CmdHF14ADesAuth, IfPm3Iso14443a, "Tries a MIFARE DesFire Authentication"}, +// {"rdbl", CmdHF14ADesRb, IfPm3Iso14443a, "Read MIFARE DesFire block"}, +// {"wrbl", CmdHF14ADesWb, IfPm3Iso14443a, "write MIFARE DesFire block"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhfmfdesfire.c b/client/cmdhfmfdesfire.c index 7f9ae0758..b93edd02a 100644 --- a/client/cmdhfmfdesfire.c +++ b/client/cmdhfmfdesfire.c @@ -220,10 +220,10 @@ static int CmdHF14AMfAESAuth(const char *Cmd) { // Menu Stuff //------------------------------------ static command_t CommandTable[] = { - {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"dbg", CmdHF14AMfDbg, IfPm3Present, "Set default debug mode"}, - {"des-auth", CmdHF14AMfDESAuth, IfPm3Present, "Desfire Authentication"}, - {"ev1-auth", CmdHF14AMfAESAuth, IfPm3Present, "EV1 Authentication"}, + {"help", CmdHelp, AlwaysAvailable, "This help"}, + {"dbg", CmdHF14AMfDbg, IfPm3Iso14443a, "Set default debug mode"}, + {"des-auth", CmdHF14AMfDESAuth, IfPm3Iso14443a, "Desfire Authentication"}, + {"ev1-auth", CmdHF14AMfAESAuth, IfPm3Iso14443a, "EV1 Authentication"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhfmfp.c b/client/cmdhfmfp.c index 3474a12ae..e9bff0128 100644 --- a/client/cmdhfmfp.c +++ b/client/cmdhfmfp.c @@ -840,16 +840,16 @@ static int CmdHFMFPNDEF(const char *cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"info", CmdHFMFPInfo, IfPm3Present, "Info about Mifare Plus tag"}, - {"wrp", CmdHFMFPWritePerso, IfPm3Present, "Write Perso command"}, - {"initp", CmdHFMFPInitPerso, IfPm3Present, "Fills all the card's keys"}, - {"commitp", CmdHFMFPCommitPerso, IfPm3Present, "Move card to SL1 or SL3 mode"}, - {"auth", CmdHFMFPAuth, IfPm3Present, "Authentication"}, - {"rdbl", CmdHFMFPRdbl, IfPm3Present, "Read blocks"}, - {"rdsc", CmdHFMFPRdsc, IfPm3Present, "Read sectors"}, - {"wrbl", CmdHFMFPWrbl, IfPm3Present, "Write blocks"}, - {"mad", CmdHFMFPMAD, IfPm3Present, "Checks and prints MAD"}, - {"ndef", CmdHFMFPNDEF, IfPm3Present, "Prints NDEF records from card"}, + {"info", CmdHFMFPInfo, IfPm3Iso14443a, "Info about Mifare Plus tag"}, + {"wrp", CmdHFMFPWritePerso, IfPm3Iso14443a, "Write Perso command"}, + {"initp", CmdHFMFPInitPerso, IfPm3Iso14443a, "Fills all the card's keys"}, + {"commitp", CmdHFMFPCommitPerso, IfPm3Iso14443a, "Move card to SL1 or SL3 mode"}, + {"auth", CmdHFMFPAuth, IfPm3Iso14443a, "Authentication"}, + {"rdbl", CmdHFMFPRdbl, IfPm3Iso14443a, "Read blocks"}, + {"rdsc", CmdHFMFPRdsc, IfPm3Iso14443a, "Read sectors"}, + {"wrbl", CmdHFMFPWrbl, IfPm3Iso14443a, "Write blocks"}, + {"mad", CmdHFMFPMAD, IfPm3Iso14443a, "Checks and prints MAD"}, + {"ndef", CmdHFMFPNDEF, IfPm3Iso14443a, "Prints NDEF records from card"}, {NULL, NULL, 0, NULL} }; diff --git a/client/cmdhfmfu.c b/client/cmdhfmfu.c index 5b30e2259..c38d8355b 100644 --- a/client/cmdhfmfu.c +++ b/client/cmdhfmfu.c @@ -2699,20 +2699,20 @@ static int CmdHF14AMfUPwdGen(const char *Cmd) { // Menu Stuff //------------------------------------ static command_t CommandTable[] = { - {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"dbg", CmdHF14AMfDbg, IfPm3Present, "Set default debug mode"}, - {"info", CmdHF14AMfUInfo, IfPm3Present, "Tag information"}, - {"dump", CmdHF14AMfUDump, IfPm3Present, "Dump Ultralight / Ultralight-C / NTAG tag to binary file"}, - {"restore", CmdHF14AMfURestore, IfPm3Present, "Restore a dump onto a MFU MAGIC tag"}, - {"eload", CmdHF14AMfUeLoad, IfPm3Present, "load Ultralight .eml dump file into emulator memory"}, - {"rdbl", CmdHF14AMfURdBl, IfPm3Present, "Read block"}, - {"wrbl", CmdHF14AMfUWrBl, IfPm3Present, "Write block"}, - {"cauth", CmdHF14AMfUCAuth, IfPm3Present, "Authentication - Ultralight C"}, - {"setpwd", CmdHF14AMfUCSetPwd, IfPm3Present, "Set 3des password - Ultralight-C"}, - {"setuid", CmdHF14AMfUCSetUid, IfPm3Present, "Set UID - MAGIC tags only"}, - {"sim", CmdHF14AMfUSim, IfPm3Present, "Simulate Ultralight from emulator memory"}, + {"help", CmdHelp, AlwaysAvailable, "This help"}, + {"dbg", CmdHF14AMfDbg, IfPm3Iso14443a, "Set default debug mode"}, + {"info", CmdHF14AMfUInfo, IfPm3Iso14443a, "Tag information"}, + {"dump", CmdHF14AMfUDump, IfPm3Iso14443a, "Dump Ultralight / Ultralight-C / NTAG tag to binary file"}, + {"restore", CmdHF14AMfURestore, IfPm3Iso14443a, "Restore a dump onto a MFU MAGIC tag"}, + {"eload", CmdHF14AMfUeLoad, IfPm3Iso14443a, "load Ultralight .eml dump file into emulator memory"}, + {"rdbl", CmdHF14AMfURdBl, IfPm3Iso14443a, "Read block"}, + {"wrbl", CmdHF14AMfUWrBl, IfPm3Iso14443a, "Write block"}, + {"cauth", CmdHF14AMfUCAuth, IfPm3Iso14443a, "Authentication - Ultralight C"}, + {"setpwd", CmdHF14AMfUCSetPwd, IfPm3Iso14443a, "Set 3des password - Ultralight-C"}, + {"setuid", CmdHF14AMfUCSetUid, IfPm3Iso14443a, "Set UID - MAGIC tags only"}, + {"sim", CmdHF14AMfUSim, IfPm3Iso14443a, "Simulate Ultralight from emulator memory"}, {"gen", CmdHF14AMfUGenDiverseKeys, AlwaysAvailable, "Generate 3des mifare diversified keys"}, - {"pwdgen", CmdHF14AMfUPwdGen, AlwaysAvailable, "Generate pwd from known algos"}, + {"pwdgen", CmdHF14AMfUPwdGen, AlwaysAvailable, "Generate pwd from known algos"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/cmdhftopaz.c b/client/cmdhftopaz.c index 74705441f..c594a3f15 100644 --- a/client/cmdhftopaz.c +++ b/client/cmdhftopaz.c @@ -505,11 +505,11 @@ static int CmdHelp(const char *Cmd); static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, - {"reader", CmdHFTopazReader, IfPm3Present, "Act like a Topaz reader"}, - {"sim", CmdHFTopazSim, IfPm3Present, " -- Simulate Topaz tag"}, - {"sniff", CmdHF14ASniff, IfPm3Present, "Sniff Topaz reader-tag communication"}, - {"raw", CmdHFTopazCmdRaw, IfPm3Present, "Send raw hex data to tag"}, - {"list", CmdHFTopazList, IfPm3Present, "List Topaz history"}, + {"reader", CmdHFTopazReader, IfPm3Iso14443a, "Act like a Topaz reader"}, + {"sim", CmdHFTopazSim, IfPm3Iso14443a, " -- Simulate Topaz tag"}, + {"sniff", CmdHF14ASniff, IfPm3Iso14443a, "Sniff Topaz reader-tag communication"}, + {"raw", CmdHFTopazCmdRaw, IfPm3Iso14443a, "Send raw hex data to tag"}, + {"list", CmdHFTopazList, IfPm3Iso14443a, "List Topaz history"}, {NULL, NULL, 0, NULL} }; diff --git a/client/cmdparser.c b/client/cmdparser.c index 2ecd25fc4..c7bd7a01e 100644 --- a/client/cmdparser.c +++ b/client/cmdparser.c @@ -87,6 +87,12 @@ bool IfPm3Iso14443b(void) { return pm3_capabilities.compiled_with_iso14443b; } +bool IfPm3Iso14443(void) { + if (!IfPm3Present()) + return false; + return pm3_capabilities.compiled_with_iso14443a || pm3_capabilities.compiled_with_iso14443b; +} + bool IfPm3Iso15693(void) { if (!IfPm3Present()) return false; diff --git a/client/cmdparser.h b/client/cmdparser.h index 57c5422e9..36788d226 100644 --- a/client/cmdparser.h +++ b/client/cmdparser.h @@ -31,6 +31,7 @@ bool IfPm3Hitag(void); bool IfPm3Hfsniff(void); bool IfPm3Iso14443a(void); bool IfPm3Iso14443b(void); +bool IfPm3Iso14443(void); bool IfPm3Iso15693(void); bool IfPm3Felica(void); bool IfPm3Legicrf(void);