]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
change `ul_switch_off_field` to `DropField` fix #473 474/head
authormerlokk <olegmsn@gmail.com>
Fri, 10 Nov 2017 23:19:34 +0000 (01:19 +0200)
committermerlokk <olegmsn@gmail.com>
Fri, 10 Nov 2017 23:19:34 +0000 (01:19 +0200)
client/cmdhficlass.c
client/cmdhfmfu.c
client/cmdhfmfu.h

index d02eff8d6277a6958584fb596dfe18b9d9e1a24c..63634cd403e1dcf98d4fc7b87304c4d26f700f1f 100644 (file)
@@ -683,7 +683,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
        SendCommand(&c);
        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                PrintAndLog("Command execute timeout");
        SendCommand(&c);
        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                PrintAndLog("Command execute timeout");
-               ul_switch_off_field();
+               DropField();
                return 0;
        }
        uint8_t readStatus = resp.arg[0] & 0xff;
                return 0;
        }
        uint8_t readStatus = resp.arg[0] & 0xff;
@@ -691,7 +691,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
 
        if(readStatus == 0){
                PrintAndLog("No tag found...");
 
        if(readStatus == 0){
                PrintAndLog("No tag found...");
-               ul_switch_off_field();
+               DropField();
                return 0;
        }
        if( readStatus & (FLAG_ICLASS_READER_CSN|FLAG_ICLASS_READER_CONF|FLAG_ICLASS_READER_CC)){
                return 0;
        }
        if( readStatus & (FLAG_ICLASS_READER_CSN|FLAG_ICLASS_READER_CONF|FLAG_ICLASS_READER_CC)){
@@ -702,12 +702,12 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
                // large memory - not able to dump pages currently
                if (numblks > maxBlk) numblks = maxBlk;
        }
                // large memory - not able to dump pages currently
                if (numblks > maxBlk) numblks = maxBlk;
        }
-       ul_switch_off_field();
+       DropField();
        // authenticate debit key and get div_key - later store in dump block 3
        if (!select_and_auth(KEY, MAC, div_key, use_credit_key, elite, rawkey, false)){
                //try twice - for some reason it sometimes fails the first time...
                if (!select_and_auth(KEY, MAC, div_key, use_credit_key, elite, rawkey, false)){
        // authenticate debit key and get div_key - later store in dump block 3
        if (!select_and_auth(KEY, MAC, div_key, use_credit_key, elite, rawkey, false)){
                //try twice - for some reason it sometimes fails the first time...
                if (!select_and_auth(KEY, MAC, div_key, use_credit_key, elite, rawkey, false)){
-                       ul_switch_off_field();
+                       DropField();
                        return 0;
                }
        }
                        return 0;
                }
        }
@@ -718,14 +718,14 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
        SendCommand(&w);
        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                PrintAndLog("Command execute time-out 1");
        SendCommand(&w);
        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                PrintAndLog("Command execute time-out 1");
-               ul_switch_off_field();
+               DropField();
                return 1;
        }
        uint32_t blocksRead = resp.arg[1];
        uint8_t isOK = resp.arg[0] & 0xff;
        if (!isOK && !blocksRead) {
                PrintAndLog("Read Block Failed");
                return 1;
        }
        uint32_t blocksRead = resp.arg[1];
        uint8_t isOK = resp.arg[0] & 0xff;
        if (!isOK && !blocksRead) {
                PrintAndLog("Read Block Failed");
-               ul_switch_off_field();
+               DropField();
                return 0;
        }
        uint32_t startindex = resp.arg[2];
                return 0;
        }
        uint32_t startindex = resp.arg[2];
