FIX: antenna was not turn off after "hf 14b write" command. The method is using "hf 14b raw" underneath, which meant an parameter "-p" had to be removed.

This commit is contained in:
iceman1001 2015-01-09 21:45:49 +01:00
parent 3de045905f
commit cb8c358f4d

View file

@ -13,7 +13,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <string.h> #include <string.h>
#include <stdint.h> #include <stdint.h>
#include "../common/iso14443crc.h" #include "iso14443crc.h"
#include "proxmark3.h" #include "proxmark3.h"
#include "data.h" #include "data.h"
#include "graph.h" #include "graph.h"
@ -275,12 +275,12 @@ int CmdHF14BCmdRaw (const char *cmd) {
UsbCommand resp; UsbCommand resp;
uint8_t *recv; uint8_t *recv;
UsbCommand c = {CMD_ISO_14443B_COMMAND, {0, 0, 0}}; // len,recv? UsbCommand c = {CMD_ISO_14443B_COMMAND, {0, 0, 0}}; // len,recv?
uint8_t reply=1; uint8_t reply = 1;
uint8_t crc=0; uint8_t crc = 0;
uint8_t power=0; uint8_t power = 0;
char buf[5]=""; char buf[5] = "";
int i=0; int i = 0;
uint8_t data[100]; uint8_t data[100] = {0x00};
unsigned int datalen=0, temp; unsigned int datalen=0, temp;
char *hexout; char *hexout;
@ -301,15 +301,15 @@ int CmdHF14BCmdRaw (const char *cmd) {
switch (cmd[i+1]) { switch (cmd[i+1]) {
case 'r': case 'r':
case 'R': case 'R':
reply=0; reply = 0;
break; break;
case 'c': case 'c':
case 'C': case 'C':
crc=1; crc = 1;
break; break;
case 'p': case 'p':
case 'P': case 'P':
power=1; power = 1;
break; break;
default: default:
PrintAndLog("Invalid option"); PrintAndLog("Invalid option");
@ -334,15 +334,15 @@ int CmdHF14BCmdRaw (const char *cmd) {
continue; continue;
} }
PrintAndLog("Invalid char on input"); PrintAndLog("Invalid char on input");
return 0; return 1;
} }
if (datalen == 0)
{ if (datalen == 0) {
PrintAndLog("Missing data input"); PrintAndLog("Missing data input");
return 0; return 1;
} }
if(crc)
{ if(crc) {
uint8_t first, second; uint8_t first, second;
ComputeCrc14443(CRC_14443_B, data, datalen, &first, &second); ComputeCrc14443(CRC_14443_B, data, datalen, &first, &second);
data[datalen++] = first; data[datalen++] = first;
@ -448,7 +448,7 @@ int CmdHF14BWrite( const char *Cmd){
else else
PrintAndLog("[%s] Write block %02X [ %s ]", (isSrix4k)?"SRIX4K":"SRI512", blockno, sprint_hex(data,4) ); PrintAndLog("[%s] Write block %02X [ %s ]", (isSrix4k)?"SRIX4K":"SRI512", blockno, sprint_hex(data,4) );
sprintf(str, "-c -p 09 %02x %02x%02x%02x%02x", blockno, data[0], data[1], data[2], data[3]); sprintf(str, "-c 09 %02x %02x%02x%02x%02x", blockno, data[0], data[1], data[2], data[3]);
CmdHF14BCmdRaw(str); CmdHF14BCmdRaw(str);
return 0; return 0;