VPATH = ../common
OBJDIR = obj
-LDLIBS = -L/opt/local/lib -L/usr/local/lib -lusb -lreadline -lpthread
+LDLIBS = -L/opt/local/lib -L/usr/local/lib -lreadline -lpthread
LDFLAGS = $(COMMON_FLAGS)
CFLAGS = -std=c99 -I. -I../include -I../common -I/opt/local/include -Wall -Wno-unused-function $(COMMON_FLAGS) -g -O4
QTGUI = guidummy.o
endif
-CMDSRCS = \
- nonce2key/crapto1.c\
- nonce2key/crypto1.c\
- nonce2key/nonce2key.c\
+CORESRCS = uart.c \
+ util.c \
+ sleep.c
+
+
+CMDSRCS = nonce2key/crapto1.c\
+ nonce2key/crypto1.c\
+ nonce2key/nonce2key.c\
mifarehost.c\
crc16.c \
iso14443crc.c \
data.c \
graph.c \
ui.c \
- uart.c \
- util.c \
cmddata.c \
cmdhf.c \
cmdhf14a.c \
cmdlft55xx.c \
cmdlfpcf7931.c
+COREOBJS = $(CORESRCS:%.c=$(OBJDIR)/%.o)
CMDOBJS = $(CMDSRCS:%.c=$(OBJDIR)/%.o)
RM = rm -f
all-static: snooper cli flasher
proxmark3: LDLIBS+=$(QTLDLIBS)
-proxmark3: $(OBJDIR)/proxmark3.o $(CMDOBJS) $(OBJDIR)/uart.o $(QTGUI)
+proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUI)
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-snooper: $(OBJDIR)/snooper.o $(CMDOBJS) $(OBJDIR)/uart.o $(OBJDIR)/guidummy.o
+snooper: $(OBJDIR)/snooper.o $(COREOBJS) $(CMDOBJS) $(OBJDIR)/guidummy.o
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-cli: $(OBJDIR)/cli.o $(CMDOBJS) $(OBJDIR)/uart.o $(OBJDIR)/guidummy.o
+cli: $(OBJDIR)/cli.o $(COREOBJS) $(CMDOBJS) $(OBJDIR)/guidummy.o
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(OBJDIR)/uart.o
+flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS)
$(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
$(OBJDIR)/%.o: %.c
#include "common.h"
#include "cmdmain.h"
#include "sleep.h"
-
#include "cmdhfepa.h"
static int CmdHelp(const char *Cmd);
// Read key file\r
\r
for (i=0 ; i<16 ; i++) {\r
- fread ( keyA[i], 1, 6, fin );\r
+ if (fread( keyA[i], 1, 6, fin ) == 0) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
}\r
for (i=0 ; i<16 ; i++) {\r
- fread ( keyB[i], 1, 6, fin );\r
+ if (fread( keyB[i], 1, 6, fin ) == 0) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
}\r
\r
// Read access rights to sectors\r
}\r
\r
for (i=0 ; i<16 ; i++) {\r
- fread(keyA[i], 1, 6, fkeys);\r
+ if (fread(keyA[i], 1, 6, fkeys) == 0) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
}\r
for (i=0 ; i<16 ; i++) {\r
- fread(keyB[i], 1, 6, fkeys);\r
+ if (fread(keyB[i], 1, 6, fkeys) == 0) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
}\r
\r
PrintAndLog("Restoring dumpdata.bin to card");\r
UsbCommand c = {CMD_MIFARE_WRITEBL, {i*4 + j, keyType, 0}};\r
memcpy(c.d.asBytes, key, 6);\r
\r
- fread(bldata, 1, 16, fdump);\r
+ if (fread(bldata, 1, 16, fdump) == 0) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
\r
if (j == 3) {\r
bldata[0] = (keyA[i][0]);\r
if ( (f = fopen( filename , "r")) ) {\r
while( !feof(f) ){\r
memset(buf, 0, sizeof(buf));\r
- fgets(buf, sizeof(buf), f);\r
- \r
+ if (fgets(buf, sizeof(buf), f) == NULL) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
+ \r
if (strlen(buf) < 12 || buf[11] == '\n')\r
continue;\r
\r
blockNum = 0;\r
while(!feof(f)){\r
memset(buf, 0, sizeof(buf));\r
- fgets(buf, sizeof(buf), f);\r
+ if (fgets(buf, sizeof(buf), f) == NULL) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
\r
if (strlen(buf) < 32){\r
if(strlen(buf) && feof(f))\r
flags = CSETBLOCK_INIT_FIELD + CSETBLOCK_WUPC;\r
while(!feof(f)){\r
memset(buf, 0, sizeof(buf));\r
- fgets(buf, sizeof(buf), f);\r
+ if (fgets(buf, sizeof(buf), f) == NULL) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
\r
if (strlen(buf) < 32){\r
if(strlen(buf) && feof(f))\r
return 1;
}
tag_mem_supplied = true;
- fread(c.d.asBytes,48,1,pf);
+ if (fread(c.d.asBytes,48,1,pf) == 0) {
+ PrintAndLog("Error: File reading error");
+ return 1;
+ }
fclose(pf);
} else {
tag_mem_supplied = false;
blockNum = 0;\r
while(!feof(f)){\r
memset(buf, 0, sizeof(buf));\r
- fgets(buf, sizeof(buf), f);\r
+ if (fgets(buf, sizeof(buf), f) == NULL) {\r
+ PrintAndLog("File reading error.");\r
+ return 2;\r
+ }\r
\r
if (strlen(buf) < 32){\r
if (feof(f)) break;\r
#include "uart.h"
#include "messages.h"
#include "ui.h"
+#include "sleep.h"
static serial_port sp;
static UsbCommand txcmd;
#define lli PRIi64
#define hhu PRIu8
-#include <usb.h>
#include "usb_cmd.h"
#define PROXPROMPT "proxmark3> "
--- /dev/null
+//-----------------------------------------------------------------------------
+// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
+//
+// This code is licensed to you under the terms of the GNU GPL, version 2 or,
+// at your option, any later version. See the LICENSE.txt file for the text of
+// the license.
+//-----------------------------------------------------------------------------
+// platform-independant sleep macros
+//-----------------------------------------------------------------------------
+
+#ifndef _WIN32
+
+#define _POSIX_C_SOURCE 199309L
+#include "sleep.h"
+#include <time.h>
+#include <stdio.h>
+#include <sys/time.h>
+#include <errno.h>
+
+void nsleep(uint64_t n) {
+ struct timespec timeout;
+ timeout.tv_sec = n/1000000000;
+ timeout.tv_nsec = n%1000000000;
+ while (nanosleep(&timeout, &timeout) && errno == EINTR);
+}
+
+#endif // _WIN32
+
#define SLEEP_H__
#ifdef _WIN32
-#include <windows.h>
-#define sleep(n) Sleep(1000 * n)
-#define msleep(n) Sleep(n)
+# include <windows.h>
+# define sleep(n) Sleep(1000 * n)
+# define msleep(n) Sleep(n)
#else
-#include <unistd.h>
-#define msleep(n) usleep(1000 * n)
-#endif
+# include <inttypes.h>
+# include <unistd.h>
+ void nsleep(uint64_t n);
+# define msleep(n) nsleep(1000000 * n)
+# define usleep(n) nsleep(1000 * n)
+#endif // _WIN32
-#endif
+#endif // SLEEP_H__
#include <ctype.h>
#include <time.h>
-#define MIN(a, b) (((a) < (b)) ? (a) : (b))
-#define MAX(a, b) (((a) > (b)) ? (a) : (b))
+#ifndef MIN
+# define MIN(a, b) (((a) < (b)) ? (a) : (b))
+#endif
+#ifndef MAX
+# define MAX(a, b) (((a) > (b)) ? (a) : (b))
+#endif
int ukbhit(void);
#include <at91sam7s512.h>
typedef unsigned char byte_t;
-#define MIN(a, b) (((a) < (b)) ? (a) : (b))
-#define MAX(a, b) (((a) > (b)) ? (a) : (b))
+#ifndef MIN
+# define MIN(a, b) (((a) < (b)) ? (a) : (b))
+#endif
+#ifndef MAX
+# define MAX(a, b) (((a) > (b)) ? (a) : (b))
+#endif
#endif