From: iceman1001 <iceman@iuse.se>
Date: Sun, 24 May 2015 19:51:44 +0000 (+0200)
Subject: FIX: hf mfu dump, now reads correct memory from device-side.
X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/7444d916c680c4a5b93306c21f008b3096ed66cc

FIX: hf mfu dump, now reads correct memory from device-side.
CHG: hf mfu dump - output data styled :)
---

diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c
index 47c7fc12..7eb27abe 100644
--- a/armsrc/mifarecmd.c
+++ b/armsrc/mifarecmd.c
@@ -332,9 +332,10 @@ void MifareUReadCard(uint8_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain)
 	if (MF_DBGLEVEL >= MF_DBG_EXTENDED) Dbprintf("Blocks read %d", countblocks);
 
 	countblocks *= 4;
-	cmd_send(CMD_ACK, 1, countblocks, countblocks, 0, 0);
+	cmd_send(CMD_ACK, 1, countblocks, BigBuf_max_traceLen(),0 , 0);
 	FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
 	LEDsoff();
+
 }
 
 //-----------------------------------------------------------------------------
diff --git a/client/cmdhfmfu.c b/client/cmdhfmfu.c
index e36e78cc..c02dff83 100644
--- a/client/cmdhfmfu.c
+++ b/client/cmdhfmfu.c
@@ -1273,12 +1273,13 @@ int CmdHF14AMfUDump(const char *Cmd){
 		return 1;
 	}
 
+	uint32_t startindex = resp.arg[2];
 	uint32_t bufferSize = resp.arg[1];
 	if (bufferSize > sizeof(data)) {
 		PrintAndLog("Data exceeded Buffer size!");
 		bufferSize = sizeof(data);
 	}
-	GetFromBigBuf(data, bufferSize, 0);
+	GetFromBigBuf(data, bufferSize, startindex);
 	WaitForResponse(CMD_ACK,NULL);
 
 	Pages = bufferSize/4;
@@ -1319,9 +1320,11 @@ int CmdHF14AMfUDump(const char *Cmd){
 		}
 	}
 
+	PrintAndLog("Block#    Data         lck Ascii");
+	PrintAndLog("----------------------------------");
 	for (i = 0; i < Pages; ++i) {
 		if ( i < 3 ) {
-			PrintAndLog("Block %02x:%s ", i,sprint_hex(data + i * 4, 4));
+			PrintAndLog("%02d/0x%02X | %s | |", i, i,sprint_hex(data + i * 4, 4));
 			continue;
 		}
 		switch(i){
@@ -1368,8 +1371,9 @@ int CmdHF14AMfUDump(const char *Cmd){
 			case 43: tmplockbit = bit2[9]; break;  //auth1
 			default: break;
 		}
-		PrintAndLog("Block %02X:%s [%d] {%.4s}", i, sprint_hex(data + i * 4, 4), tmplockbit, data+i*4);
+		PrintAndLog("%02d/0x%02X | %s |%d| %.4s",i , i, sprint_hex(data + i * 4, 4), tmplockbit, data+i*4);
 	}
+	PrintAndLog("----------------------------------");
 
 	// user supplied filename?
 	if (fileNlen < 1) {