]> cvs.zerfleddert.de Git - proxmark3-svn/commitdiff
FIX: 'lf hitag2' forgot to add some of @marshmellow42 's changes. Lf search should...
authoriceman1001 <iceman@iuse.se>
Fri, 20 Jan 2017 17:26:03 +0000 (18:26 +0100)
committericeman1001 <iceman@iuse.se>
Fri, 20 Jan 2017 17:26:03 +0000 (18:26 +0100)
client/cmdlfhitag.c
common/cmd.c
common/cmd.h
common/crc32.c
common/crc32.h
common/protocols.c
common/protocols.h

index a5c3b8eb29bfce37f859930f55d0c561a9ab1c03..ec290d89ed09938f3cfbda3561e1283920ebcc52 100644 (file)
@@ -222,9 +222,14 @@ int CmdLFHitagReader(const char *Cmd) {
                case RHT2F_TEST_AUTH_ATTEMPTS: {
                        // No additional parameters needed
                } break;
                case RHT2F_TEST_AUTH_ATTEMPTS: {
                        // No additional parameters needed
                } break;
+               case RHT2F_UID_ONLY: {
+                       // No additional parameters needed
+               } break;
                default: {
                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");
                        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("  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;
        }
                        return 1;
                } break;
        }
@@ -250,6 +256,9 @@ int CmdLFHitagReader(const char *Cmd) {
 
        uint32_t id = bytes_to_num(resp.d.asBytes,4);
 
 
        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));
        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);
        fwrite(resp.d.asBytes, 1, 48, f);
        fclose(f);
        PrintAndLog("Succesfully saved tag memory to [%s]",filename);
+       }
        return 0;
 }
 
        return 0;
 }
 
index 02257ac0a79a6902f3c483117c6220e172cdc3db..2111a8f58d398bb4d684fcd01399525fc31e9e12 100644 (file)
@@ -31,8 +31,6 @@
  */\r
 \r
 #include "cmd.h"\r
  */\r
 \r
 #include "cmd.h"\r
-#include "string.h"\r
-#include "proxmark3.h"\r
 \r
 bool cmd_receive(UsbCommand* cmd) {\r
  \r
 \r
 bool cmd_receive(UsbCommand* cmd) {\r
  \r
index bc69ff617b35d8fd76d1724ea0b22ad74cbf5012..2d25c5b2413cd39de2c58220c7ed0886343dcfe7 100644 (file)
@@ -36,6 +36,8 @@
 #include "common.h"\r
 #include "usb_cmd.h"\r
 #include "usb_cdc.h"\r
 #include "common.h"\r
 #include "usb_cmd.h"\r
 #include "usb_cdc.h"\r
+#include "proxmark3.h"\r
+#include "string.h"\r
 \r
 bool cmd_receive(UsbCommand* cmd);\r
 bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);\r
 \r
 bool cmd_receive(UsbCommand* cmd);\r
 bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);\r
index 69d770f4afb382efecf1c6aeabe9bf8bfb7531e5..bdf7b230f8d8e6a2db73c65db2c22c5dee33fa3a 100644 (file)
@@ -1,11 +1,8 @@
-#include <stdint.h>
-#include <stddef.h>
 #include "crc32.h"
 
 #define htole32(x) (x)
 #define CRC32_PRESET 0xFFFFFFFF
 
 #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) {
 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);
 
 void crc32_append (uint8_t *data, const size_t len) {
     crc32 (data, len, data + len);
-}
+}
\ No newline at end of file
index 7df7c79d245db165e7eff4279cc105cb59238071..8876dc9646009a88e11dc123c0b57c6c15c0b476 100644 (file)
@@ -9,7 +9,19 @@
 #ifndef __CRC32_H
 #define __CRC32_H
 
 #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);
 
 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
 #endif
index 420d575ad108ae7a64069f73d617cca467cb4aba..c78aeef4b526a4c9c8388ed315e51c3fb4d1af6f 100644 (file)
@@ -1,6 +1,3 @@
-#include <string.h>
-#include <stdint.h>
-#include <stdarg.h>
 #include "protocols.h"
 
 // ATA55xx shared presets & routines
 #include "protocols.h"
 
 // ATA55xx shared presets & routines
index 7bec6a1200cceafad3065a82e507294f122eba42..96a4b178bed0d1fd3346ea1eabb246a14373132b 100644 (file)
@@ -1,6 +1,11 @@
 #ifndef PROTOCOLS_H
 #define PROTOCOLS_H
 
 #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)
 //The following data is taken from http://www.proxmark.org/forum/viewtopic.php?pid=13501#p13501
 /*
 ISO14443A (usually NFC tags)
Impressum, Datenschutz