@@ -741,13 +741,13 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
        // try AA2
        if (have_credit_key) {
                //turn off hf field before authenticating with different key
        // try AA2
        if (have_credit_key) {
                //turn off hf field before authenticating with different key
-               ul_switch_off_field();
+               DropField();
                memset(MAC,0,4);
                // AA2 authenticate credit key and git c_div_key - later store in dump block 4
                if (!select_and_auth(CreditKEY, MAC, c_div_key, true, false, false, false)){
                        //try twice - for some reason it sometimes fails the first time...
                        if (!select_and_auth(CreditKEY, MAC, c_div_key, true, false, false, false)){
                memset(MAC,0,4);
                // AA2 authenticate credit key and git c_div_key - later store in dump block 4
                if (!select_and_auth(CreditKEY, MAC, c_div_key, true, false, false, false)){
                        //try twice - for some reason it sometimes fails the first time...
                        if (!select_and_auth(CreditKEY, MAC, c_div_key, true, false, false, false)){
-                               ul_switch_off_field();
+                               DropField();
                                return 0;
                        }
                }
                                return 0;
                        }
                }
@@ -760,14 +760,14 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
                        SendCommand(&w);
                        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                                PrintAndLog("Command execute timeout 2");
                        SendCommand(&w);
                        if (!WaitForResponseTimeout(CMD_ACK, &resp, 4500)) {
                                PrintAndLog("Command execute timeout 2");
-                               ul_switch_off_field();
+                               DropField();
                                return 0;
                        }
                        uint8_t isOK = resp.arg[0] & 0xff;
                        blocksRead = resp.arg[1];
                        if (!isOK && !blocksRead) {
                                PrintAndLog("Read Block Failed 2");
                                return 0;
                        }
                        uint8_t isOK = resp.arg[0] & 0xff;
                        blocksRead = resp.arg[1];
                        if (!isOK && !blocksRead) {
                                PrintAndLog("Read Block Failed 2");
-                               ul_switch_off_field();
+                               DropField();
                                return 0;
                        }               
 
                                return 0;
                        }               
 
@@ -782,7 +782,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
 
                        gotBytes += blocksRead*8;                       
                } else { //field is still on - turn it off...
 
                        gotBytes += blocksRead*8;                       
                } else { //field is still on - turn it off...
-                       ul_switch_off_field();
+                       DropField();
                }
        }
 
                }
        }
 
@@ -930,7 +930,7 @@ int CmdHFiClass_WriteBlock(const char *Cmd) {
 
        if (cmdp < 6) return usage_hf_iclass_writeblock();
        int ans = WriteBlock(blockno, bldata, KEY, use_credit_key, elite, rawkey, true);
 
        if (cmdp < 6) return usage_hf_iclass_writeblock();
        int ans = WriteBlock(blockno, bldata, KEY, use_credit_key, elite, rawkey, true);
-       ul_switch_off_field();
+       DropField();
        return ans;
 }
 
        return ans;
 }
 
