FIX: 'lf hitag2' forgot to add some of @marshmellow42 's changes. Lf search should works just fine now.

This commit is contained in:
iceman1001 2017-01-20 18:26:03 +01:00
parent 69784c3801
commit 1b75698cb7
7 changed files with 32 additions and 11 deletions

View file

@ -222,9 +222,14 @@ int CmdLFHitagReader(const char *Cmd) {
case RHT2F_TEST_AUTH_ATTEMPTS: {
// No additional parameters needed
} break;
case RHT2F_UID_ONLY: {
// No additional parameters needed
} break;
default: {
PrintAndLog("Error: unkown reader function %d",htf);
PrintAndLog("Hitag reader functions");
PrintAndLog("\nError: unkown reader function %d",htf);
PrintAndLog("");
PrintAndLog("Usage: hitag reader <Reader Function #>");
PrintAndLog("Reader Functions:");
PrintAndLog(" HitagS (0*)");
PrintAndLog(" 01 <nr> <ar> (Challenge) read all pages from a Hitag S tag");
PrintAndLog(" 02 <key> (set to 0 if no authentication is needed) read all pages from a Hitag S tag");
@ -234,6 +239,7 @@ int CmdLFHitagReader(const char *Cmd) {
PrintAndLog(" 22 <nr> <ar> (authentication)");
PrintAndLog(" 23 <key> (authentication) key is in format: ISK high + ISK low");
PrintAndLog(" 25 (test recorded authentications)");
PrintAndLog(" 26 just read UID");
return 1;
} break;
}
@ -250,6 +256,9 @@ int CmdLFHitagReader(const char *Cmd) {
uint32_t id = bytes_to_num(resp.d.asBytes,4);
if (htf == RHT2F_UID_ONLY){
PrintAndLog("Valid Hitag2 tag found - UID: %08x",id);
} else {
char filename[FILE_PATH_SIZE];
FILE* f = NULL;
sprintf(filename,"%08x_%04x.ht2",id,(rand() & 0xffff));
@ -263,6 +272,7 @@ int CmdLFHitagReader(const char *Cmd) {
fwrite(resp.d.asBytes, 1, 48, f);
fclose(f);
PrintAndLog("Succesfully saved tag memory to [%s]",filename);
}
return 0;
}

View file

@ -31,8 +31,6 @@
*/
#include "cmd.h"
#include "string.h"
#include "proxmark3.h"
bool cmd_receive(UsbCommand* cmd) {

View file

@ -36,6 +36,8 @@
#include "common.h"
#include "usb_cmd.h"
#include "usb_cdc.h"
#include "proxmark3.h"
#include "string.h"
bool cmd_receive(UsbCommand* cmd);
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);

View file

@ -1,11 +1,8 @@
#include <stdint.h>
#include <stddef.h>
#include "crc32.h"
#define htole32(x) (x)
#define CRC32_PRESET 0xFFFFFFFF
static void crc32_byte (uint32_t *crc, const uint8_t value);
static void crc32_byte (uint32_t *crc, const uint8_t value) {
@ -32,4 +29,4 @@ void crc32 (const uint8_t *data, const size_t len, uint8_t *crc) {
void crc32_append (uint8_t *data, const size_t len) {
crc32 (data, len, data + len);
}
}

View file

@ -9,7 +9,19 @@
#ifndef __CRC32_H
#define __CRC32_H
#include <stdint.h>
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
void crc32 (const uint8_t *data, const size_t len, uint8_t *crc);
void crc32_append (uint8_t *data, const size_t len);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -1,6 +1,3 @@
#include <string.h>
#include <stdint.h>
#include <stdarg.h>
#include "protocols.h"
// ATA55xx shared presets & routines

View file

@ -1,6 +1,11 @@
#ifndef PROTOCOLS_H
#define PROTOCOLS_H
#include <string.h>
#include <stdint.h>
#include <stdarg.h>
//The following data is taken from http://www.proxmark.org/forum/viewtopic.php?pid=13501#p13501
/*
ISO14443A (usually NFC tags)