]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdhfmf.c
LF t55xx and LF em4x commands now should manchester decode data. However t55xx...
[proxmark3-svn] / client / cmdhfmf.c
index e892b3774ee12a06ae11c1478b25d4e38fd964cb..8448731e9c7bd21588f67bb4e1c04a9660d0d3da 100644 (file)
@@ -524,7 +524,7 @@ int CmdHF14AMfDump(const char *Cmd)
        \r
        PrintAndLog("Got %d",size);\r
        \r
-       return;\r
+       return 0;\r
        \r
        if  ( size > -1) \r
                cmdp = (char)48+size;\r
@@ -1027,6 +1027,18 @@ int CmdHF14AMfNested(const char *Cmd)
 \r
 int CmdHF14AMfChk(const char *Cmd)\r
 {\r
+       if (strlen(Cmd)<3) {\r
+               PrintAndLog("Usage:  hf mf chk <block number>|<*card memory> <key type (A/B/?)> [t|d] [<key (12 hex symbols)>] [<dic (*.dic)>]");\r
+               PrintAndLog("          * - all sectors");\r
+               PrintAndLog("card memory - 0 - MINI(320 bytes), 1 - 1K, 2 - 2K, 4 - 4K, <other> - 1K");\r
+               PrintAndLog("d - write keys to binary file\n");\r
+               PrintAndLog("t - write keys to emulator memory");\r
+               PrintAndLog("      sample: hf mf chk 0 A 1234567890ab keys.dic");\r
+               PrintAndLog("              hf mf chk *1 ? t");\r
+               PrintAndLog("              hf mf chk *1 ? d");\r
+               return 0;\r
+       }\r
+       \r
        FILE * f;\r
        char filename[256]={0};\r
        char buf[13];\r
@@ -1070,16 +1082,6 @@ int CmdHF14AMfChk(const char *Cmd)
                num_to_bytes(defaultKeys[defaultKeyCounter], 6, (uint8_t*)(keyBlock + defaultKeyCounter * 6));\r
        }\r
        \r
-       if (strlen(Cmd)<3) {\r
-               PrintAndLog("Usage:  hf mf chk <block number>|<*card memory> <key type (A/B/?)> [t] [<key (12 hex symbols)>] [<dic (*.dic)>]");\r
-               PrintAndLog("          * - all sectors");\r
-               PrintAndLog("card memory - 0 - MINI(320 bytes), 1 - 1K, 2 - 2K, 4 - 4K, <other> - 1K");\r
-               PrintAndLog("d - write keys to binary file\n");\r
-               PrintAndLog("      sample: hf mf chk 0 A 1234567890ab keys.dic");\r
-               PrintAndLog("              hf mf chk *1 ? t");\r
-               return 0;\r
-       }       \r
-       \r
        if (param_getchar(Cmd, 0)=='*') {\r
                blockNo = 3;\r
                switch(param_getchar(Cmd+1, 0)) {\r
@@ -2090,49 +2092,56 @@ int GetCardSize()
        \r
        \r
        // NXP MIFARE Mini 0.3k\r
-       if ( (atqa && 0xff0f == 0x0004) && (sak == 0x09) ) return 0;\r
+       if ( ( (atqa & 0xff0f) == 0x0004) && (sak == 0x09) ) return 0;\r
        \r
        // MIFARE Classic 1K\r
-       if ( (atqa && 0xff0f == 0x0004) && (sak == 0x08) ) return 1;\r
+       if ( ((atqa & 0xff0f) == 0x0004) && (sak == 0x08) ) return 1;\r
        \r
        // MIFARE Classik 4K\r
-       if ( (atqa && 0xff0f == 0x0002) && (sak == 0x18) ) return 4;\r
+       if ( ((atqa & 0xff0f) == 0x0002) && (sak == 0x18) ) return 4;\r
        \r
        // SmartMX with MIFARE 1K emulation \r
-       if ( (atqa && 0xf0ff == 0x0004) ) return 1;\r
+       if ( ((atqa & 0xf0ff) == 0x0004) ) return 1;\r
 \r
        // SmartMX with MIFARE 4K emulation \r
-       if ( (atqa && 0xf0ff == 0x0002) ) return 4;     \r
+       if ( ((atqa & 0xf0ff) == 0x0002) ) return 4;    \r
        \r
        // Infineon MIFARE CLASSIC 1K\r
-       if ( (atqa && 0xffff == 0x0004) && (sak == 0x88) ) return 1;\r
+       if ( ((atqa & 0xffff) == 0x0004) && (sak == 0x88) ) return 1;\r
        \r
        // MFC 4K emulated by Nokia 6212 Classic\r
-       if ( (atqa && 0xffff == 0x0002) && (sak == 0x38) ) return 4;\r
+       if ( ((atqa & 0xffff) == 0x0002) && (sak == 0x38) ) return 4;\r
 \r
        // MFC 4K emulated by Nokia 6131 NFC\r
-       if ( (atqa && 0xffff == 0x0008) && (sak == 0x38) ) return 4;\r
+       if ( ((atqa & 0xffff) == 0x0008) && (sak == 0x38) ) return 4;\r
 \r
+       \r
+       PrintAndLog("BEFOOO  1K %02X",  (atqa & 0xff0f));\r
+       \r
        // MIFARE Plus (4 Byte UID or 4 Byte RID)\r
        // MIFARE Plus (7 Byte UID)\r
        if (\r
-                       (atqa && 0xffff == 0x0002) ||\r
-                       (atqa && 0xffff == 0x0004) ||\r
-                       (atqa && 0xffff == 0x0042) ||   \r
-                       (atqa && 0xffff == 0x0044) \r
+                       ((atqa & 0xffff) == 0x0002) |\r
+                       ((atqa & 0xffff) == 0x0004) |\r
+                       ((atqa & 0xffff) == 0x0042) |   \r
+                       ((atqa & 0xffff) == 0x0044) \r
                )\r
        {\r
                switch(sak){\r
                        case 0x08:\r
-                       case 0x10:\r
+                       case 0x10: {\r
                        //case 0x20:\r
+                               PrintAndLog("2");\r
                                return 2;\r
                                break;\r
+                               }\r
                        case 0x11:\r
-                       case 0x18:\r
+                       case 0x18:{\r
                        //case 0x20:\r
+                               PrintAndLog("4");\r
                                return 4;\r
                                break;\r
+                               }\r
                }\r
        }\r
        \r
Impressum, Datenschutz