]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge pull request #8 from pwpiwi/master
authorholiman <martin@swende.se>
Tue, 25 Mar 2014 20:49:05 +0000 (21:49 +0100)
committerholiman <martin@swende.se>
Tue, 25 Mar 2014 20:49:05 +0000 (21:49 +0100)
add .gitignore and merge svn r852

1  2 
client/cmdhfmf.c

diff --combined client/cmdhfmf.c
index adf456f8ee21eec6646c57c442677982940c678b,2dc1ab2bf3480eb609046b3a2eb6f177f3314e6a..a26652566e812d353a6a1f739ed4a296902561f6
@@@ -142,112 -142,76 +142,112 @@@ int CmdHF14AMfWrBl(const char *Cmd
  \r
  int CmdHF14AMfUWrBl(const char *Cmd)\r
  {\r
 -        uint8_t blockNo = 0;\r
 -        uint8_t bldata[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r
 +      uint8_t blockNo = 0;\r
 +      bool chinese_card=0;\r
 +      uint8_t bldata[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r
        UsbCommand resp;\r
 -        \r
 -        if (strlen(Cmd)<3) {\r
 -                PrintAndLog("Usage:  hf mf uwrbl    <block number> <block data (8 hex symbols)>");\r
 -                PrintAndLog("        sample: hf mf uwrbl 0 01020304");\r
 -                return 0;\r
 -        }       \r
 -\r
 -        blockNo = param_get8(Cmd, 0);\r
 -        if (param_gethex(Cmd, 1, bldata, 8)) {\r
 -                PrintAndLog("Block data must include 8 HEX symbols");\r
 -                return 1;\r
 -        }\r
 -\r
 -      switch(blockNo)\r
 -      {\r
 -      case 0:\r
 -              PrintAndLog("Access Denied");\r
 -              break;\r
 -      case 1:\r
 -              PrintAndLog("Access Denied");\r
 -              break;\r
 -      case 2:\r
 -              PrintAndLog("--specialblock no:%02x", blockNo);\r
 -                PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 -                UsbCommand c = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 -                memcpy(c.d.asBytes, bldata, 4);\r
 -                SendCommand(&c);\r
 -\r
 -                if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 -                        uint8_t isOK  = resp.arg[0] & 0xff;\r
 -                        PrintAndLog("isOk:%02x", isOK);\r
 -                } else {\r
 -                        PrintAndLog("Command execute timeout");\r
 -                }\r
 -              break;\r
 -      case 3:\r
 -              PrintAndLog("--specialblock no:%02x", blockNo);\r
 -                PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 -                UsbCommand d = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 -                memcpy(d.d.asBytes,bldata, 4);\r
 -                SendCommand(&d);\r
 -\r
 -                if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 -                        uint8_t isOK  = resp.arg[0] & 0xff;\r
 -                        PrintAndLog("isOk:%02x", isOK);\r
 -                } else {\r
 -                        PrintAndLog("Command execute timeout");\r
 -                }\r
 -              break;\r
 -      default: \r
 -              PrintAndLog("--block no:%02x", blockNo);\r
 -              PrintAndLog("--data: %s", sprint_hex(bldata, 4));               \r
 -              //UsbCommand e = {CMD_MIFAREU_WRITEBL_COMPAT, {blockNo}};\r
 -              //memcpy(e.d.asBytes,bldata, 16);\r
 -              UsbCommand e = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 -                memcpy(e.d.asBytes,bldata, 4);\r
 -              SendCommand(&e);\r
 -\r
 -              if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 -                      uint8_t isOK  = resp.arg[0] & 0xff;\r
 -                      PrintAndLog("isOk:%02x", isOK);\r
 -              } else {\r
 -                      PrintAndLog("Command execute timeout");\r
 -              }\r
 -              break;\r
 +       \r
 +      if (strlen(Cmd)<3) {\r
 +              PrintAndLog("Usage:  hf mf uwrbl    <block number> <block data (8 hex symbols)> <w>");\r
 +              PrintAndLog("        sample: hf mf uwrbl 0 01020304");\r
 +              return 0;\r
 +      }      \r
 +\r
 +      blockNo = param_get8(Cmd, 0);\r
 +      if (param_gethex(Cmd, 1, bldata, 8)) {\r
 +              PrintAndLog("Block data must include 8 HEX symbols");\r
 +              return 1;\r
 +      }\r
 +       \r
 +      if (strchr(Cmd,'w') != 0) {\r
 +        chinese_card=1;\r
 +      }\r
 +       \r
 +      switch(blockNo){\r
 +              case 0:\r
 +                      if (!chinese_card){\r
 +                              PrintAndLog("Access Denied");\r
 +                      }else{\r
 +                              PrintAndLog("--specialblock no:%02x", blockNo);\r
 +                              PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 +                              UsbCommand d = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 +                              memcpy(d.d.asBytes,bldata, 4);\r
 +                              SendCommand(&d);\r
 +\r
 +                              if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 +                                      uint8_t isOK  = resp.arg[0] & 0xff;\r
 +                                      PrintAndLog("isOk:%02x", isOK);\r
 +                              } else {\r
 +                                      PrintAndLog("Command execute timeout");\r
 +                            }\r
 +                      }\r
 +                      break;\r
 +              case 1:\r
 +                        if (!chinese_card){\r
 +                              PrintAndLog("Access Denied");\r
 +                        }else{\r
 +                              PrintAndLog("--specialblock no:%02x", blockNo);\r
 +                              PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 +                              UsbCommand d = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 +                              memcpy(d.d.asBytes,bldata, 4);\r
 +                              SendCommand(&d);\r
 +\r
 +                              if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 +                              uint8_t isOK  = resp.arg[0] & 0xff;\r
 +                              PrintAndLog("isOk:%02x", isOK);\r
 +                              } else {\r
 +                                      PrintAndLog("Command execute timeout");\r
 +                              }\r
 +                      }\r
 +                      break;\r
 +              case 2:\r
 +                      if (!chinese_card){\r
 +                              PrintAndLog("Access Denied");\r
 +                      }else{\r
 +                              PrintAndLog("--specialblock no:%02x", blockNo);\r
 +                              PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 +                              UsbCommand c = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 +                              memcpy(c.d.asBytes, bldata, 4);\r
 +                              SendCommand(&c);\r
 +\r
 +                              if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 +                                      uint8_t isOK  = resp.arg[0] & 0xff;\r
 +                                      PrintAndLog("isOk:%02x", isOK);\r
 +                              } else {\r
 +                                      PrintAndLog("Command execute timeout");\r
 +                              }\r
 +                      }\r
 +                      break;\r
 +              case 3:\r
 +                      PrintAndLog("--specialblock no:%02x", blockNo);\r
 +                      PrintAndLog("--data: %s", sprint_hex(bldata, 4));\r
 +                      UsbCommand d = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 +                      memcpy(d.d.asBytes,bldata, 4);\r
 +                      SendCommand(&d);\r
 +\r
 +                      if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 +                              uint8_t isOK  = resp.arg[0] & 0xff;\r
 +                              PrintAndLog("isOk:%02x", isOK);\r
 +                      } else {\r
 +                              PrintAndLog("Command execute timeout");\r
 +                      }\r
 +                      break;\r
 +              default: \r
 +                      PrintAndLog("--block no:%02x", blockNo);\r
 +                      PrintAndLog("--data: %s", sprint_hex(bldata, 4));               \r
 +                      UsbCommand e = {CMD_MIFAREU_WRITEBL, {blockNo}};\r
 +                      memcpy(e.d.asBytes,bldata, 4);\r
 +                      SendCommand(&e);\r
 +\r
 +                      if (WaitForResponseTimeout(CMD_ACK,&resp,1500)) {\r
 +                              uint8_t isOK  = resp.arg[0] & 0xff;\r
 +                              PrintAndLog("isOk:%02x", isOK);\r
 +                      } else {\r
 +                              PrintAndLog("Command execute timeout");\r
 +                    }\r
 +                    break;\r
        }\r
 -        return 0;\r
 +      return 0;\r
  }\r
  \r
  int CmdHF14AMfRdBl(const char *Cmd)\r
@@@ -1883,8 -1847,9 +1883,9 @@@ int CmdHF14AMfSniff(const char *Cmd)
        printf("Press the key on pc keyboard to abort the client.\n");\r
        printf("-------------------------------------------------------------------------\n");\r
  \r
-   UsbCommand c = {CMD_MIFARE_SNIFFER, {0, 0, 0}};\r
-   SendCommand(&c);\r
+       UsbCommand c = {CMD_MIFARE_SNIFFER, {0, 0, 0}};\r
+       clearCommandBuffer();\r
+       SendCommand(&c);\r
  \r
        // wait cycle\r
        while (true) {\r
                                                sak = bufPtr[11];\r
                                                \r
                                                PrintAndLog("tag select uid:%s atqa:%02x %02x sak:0x%02x", sprint_hex(uid, 7), atqa[0], atqa[1], sak);\r
-                                               if (wantLogToFile) {\r
+                                               if (wantLogToFile || wantDecrypt) {\r
                                                        FillFileNameByUID(logHexFileName, uid, ".log", 7);\r
                                                        AddLogCurrentDT(logHexFileName);\r
                                                }                                               \r
                        }\r
                } // resp not NILL\r
        } // while (true)\r
-   return 0;\r
+       \r
+       return 0;\r
  }\r
  \r
  static command_t CommandTable[] =\r
Impressum, Datenschutz