int CmdReadBlk(const char *Cmd)\r
{\r
int Block = -1;\r
-\r
sscanf(Cmd, "%d", &Block);\r
\r
if ((Block > 7) | (Block < 0)) {\r
return 1;\r
} \r
\r
- // this command fills up BigBuff\r
UsbCommand c;\r
c.cmd = CMD_T55XX_READ_BLOCK;\r
c.d.asBytes[0] = 0x00;\r
SendCommand(&c);\r
WaitForResponse(CMD_ACK, NULL);\r
\r
- uint8_t data[LF_TRACE_BUFF_SIZE] = {0x00};\r
+// uint8_t data[LF_TRACE_BUFF_SIZE] = {0x00};\r
\r
- GetFromBigBuf(data,LF_TRACE_BUFF_SIZE,3560); //3560 -- should be offset..\r
- WaitForResponseTimeout(CMD_ACK,NULL, 1500);\r
-\r
- for (int j = 0; j < LF_TRACE_BUFF_SIZE; j++) {\r
- GraphBuffer[j] = (int)data[j];\r
- }\r
- GraphTraceLen = LF_TRACE_BUFF_SIZE;\r
- CmdIceManchester(Block);\r
- RepaintGraphWindow();\r
+ // GetFromBigBuf(data,LF_TRACE_BUFF_SIZE,3560); //3560 -- should be offset..\r
+ // WaitForResponseTimeout(CMD_ACK,NULL, 1500);\r
+\r
+ // for (int j = 0; j < LF_TRACE_BUFF_SIZE; j++) {\r
+ // GraphBuffer[j] = (int)data[j];\r
+ // }\r
+ // GraphTraceLen = LF_TRACE_BUFF_SIZE;\r
+ CmdSamples("12000");\r
+ ManchesterDemod(Block);\r
+ // RepaintGraphWindow();\r
return 0;\r
}\r
\r
WaitForResponseTimeout(CMD_ACK,NULL, 1500);\r
\r
for (int j = 0; j < LF_TRACE_BUFF_SIZE; j++) {\r
- GraphBuffer[j] = ((int)data[j]) - 128;\r
+ GraphBuffer[j] = ((int)data[j]);\r
}\r
GraphTraceLen = LF_TRACE_BUFF_SIZE;\r
- CmdIceManchester(Block); \r
+ ManchesterDemod(Block); \r
RepaintGraphWindow();\r
return 0;\r
}\r
PrintAndLog("Usage: lf t55xx trace [use data from Graphbuffer]");\r
PrintAndLog(" [use data from Graphbuffer], if not set, try reading data from tag.");\r
PrintAndLog("");\r
- PrintAndLog(" sample: lf t55xx trace");\r
- PrintAndLog(" sample: lf t55xx trace 1");\r
+ PrintAndLog(" sample: lf t55xx trace");\r
+ PrintAndLog(" sample: lf t55xx trace 1");\r
return 0;\r
}\r
\r
PrintAndLog("Usage: lf t55xx info [use data from Graphbuffer]");\r
PrintAndLog(" [use data from Graphbuffer], if not set, try reading data from tag.");\r
PrintAndLog("");\r
- PrintAndLog(" sample: lf t55xx info");\r
- PrintAndLog(" sample: lf t55xx info 1");\r
+ PrintAndLog(" sample: lf t55xx info");\r
+ PrintAndLog(" sample: lf t55xx info 1");\r
return 0;\r
}\r
\r
if ( strlen(Cmd)==0){\r
CmdReadBlk("0");\r
- }\r
- \r
+ } \r
\r
uint8_t bits[1000] = {0x00};\r
uint8_t * bitstream = bits;\r
int ManchesterDemod(int block){\r
\r
int blockNum = -1;\r
+ uint8_t sizebyte = 32;\r
+ uint8_t offset = 5;\r
uint32_t blockData;\r
uint8_t bits[1000] = {0x00};\r
uint8_t * bitstream = bits;\r
\r
manchester_decode(GraphBuffer, LF_TRACE_BUFF_SIZE, bitstream); \r
- blockData = PackBits(5, 32, bitstream);\r
+ blockData = PackBits(offset, sizebyte, bitstream);\r
\r
- if ( blockNum > -1){\r
- PrintAndLog(" Block %d : 0x%08X %s", blockNum, blockData, sprint_bin(bitstream+5,32) );\r
- }else{\r
- PrintAndLog(" Decoded : 0x%08X %s", blockData, sprint_bin(bitstream+5,32) );\r
- }\r
+ if ( blockNum < 0)\r
+ PrintAndLog(" Decoded : 0x%08X %s", blockData, sprint_bin(bitstream+offset,sizebyte) );\r
+ else\r
+ PrintAndLog(" Block %d : 0x%08X %s", blockNum, blockData, sprint_bin(bitstream+offset,sizebyte) );\r
+ \r
return 0;\r
} \r
\r
{\r
{"help", CmdHelp, 1, "This help"},\r
{"rd", CmdReadBlk, 0, "<block> -- Read T55xx block data (page 0)"},\r
- {"rdPWD", CmdReadBlkPWD, 0, "<block> <password> -- Read T55xx block data with password mode"},\r
+ {"rdpwd", CmdReadBlkPWD, 0, "<block> <password> -- Read T55xx block data with password mode"},\r
{"wr", CmdWriteBlk, 0, "<data> <block> -- Write T55xx block data (page 0)"},\r
- {"wrPWD", CmdWriteBlkPWD, 0, "<data> <block> <password> -- Write T55xx block data with password"},\r
+ {"wrpwd", CmdWriteBlkPWD, 0, "<data> <block> <password> -- Write T55xx block data with password"},\r
{"trace", CmdReadTrace, 0, "[1] Read T55xx traceability data (page 1 / blk 0-1) "},\r
{"info", CmdInfo, 0, "[1] Read T55xx configuration data (page0 /blk 0)"},\r
{"dump", CmdDump, 0, "[password] Dump T55xx card block 0-7. optional with password"},\r