]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhf.c
hf search - prelim - re-use hf mfu GetTagType...
[proxmark3-svn] / client / cmdhf.c
index 22063bbbe566e22e139524ad98ba2cc817c9b641..524d9c2e19f93a8fe74e40974d2d8c9eae30e611 100644 (file)
@@ -71,11 +71,52 @@ void annotateIso14443a(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize)
        case MIFARE_CMD_DEC:                    snprintf(exp,size,"DEC(%d)",cmd[1]); break;
        case MIFARE_CMD_RESTORE:                snprintf(exp,size,"RESTORE(%d)",cmd[1]); break;
        case MIFARE_CMD_TRANSFER:               snprintf(exp,size,"TRANSFER(%d)",cmd[1]); break;
-       case MIFARE_AUTH_KEYA:                  snprintf(exp,size,"AUTH-A(%d)",cmd[1]); break;
+       case MIFARE_AUTH_KEYA:{
+               if ( cmdsize > 3)
+                       snprintf(exp,size,"AUTH-A(%d)",cmd[1]); 
+               else
+                       //      case MIFARE_ULEV1_VERSION :  both 0x60.
+                       snprintf(exp,size,"EV1 VERSION");
+               break;
+       }
        case MIFARE_AUTH_KEYB:                  snprintf(exp,size,"AUTH-B(%d)",cmd[1]); break;
        case MIFARE_MAGICWUPC1:                 snprintf(exp,size,"MAGIC WUPC1"); break;
        case MIFARE_MAGICWUPC2:                 snprintf(exp,size,"MAGIC WUPC2"); break;
        case MIFARE_MAGICWIPEC:                 snprintf(exp,size,"MAGIC WIPEC"); break;
+       case MIFARE_ULC_AUTH_1:         snprintf(exp,size,"AUTH "); break;
+       case MIFARE_ULC_AUTH_2:         snprintf(exp,size,"AUTH_ANSW"); break;
+       case MIFARE_ULEV1_AUTH:         snprintf(exp,size,"PWD-AUTH"); break;
+       case MIFARE_ULEV1_FASTREAD:{
+               if ( cmdsize >=3 && cmd[2] < 0x21)
+                       snprintf(exp,size,"READ RANGE (%d-%d)",cmd[1],cmd[2]); 
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULC_WRITE:{
+               if ( cmd[1] < 0x21 )
+                       snprintf(exp,size,"WRITEBLOCK(%d)",cmd[1]); 
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULEV1_READ_CNT:{
+               if ( cmd[1] < 5 )
+                       snprintf(exp,size,"READ CNT(%d)",cmd[1]);
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULEV1_INCR_CNT:{
+               if ( cmd[1] < 5 )
+                       snprintf(exp,size,"INCR(%d)",cmd[1]);
+               else
+                       snprintf(exp,size,"?");
+               break;
+       }
+       case MIFARE_ULEV1_READSIG:              snprintf(exp,size,"READ_SIG"); break;
+       case MIFARE_ULEV1_CHECKTEAR:    snprintf(exp,size,"CHK_TEARING(%d)",cmd[1]); break;
+       case MIFARE_ULEV1_VCSL:         snprintf(exp,size,"VCSL"); break;
        default:                                                snprintf(exp,size,"?"); break;
        }
        return;
@@ -503,6 +544,21 @@ int CmdHFList(const char *Cmd)
        return 0;
 }
 
+int CmdHFSearch(const char *Cmd){
+       int ans = 0;
+       ans = CmdHF14AReader(Cmd);
+       if (ans > 0) return ans;
+
+       ans = CmdHF15Reader(Cmd);
+       //if (ans > 0) return ans;      
+
+       ans = CmdHF14BRead(Cmd);
+       //if (ans > 0) return ans;
+
+       ans = CmdHFiClassReader(Cmd);
+       //if (ans > 0) return ans;
+       return 0;
+}
 
 static command_t CommandTable[] = 
 {
@@ -513,10 +569,11 @@ static command_t CommandTable[] =
   {"epa",         CmdHFEPA,         1, "{ German Identification Card... }"},
   {"legic",       CmdHFLegic,       0, "{ LEGIC RFIDs... }"},
   {"iclass",      CmdHFiClass,      1, "{ ICLASS RFIDs... }"},
-  {"mf",               CmdHFMF,                1, "{ MIFARE RFIDs... }"},
-  {"mfu",                      CmdHFMFUltra,           1, "{ MIFARE Ultralight RFIDs... }"},
+  {"mf",          CmdHFMF,          1, "{ MIFARE RFIDs... }"},
+  {"mfu",         CmdHFMFUltra,     1, "{ MIFARE Ultralight RFIDs... }"},
   {"tune",        CmdHFTune,        0, "Continuously measure HF antenna tuning"},
-  {"list",       CmdHFList,         1, "List protocol data in trace buffer"},
+  {"list",        CmdHFList,        1, "List protocol data in trace buffer"},
+  {"search",      CmdHFSearch,      1, "Search for known HF tags"},
        {NULL, NULL, 0, NULL}
 };
 
Impressum, Datenschutz