X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/d798d31cbe9796559067be4c39f58bfb292f931a..e579e76873746afc2e0b38a787d626e06184b4bf:/armsrc/mifarecmd.c diff --git a/armsrc/mifarecmd.c b/armsrc/mifarecmd.c index a00c5a8b..7fa3f525 100644 --- a/armsrc/mifarecmd.c +++ b/armsrc/mifarecmd.c @@ -44,6 +44,7 @@ void MifareReadBlock(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); + set_tracing(true); LED_A_ON(); LED_B_OFF(); @@ -96,6 +97,7 @@ void MifareUC_Auth(uint8_t arg0, uint8_t *keybytes){ iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); + set_tracing(true); if(!iso14443a_select_card(NULL, NULL, NULL, true, 0)) { if (MF_DBGLEVEL >= MF_DBG_ERROR) Dbprintf("Can't select card"); @@ -131,6 +133,7 @@ void MifareUReadBlock(uint8_t arg0, uint8_t arg1, uint8_t *datain) iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); + set_tracing(true); int len = iso14443a_select_card(NULL, NULL, NULL, true, 0); if(!len) { @@ -202,7 +205,8 @@ void MifareReadSector(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); - + set_tracing(true); + LED_A_ON(); LED_B_OFF(); LED_C_OFF(); @@ -258,7 +262,8 @@ void MifareUReadCard(uint8_t arg0, uint16_t arg1, uint8_t arg2, uint8_t *datain) // free eventually allocated BigBuf memory BigBuf_free(); clear_trace(); - + set_tracing(true); + // params uint8_t blockNo = arg0; uint16_t blocks = arg1; @@ -368,7 +373,8 @@ void MifareWriteBlock(uint8_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); - + set_tracing(true); + LED_A_ON(); LED_B_OFF(); LED_C_OFF(); @@ -426,6 +432,7 @@ void MifareUWriteBlockCompat(uint8_t arg0, uint8_t *datain) LED_A_ON(); LED_B_OFF(); LED_C_OFF(); clear_trace(); + set_tracing(true); iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); if(!iso14443a_select_card(uid, NULL, NULL, true, 0)) { @@ -473,7 +480,8 @@ void MifareUWriteBlock(uint8_t arg0, uint8_t arg1, uint8_t *datain) iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); - + set_tracing(true); + if(!iso14443a_select_card(NULL, NULL, NULL, true, 0)) { if (MF_DBGLEVEL >= 1) Dbprintf("Can't select card"); OnError(0); @@ -532,7 +540,8 @@ void MifareUSetPwd(uint8_t arg0, uint8_t *datain){ iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); - + set_tracing(true); + if(!iso14443a_select_card(NULL, NULL, NULL, true, 0)) { if (MF_DBGLEVEL >= 1) Dbprintf("Can't select card"); OnError(0); @@ -750,7 +759,7 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t calibrate, uint8_t *dat uint16_t davg = 0; static uint16_t dmin, dmax; uint8_t uid[10] = {0x00}; - uint32_t cuid, nt1, nt2, nttmp, nttest, ks1; + uint32_t cuid = 0, nt1, nt2, nttmp, nttest, ks1; uint8_t par[1] = {0x00}; uint32_t target_nt[2] = {0x00}, target_ks[2] = {0x00}; @@ -759,7 +768,7 @@ void MifareNested(uint32_t arg0, uint32_t arg1, uint32_t calibrate, uint8_t *dat struct Crypto1State mpcs = {0, 0}; struct Crypto1State *pcs; pcs = &mpcs; - uint8_t receivedAnswer[MAX_MIFARE_FRAME_SIZE]; + uint8_t receivedAnswer[MAX_MIFARE_FRAME_SIZE] = {0x00}; uint32_t auth1_time, auth2_time; static uint16_t delta_time; @@ -982,35 +991,31 @@ void MifareChkKeys(uint16_t arg0, uint8_t arg1, uint8_t arg2, uint8_t *datain) LED_C_OFF(); iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); - if (clearTrace) clear_trace(); + if (clearTrace) + clear_trace(); + set_tracing(TRUE); - for (i = 0; i < keyCount; i++) { - if(mifare_classic_halt(pcs, cuid)) { + for (i = 0; i < keyCount; ++i) { + if (mifare_classic_halt(pcs, cuid)) if (MF_DBGLEVEL >= 1) Dbprintf("ChkKeys: Halt error"); - } - if(!iso14443a_select_card(uid, NULL, &cuid, true, 0)) { + if (!iso14443a_select_card(uid, NULL, &cuid, true, 0)) { if (OLD_MF_DBGLEVEL >= 1) Dbprintf("ChkKeys: Can't select card"); break; - }; + } ui64Key = bytes_to_num(datain + i * 6, 6); - if(mifare_classic_auth(pcs, cuid, blockNo, keyType, ui64Key, AUTH_FIRST)) { + if (mifare_classic_auth(pcs, cuid, blockNo, keyType, ui64Key, AUTH_FIRST)) continue; - }; isOK = 1; break; } - - // ----------------------------- crypto1 destroy crypto1_destroy(pcs); LED_B_ON(); cmd_send(CMD_ACK,isOK,0,0,datain + i * 6,6); - LED_B_OFF(); - FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); LEDsoff(); set_tracing(FALSE); @@ -1354,6 +1359,7 @@ void Mifare_DES_Auth1(uint8_t arg0, uint8_t *datain){ iso14443a_setup(FPGA_HF_ISO14443A_READER_LISTEN); clear_trace(); + set_tracing(true); int len = iso14443a_select_card(uid, NULL, &cuid, true, 0); if(!len) {