]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
Fixed bug with iclass dump which prevented saving to file
authorMartin Holst Swende <martin@swende.se>
Sat, 14 Feb 2015 19:42:23 +0000 (20:42 +0100)
committerMartin Holst Swende <martin@swende.se>
Sat, 14 Feb 2015 19:42:23 +0000 (20:42 +0100)
armsrc/iclass.c
client/cmdhficlass.c

index 41c9b8b51e6b700771e17ff1bd31de5c077e3c4d..2a0ba0d2f8d7559017991132ff5e808090bd656d 100644 (file)
@@ -1704,7 +1704,7 @@ void ReaderIClass_Replay(uint8_t arg0, uint8_t *MAC) {
                //Set card_data to all zeroes, we'll fill it with data
                memset(card_data,0x0,USB_CMD_DATA_SIZE);
                uint8_t failedRead =0;
-               uint8_t stored_data_length =0;
+               uint32_t stored_data_length =0;
                //then loop around remaining blocks
                for(int block=0; block < cardsize; block++){
 
@@ -1723,7 +1723,6 @@ void ReaderIClass_Replay(uint8_t arg0, uint8_t *MAC) {
                                //Fill up the buffer
                                memcpy(card_data+stored_data_length,resp,8);
                                stored_data_length += 8;
-
                                if(stored_data_length +8 > USB_CMD_DATA_SIZE)
                                {//Time to send this off and start afresh
                                        cmd_send(CMD_ACK,
@@ -1742,6 +1741,7 @@ void ReaderIClass_Replay(uint8_t arg0, uint8_t *MAC) {
                                Dbprintf("Failed to dump block %d", block);
                        }
                }
+
                //Send off any remaining data
                if(stored_data_length > 0)
                {
index 03b39021e02991a51db554a6a571d767298b5220..b458ae03bc73f3947f4a16d91a04a86e80792501 100644 (file)
@@ -329,8 +329,8 @@ int CmdHFiClassReader_Dump(const char *Cmd)
        printvar("MAC", MAC, 4);
 
        uint8_t iclass_data[32000] = {0};
-       uint8_t iclass_datalen = 0;
-       uint8_t iclass_blocksFailed = 0;//Set to 1 if dump was incomplete
+       uint32_t iclass_datalen = 0;
+       uint32_t iclass_blocksFailed = 0;//Set to 1 if dump was incomplete
 
        UsbCommand d = {CMD_READER_ICLASS_REPLAY, {readerType}};
        memcpy(d.d.asBytes, MAC, 4);
@@ -346,11 +346,11 @@ int CmdHFiClassReader_Dump(const char *Cmd)
                }
                if(WaitForResponseTimeout(CMD_ACK,&resp,4500))
                {
-                       uint64_t dataLength = resp.arg[0];
+                       uint32_t dataLength = resp.arg[0];
                        iclass_blocksFailed |= resp.arg[1];
-
                        if(dataLength > 0)
                        {
+                               PrintAndLog("Got %d bytes data (total so far %d)" ,dataLength,iclass_datalen);
                                memcpy(iclass_data, resp.d.asBytes,dataLength);
                                iclass_datalen += dataLength;
                        }else
@@ -368,7 +368,6 @@ int CmdHFiClassReader_Dump(const char *Cmd)
                                                         CSN[0],CSN[1],CSN[2],CSN[3],
                                                         CSN[4],CSN[5],CSN[6],CSN[7]);
                                        saveFile(filename,"bin",iclass_data, iclass_datalen );
-
                                }
                                //Aaaand we're finished
                                return 0;
Impressum, Datenschutz