mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-14 02:26:59 -07:00
iclass refactor/cleanup
This commit is contained in:
parent
6b659d2406
commit
4d68ec02b2
3 changed files with 319 additions and 465 deletions
|
@ -1918,7 +1918,6 @@ void iClass_Authentication(uint8_t *MAC) {
|
|||
bool isOK;
|
||||
isOK = sendCmdGetResponseWithRetries(check, sizeof(check),resp, 4, 5);
|
||||
cmd_send(CMD_ACK,isOK,0,0,0,0);
|
||||
//Dbprintf("isOK %d, Tag response : %02x%02x%02x%02x",isOK,resp[0],resp[1],resp[2],resp[3]);
|
||||
}
|
||||
bool iClass_ReadBlock(uint8_t blockNo, uint8_t keyType, uint8_t *readdata) {
|
||||
uint8_t readcmd[] = {keyType, blockNo}; //0x88, 0x00
|
||||
|
@ -1936,7 +1935,6 @@ void iClass_ReadBlk(uint8_t blockno, uint8_t keyType) {
|
|||
uint8_t readblockdata[8];
|
||||
bool isOK = false;
|
||||
isOK = iClass_ReadBlock(blockno, keyType, readblockdata);
|
||||
//Dbprintf("read block [%02x] [%02x%02x%02x%02x%02x%02x%02x%02x]",blockNo,readblockdata[0],readblockdata[1],readblockdata[2],readblockdata[3],readblockdata[4],readblockdata[5],readblockdata[6],readblockdata[7]);
|
||||
cmd_send(CMD_ACK,isOK,0,0,readblockdata,8);
|
||||
}
|
||||
|
||||
|
@ -1964,11 +1962,6 @@ void iClass_Dump(uint8_t blockno, uint8_t numblks, uint8_t keyType) {
|
|||
}
|
||||
}
|
||||
memcpy(dataout+(blkCnt*8),readblockdata,8);
|
||||
/*Dbprintf("| %02x | %02x%02x%02x%02x%02x%02x%02x%02x |",
|
||||
blockno+blkCnt, readblockdata[0], readblockdata[1], readblockdata[2],
|
||||
readblockdata[3], readblockdata[4], readblockdata[5],
|
||||
readblockdata[6], readblockdata[7]);
|
||||
*/
|
||||
}
|
||||
//return pointer to dump memory in arg3
|
||||
cmd_send(CMD_ACK,isOK,blkCnt,BigBuf_max_traceLen(),0,0);
|
||||
|
@ -1985,7 +1978,6 @@ bool iClass_WriteBlock_ext(uint8_t blockNo, uint8_t keyType, uint8_t *data) {
|
|||
uint8_t resp[10];
|
||||
bool isOK;
|
||||
isOK = sendCmdGetResponseWithRetries(write,sizeof(write),resp,sizeof(resp),5);
|
||||
//Dbprintf("reply [%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x]",resp[0],resp[1],resp[2],resp[3],resp[4],resp[5],resp[6],resp[7],resp[8],resp[9]);
|
||||
if (isOK) {
|
||||
isOK = iClass_ReadBlock(blockNo, keyType, readblockdata);
|
||||
//try again
|
||||
|
@ -1993,7 +1985,6 @@ bool iClass_WriteBlock_ext(uint8_t blockNo, uint8_t keyType, uint8_t *data) {
|
|||
isOK = iClass_ReadBlock(blockNo, keyType, readblockdata);
|
||||
}
|
||||
if (isOK) {
|
||||
//Dbprintf("read block [%02x] [%02x%02x%02x%02x%02x%02x%02x%02x]",blockNo,readblockdata[0],readblockdata[1],readblockdata[2],readblockdata[3],readblockdata[4],readblockdata[5],readblockdata[6],readblockdata[7]);
|
||||
if (memcmp(write+2,readblockdata,sizeof(readblockdata)) != 0){
|
||||
isOK=false;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -14,17 +14,26 @@
|
|||
|
||||
int CmdHFiClass(const char *Cmd);
|
||||
|
||||
int CmdHFiClassSnoop(const char *Cmd);
|
||||
int CmdHFiClassSim(const char *Cmd);
|
||||
int CmdHFiClassCalcNewKey(const char *Cmd);
|
||||
int CmdHFiClassCloneTag(const char *Cmd);
|
||||
int CmdHFiClassDecrypt(const char *Cmd);
|
||||
int CmdHFiClassEncryptBlk(const char *Cmd);
|
||||
int CmdHFiClassELoad(const char *Cmd);
|
||||
int CmdHFiClassList(const char *Cmd);
|
||||
int HFiClassReader(const char *Cmd, bool loop, bool verbose);
|
||||
int CmdHFiClassReader(const char *Cmd);
|
||||
int CmdHFiClassReader_Dump(const char *Cmd);
|
||||
int CmdHFiClassReader_Replay(const char *Cmd);
|
||||
int CmdHFiClassReadKeyFile(const char *filename);
|
||||
int CmdHFiClassWriteKeyFile(const char *Cmd);
|
||||
int CmdHFiClassReadTagFile(const char *Cmd);
|
||||
int CmdHFiClass_ReadBlock(const char *Cmd);
|
||||
int CmdHFiClass_WriteBlock(const char *Cmd);
|
||||
int CmdHFiClassCalcEKey(const char *Cmd);
|
||||
int CmdHFiClass_TestMac(const char *Cmd);
|
||||
|
||||
int CmdHFiClassManageKeys(const char *Cmd);
|
||||
int CmdHFiClass_loclass(const char *Cmd);
|
||||
int CmdHFiClassSnoop(const char *Cmd);
|
||||
int CmdHFiClassSim(const char *Cmd);
|
||||
int CmdHFiClassWriteKeyFile(const char *Cmd);
|
||||
int CmdHFiClass_WriteBlock(const char *Cmd);
|
||||
void printIclassDumpContents(uint8_t *iclass_dump, uint8_t startblock, uint8_t endblock, size_t filesize);
|
||||
void HFiClassCalcDivKey(uint8_t *CSN, uint8_t *KEY, uint8_t *div_key, bool elite);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue