#include <string.h>
#include "data.h"
#include "proxusb.h"
+#include "proxmark3.h"
#include "ui.h"
#include "cmdparser.h"
#include "common.h"
#include "util.h"
#include "hitag2.h"
+#include "sleep.h"
+#include "cmdmain.h"
static int CmdHelp(const char *Cmd);
{
uint8_t got[3000];
GetFromBigBuf(got,sizeof(got),0);
+ WaitForResponse(CMD_ACK,NULL);
+
+ char filename[256];
+ FILE* pf = NULL;
+
+ if (param_getstr(Cmd,0,filename)) {
+ if (strlen(filename) > 0) {
+ if ((pf = fopen(filename,"w")) == NULL) {
+ PrintAndLog("Error: Could not open file [%s]",filename);
+ return 1;
+ }
+ }
+ }
PrintAndLog("recorded activity:");
PrintAndLog(" ETU :rssi: who bytes");
(isResponse ? "TAG" : " "),
line);
+
+ if (pf) {
+ fprintf(pf," +%7d: %s: %s %s %s",
+ (prev < 0 ? 0 : (timestamp - prev)),
+ metricString,
+ (isResponse ? "TAG" : " "),
+ line,
+ "\n");
+ }
+
prev = timestamp;
i += (len + 9);
}
- return 0;
+
+ if (pf) {
+ PrintAndLog("Recorded activity succesfully written to file: %s", filename);
+ fclose(pf);
+ }
+
+ return 0;
}
int CmdLFHitagSnoop(const char *Cmd) {
int CmdLFHitagSim(const char *Cmd) {
UsbCommand c = {CMD_SIMULATE_HITAG};
- char filename[256];
+ char filename[256] = { 0x00 };
FILE* pf;
bool tag_mem_supplied;
num_to_bytes(param_get32ex(Cmd,1,0,16),4,htd->auth.NrAr);
num_to_bytes(param_get32ex(Cmd,2,0,16),4,htd->auth.NrAr+4);
} break;
+ case RHT2F_CRYPTO: {
+ num_to_bytes(param_get64ex(Cmd,1,0,16),6,htd->crypto.key);
+// num_to_bytes(param_get32ex(Cmd,2,0,16),4,htd->auth.NrAr+4);
+ } break;
case RHT2F_TEST_AUTH_ATTEMPTS: {
// No additional parameters needed
} break;
PrintAndLog(" Hitag2 (2*)",htf);
PrintAndLog(" 21 <password> (password mode)",htf);
PrintAndLog(" 22 <nr> <ar> (authentication)",htf);
+ PrintAndLog(" 23 <key> (authentication) key is in format: ISK high + ISK low",htf);
PrintAndLog(" 25 (test recorded authentications)",htf);
return 1;
} break;