index c95fa20b9eb1e8fb5ff404a3f98bd33e4350a814..7dd344e8a0dc62ff95388dea4632e53a33f66af9 100644 (file)
@@ -153,7 +153,7 @@ static int ul_select( iso14a_card_select_t *card ){
        ans = WaitForResponseTimeout(CMD_ACK, &resp, 1500);
        if (!ans || resp.arg[0] < 1) {
                PrintAndLog("iso14443a card select failed");
        ans = WaitForResponseTimeout(CMD_ACK, &resp, 1500);
        if (!ans || resp.arg[0] < 1) {
                PrintAndLog("iso14443a card select failed");
-               ul_switch_off_field();
+               DropField();
                return 0;
        }
 
                return 0;
        }
 
@@ -226,7 +226,7 @@ static int ul_auth_select( iso14a_card_select_t *card, TagTypeUL_t tagtype, bool
 
                if (hasAuthKey) {
                        if (ulev1_requestAuthentication(authenticationkey, pack, packSize) < 1) {
 
                if (hasAuthKey) {
                        if (ulev1_requestAuthentication(authenticationkey, pack, packSize) < 1) {
-                               ul_switch_off_field();
+                               DropField();
                                PrintAndLog("Error: Authentication Failed UL-EV1/NTAG");
                                return 0;
                        }
                                PrintAndLog("Error: Authentication Failed UL-EV1/NTAG");
                                return 0;
                        }
@@ -550,7 +550,7 @@ static int ulc_magic_test(){
        } else {
                returnValue = UL;
        }       
        } else {
                returnValue = UL;
        }       
-       ul_switch_off_field();
+       DropField();
        return returnValue;
 }
 */
        return returnValue;
 }
 */
@@ -563,7 +563,7 @@ static int ul_magic_test(){
        if ( !ul_select(&card) ) 
                return UL_ERROR;
        int status = ul_comp_write(0, NULL, 0);
        if ( !ul_select(&card) ) 
                return UL_ERROR;
        int status = ul_comp_write(0, NULL, 0);
-       ul_switch_off_field();
+       DropField();
        if ( status == 0 ) 
                return MAGIC;
        return 0;
        if ( status == 0 ) 
                return MAGIC;
        return 0;
@@ -582,14 +582,14 @@ uint32_t GetHF14AMfU_Type(void){
        // Ultralight - ATQA / SAK 
        if ( card.atqa[1] != 0x00 || card.atqa[0] != 0x44 || card.sak != 0x00 ) {
                PrintAndLog("Tag is not Ultralight | NTAG | MY-D  [ATQA: %02X %02X SAK: %02X]\n", card.atqa[1], card.atqa[0], card.sak);
        // Ultralight - ATQA / SAK 
        if ( card.atqa[1] != 0x00 || card.atqa[0] != 0x44 || card.sak != 0x00 ) {
                PrintAndLog("Tag is not Ultralight | NTAG | MY-D  [ATQA: %02X %02X SAK: %02X]\n", card.atqa[1], card.atqa[0], card.sak);
-               ul_switch_off_field();
+               DropField();
                return UL_ERROR;
        }
 
        if ( card.uid[0] != 0x05) {
 
                len  = ulev1_getVersion(version, sizeof(version));
                return UL_ERROR;
        }
 
        if ( card.uid[0] != 0x05) {
 
                len  = ulev1_getVersion(version, sizeof(version));
-               ul_switch_off_field();
+               DropField();
 
                switch (len) {
                        case 0x0A: {
 
                switch (len) {
                        case 0x0A: {
@@ -629,7 +629,7 @@ uint32_t GetHF14AMfU_Type(void){
                        // do UL_C check first...
                        uint8_t nonce[11] = {0x00};
                        status = ulc_requestAuthentication(nonce, sizeof(nonce));
                        // do UL_C check first...
                        uint8_t nonce[11] = {0x00};
                        status = ulc_requestAuthentication(nonce, sizeof(nonce));
-                       ul_switch_off_field();
+                       DropField();
                        if (status > 1) {
                                tagtype = UL_C;
                        } else { 
                        if (status > 1) {
                                tagtype = UL_C;
                        } else { 
@@ -650,15 +650,15 @@ uint32_t GetHF14AMfU_Type(void){
                                                tagtype = UNKNOWN;
                                        }
                                }
                                                tagtype = UNKNOWN;
                                        }
                                }
-                               ul_switch_off_field();
+                               DropField();
                        }
                }
                if (tagtype & UL) {
                        tagtype = ul_fudan_check(); 
                        }
                }
                if (tagtype & UL) {
                        tagtype = ul_fudan_check(); 
-                       ul_switch_off_field();
+                       DropField();
                }
        } else {
                }
        } else {
-               ul_switch_off_field();
+               DropField();
                // Infinition MY-D tests   Exam high nibble 
                uint8_t nib = (card.uid[1] & 0xf0) >> 4;
                switch ( nib ){
                // Infinition MY-D tests   Exam high nibble 
                uint8_t nib = (card.uid[1] & 0xf0) >> 4;
                switch ( nib ){
@@ -745,7 +745,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
        // read pages 0,1,2,3 (should read 4pages)
        status = ul_read(0, data, sizeof(data));
        if ( status == -1 ) {
        // read pages 0,1,2,3 (should read 4pages)
        status = ul_read(0, data, sizeof(data));
        if ( status == -1 ) {
-               ul_switch_off_field();
+               DropField();
                PrintAndLog("Error: tag didn't answer to READ");
                return status;
        } else if (status == 16) {
                PrintAndLog("Error: tag didn't answer to READ");
                return status;
        } else if (status == 16) {
@@ -763,7 +763,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
                status = ul_read(0x28, ulc_conf, sizeof(ulc_conf));
                if ( status == -1 ){
                        PrintAndLog("Error: tag didn't answer to READ UL-C");
                status = ul_read(0x28, ulc_conf, sizeof(ulc_conf));
                if ( status == -1 ){
                        PrintAndLog("Error: tag didn't answer to READ UL-C");
-                       ul_switch_off_field();
+                       DropField();
                        return status;
                } 
                if (status == 16) ulc_print_configuration(ulc_conf);
                        return status;
                } 
                if (status == 16) ulc_print_configuration(ulc_conf);
@@ -774,14 +774,14 @@ int CmdHF14AMfUInfo(const char *Cmd){
                        uint8_t ulc_deskey[16] = {0x00};
                        status = ul_read(0x2C, ulc_deskey, sizeof(ulc_deskey));
                        if ( status == -1 ) {
                        uint8_t ulc_deskey[16] = {0x00};
                        status = ul_read(0x2C, ulc_deskey, sizeof(ulc_deskey));
                        if ( status == -1 ) {
-                               ul_switch_off_field();
+                               DropField();
                                PrintAndLog("Error: tag didn't answer to READ magic");
                                return status;
                        }
                        if (status == 16) ulc_print_3deskey(ulc_deskey);
 
                } else {
                                PrintAndLog("Error: tag didn't answer to READ magic");
                                return status;
                        }
                        if (status == 16) ulc_print_3deskey(ulc_deskey);
 
                } else {
-                       ul_switch_off_field();
+                       DropField();
                        // if we called info with key, just return 
                        if ( hasAuthKey ) return 1;
 
                        // if we called info with key, just return 
                        if ( hasAuthKey ) return 1;
 
@@ -816,7 +816,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
                status = ulev1_readSignature( ulev1_signature, sizeof(ulev1_signature));
                if ( status == -1 ) {
                        PrintAndLog("Error: tag didn't answer to READ SIGNATURE");
                status = ulev1_readSignature( ulev1_signature, sizeof(ulev1_signature));
                if ( status == -1 ) {
                        PrintAndLog("Error: tag didn't answer to READ SIGNATURE");
-                       ul_switch_off_field();
+                       DropField();
                        return status;
                }
                if (status == 32) ulev1_print_signature( ulev1_signature, sizeof(ulev1_signature));
                        return status;
                }
                if (status == 32) ulev1_print_signature( ulev1_signature, sizeof(ulev1_signature));
@@ -831,7 +831,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
                status  = ulev1_getVersion(version, sizeof(version));
                if ( status == -1 ) {
                        PrintAndLog("Error: tag didn't answer to GETVERSION");
                status  = ulev1_getVersion(version, sizeof(version));
                if ( status == -1 ) {
                        PrintAndLog("Error: tag didn't answer to GETVERSION");
-                       ul_switch_off_field();
+                       DropField();
                        return status;
                } else if (status == 10) {
                        ulev1_print_version(version);
                        return status;
                } else if (status == 10) {
                        ulev1_print_version(version);
@@ -851,7 +851,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
                        status = ul_read(startconfigblock, ulev1_conf, sizeof(ulev1_conf));
                        if ( status == -1 ) {
                                PrintAndLog("Error: tag didn't answer to READ EV1");
                        status = ul_read(startconfigblock, ulev1_conf, sizeof(ulev1_conf));
                        if ( status == -1 ) {
                                PrintAndLog("Error: tag didn't answer to READ EV1");
-                               ul_switch_off_field();
+                               DropField();
                                return status;
                        } else if (status == 16) {
                                // save AUTHENTICATION LIMITS for later:
                                return status;
                        } else if (status == 16) {
                                // save AUTHENTICATION LIMITS for later:
@@ -881,7 +881,7 @@ int CmdHF14AMfUInfo(const char *Cmd){
                }
        }
 
                }
        }
 
-       ul_switch_off_field();
+       DropField();
        if (locked) PrintAndLog("\nTag appears to be locked, try using the key to get more info");
        PrintAndLog("");
        return 1;
        if (locked) PrintAndLog("\nTag appears to be locked, try using the key to get more info");
        PrintAndLog("");
        return 1;
index a5e9f95c179ff61452bfeba1b7e41a1780d60f3d..43e71d96f4931ed54755b79f931114713df12780 100644 (file)
@@ -16,7 +16,6 @@ int CmdHF14AMfUInfo(const char *Cmd);
 
 uint32_t GetHF14AMfU_Type(void);
 int ul_print_type(uint32_t tagtype, uint8_t spacer);
 
 uint32_t GetHF14AMfU_Type(void);
 int ul_print_type(uint32_t tagtype, uint8_t spacer);
-#define ul_switch_off_field DropField
 
 int usage_hf_mfu_dump(void);
 int usage_hf_mfu_info(void);
 
 int usage_hf_mfu_dump(void);
 int usage_hf_mfu_info(void);
Impressum, Datenschutz