]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Update/cleanup Makefiles (#265)
authorpwpiwi <pwpiwi@users.noreply.github.com>
Fri, 31 Mar 2017 14:04:04 +0000 (16:04 +0200)
committerGitHub <noreply@github.com>
Fri, 31 Mar 2017 14:04:04 +0000 (16:04 +0200)
- add new target "make mfkey" to build mfkey32 and mfkey64
- include above when "make all"
- fix Qt detection for Kali Linux
- create and use dependency files when building client
- create client/lualibs/usb_cmd.lua from include/usb_cmd.h when building client
- add Windows *.exe files with "make tarbin"
- For the time being don't include Makefile.common in Makefile and client/Makefile
- set com3 as default flashing port for Windows (including mingw)
- remove static targets snooper and cli. Remove their sources as well.

Makefile
client/Makefile
client/cli.c [deleted file]
client/guidummy.c [deleted file]
client/guidummy.cpp [new file with mode: 0644]
client/lualibs/commands.lua
client/lualibs/usb_cmd.lua [new file with mode: 0644]
client/snooper.c [deleted file]
client/usb_cmd_h2lua.awk [new file with mode: 0644]

index bafd816102dc3cd1156edc8a54e4cfb5046a149a..1ab83f9e681c4448aac0b9789174a26d3130e859 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,40 @@
-include common/Makefile.common
-
+GZIP=gzip
+# Windows' echo echos its input verbatim, on Posix there is some
+#  amount of shell command line parsing going on. echo "" on 
+#  Windows yields literal "", on Linux yields an empty line
+ifeq ($(shell echo ""),)
+# This is probably a proper system, so we can use uname
+DELETE=rm -rf
+FLASH_TOOL=client/flasher
+platform=$(shell uname)
+ifneq (,$(findstring MINGW,$(platform)))
+FLASH_PORT=com3
+PATHSEP=\\#
+else
 FLASH_PORT=/dev/ttyACM0
 FLASH_PORT=/dev/ttyACM0
+PATHSEP=/
+endif
+else
+# Assume that we are running on native Windows
+DELETE=del /q
+FLASH_TOOL=client/flasher.exe
+platform=Windows
+FLASH_PORT=com3
+PATHSEP=\\#
+endif
 
 
-all clean: %: client/% bootrom/% armsrc/% recovery/%
+all clean: %: client/% bootrom/% armsrc/% recovery/% mfkey/%
 
 bootrom/%: FORCE
 
 bootrom/%: FORCE
-       $(MAKE) -C bootrom $(patsubst bootrom/%,%,$@)
+       $(MAKE) -C bootrom $(patsubst bootrom/%, %, $@)
 armsrc/%: FORCE
 armsrc/%: FORCE
-       $(MAKE) -C armsrc $(patsubst armsrc/%,%,$@)
+       $(MAKE) -C armsrc $(patsubst armsrc/%, %, $@)
 client/%: FORCE
 client/%: FORCE
-       $(MAKE) -C client $(patsubst client/%,%,$@)
+       $(MAKE) -C client $(patsubst client/%, %, $@)
 recovery/%: FORCE
 recovery/%: FORCE
-       $(MAKE) -C recovery $(patsubst recovery/%,%,$@)
+       $(MAKE) -C recovery $(patsubst recovery/%, %, $@)
+mfkey/%: FORCE
+       $(MAKE) -C tools/mfkey $(patsubst mfkey/%, %, $@)
 FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites)
 
 .PHONY: all clean help _test flash-bootrom flash-os flash-all FORCE
 FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites)
 
 .PHONY: all clean help _test flash-bootrom flash-os flash-all FORCE
@@ -28,6 +51,8 @@ help:
 
 client: client/all
 
 
 client: client/all
 
+mfkey: mfkey/all
+
 flash-bootrom: bootrom/obj/bootrom.elf $(FLASH_TOOL)
        $(FLASH_TOOL) $(FLASH_PORT) -b $(subst /,$(PATHSEP),$<)
 
 flash-bootrom: bootrom/obj/bootrom.elf $(FLASH_TOOL)
        $(FLASH_TOOL) $(FLASH_PORT) -b $(subst /,$(PATHSEP),$<)
 
index a6b1942fb9ccf4231015a64ddffdfcf50a7cc92c..3b4ce89e2f62b07791ac120b3d1901889632bc0d 100644 (file)
@@ -3,11 +3,15 @@
 # at your option, any later version. See the LICENSE.txt file for the text of
 # the license.
 #-----------------------------------------------------------------------------
 # at your option, any later version. See the LICENSE.txt file for the text of
 # the license.
 #-----------------------------------------------------------------------------
-include ../common/Makefile.common
 
 
+CC = gcc
+CXX = g++
+LD = g++
+TAR = tar
+TARFLAGS = -C .. --ignore-failed-read -rvf
+RM = rm -f
+MV = mv
 
 
-CC=gcc
-CXX=g++
 #COMMON_FLAGS = -m32
 VPATH = ../common ../zlib
 OBJDIR = obj
 #COMMON_FLAGS = -m32
 VPATH = ../common ../zlib
 OBJDIR = obj
@@ -15,46 +19,52 @@ OBJDIR = obj
 LDLIBS = -L/opt/local/lib -L/usr/local/lib -lreadline -lpthread -lm
 LUALIB = ../liblua/liblua.a
 LDFLAGS = $(COMMON_FLAGS)
 LDLIBS = -L/opt/local/lib -L/usr/local/lib -lreadline -lpthread -lm
 LUALIB = ../liblua/liblua.a
 LDFLAGS = $(COMMON_FLAGS)
-CFLAGS = -std=c99 -D_ISOC99_SOURCE -I. -I../include -I../common -I../tools -I../zlib -I/opt/local/include -I../liblua -Wall $(COMMON_FLAGS) -g -O4
+CFLAGS = -std=c99 -D_ISOC99_SOURCE -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall $(COMMON_FLAGS) -g -O4
 LUAPLATFORM = generic
 
 LUAPLATFORM = generic
 
+platform = $(shell uname)
 ifneq (,$(findstring MINGW,$(platform)))
     CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
 ifneq (,$(findstring MINGW,$(platform)))
     CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
-    MOC = $(QTDIR)/bin/moc
-    LUAPLATFORM = mingw
     ifneq ($(wildcard $(QTDIR)/include/QtWidgets),)
         CXXFLAGS += -I$(QTDIR)/include/QtWidgets
         QTLDLIBS = -L$(QTDIR)/lib -lQt5Core -lQt5Gui -lQt5Widgets
     else
         QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
     endif
     ifneq ($(wildcard $(QTDIR)/include/QtWidgets),)
         CXXFLAGS += -I$(QTDIR)/include/QtWidgets
         QTLDLIBS = -L$(QTDIR)/lib -lQt5Core -lQt5Gui -lQt5Widgets
     else
         QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
     endif
-else ifeq ($(platform),Darwin)
-    CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall -O4
-    QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
-    MOC = $(shell pkg-config --variable=moc_location QtCore)
-    LUAPLATFORM = macosx
+    MOC = $(QTDIR)/bin/moc
+    LUAPLATFORM = mingw
 else
 else
-    CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall -O4
-    QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
-    LUALIB +=  -ldl
-    LDLIBS +=  -ltermcap -lncurses
-    MOC = $(shell pkg-config --variable=moc_location QtCore)
-    # Below is a variant you can use if you have problems compiling with QT5 on ubuntu. see http://www.proxmark.org/forum/viewtopic.php?id=1661 for more info. 
-    #MOC = /usr/lib/x86_64-linux-gnu/qt4/bin/moc
-    LUAPLATFORM = linux
+       CXXFLAGS = $(shell pkg-config --cflags Qt5Core Qt5Widgets 2>/dev/null) -Wall -O4
+       QTLDLIBS = $(shell pkg-config --libs Qt5Core Qt5Widgets 2>/dev/null)
+       MOC = $(shell pkg-config --variable=host_bins Qt5Core)/moc
+       ifeq ($(QTLDLIBS), )
+               CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall -O4
+               QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
+               MOC = $(shell pkg-config --variable=moc_location QtCore)
+       endif
+       ifeq ($(platform),Darwin)
+               LUAPLATFORM = macosx
+       else
+               LUALIB +=  -ldl
+               LDLIBS +=  -ltermcap -lncurses
+               LUAPLATFORM = linux
+       endif
 endif
 
 ifneq ($(QTLDLIBS),)
 endif
 
 ifneq ($(QTLDLIBS),)
-    QTGUI = $(OBJDIR)/proxgui.o $(OBJDIR)/proxguiqt.o $(OBJDIR)/proxguiqt.moc.o
+    QTGUIOBJS = $(OBJDIR)/proxgui.o $(OBJDIR)/proxguiqt.o $(OBJDIR)/proxguiqt.moc.o
     CFLAGS += -DHAVE_GUI
     CFLAGS += -DHAVE_GUI
-    LINK.o = $(LINK.cpp)
 else
 else
-    QTGUI = guidummy.o
+    QTGUIOBJS = $(OBJDIR)/guidummy.o
 endif
 
 endif
 
-CORESRCS =     uart.c \
-               util.c \
+# Flags to generate temporary dependency files
+DEPFLAGS = -MT $@ -MMD -MP -MF $(OBJDIR)/$*.Td
+# make temporary to final dependeny files after successful compilation
+POSTCOMPILE = $(MV) -f $(OBJDIR)/$*.Td $(OBJDIR)/$*.d
 
 
+CORESRCS =     uart.c \
+                       util.c
 
 CMDSRCS =      crapto1/crapto1.c\
                        crapto1/crypto1.c\
 
 CMDSRCS =      crapto1/crapto1.c\
                        crapto1/crypto1.c\
@@ -129,57 +139,82 @@ CMDSRCS =         crapto1/crapto1.c\
                        reveng/getopt.c\
 
 ZLIBSRCS = deflate.c adler32.c trees.c zutil.c inflate.c inffast.c inftrees.c
                        reveng/getopt.c\
 
 ZLIBSRCS = deflate.c adler32.c trees.c zutil.c inflate.c inffast.c inftrees.c
-ZLIB_FLAGS = -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED 
+ZLIBFLAGS = -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED 
 #-DDEBUG -Dverbose=1
 
 #-DDEBUG -Dverbose=1
 
+QTGUISRCS = proxgui.cpp proxguiqt.cpp proxguiqt.moc.cpp guidummy.cpp
 
 COREOBJS = $(CORESRCS:%.c=$(OBJDIR)/%.o)
 CMDOBJS = $(CMDSRCS:%.c=$(OBJDIR)/%.o)
 ZLIBOBJS = $(ZLIBSRCS:%.c=$(OBJDIR)/%.o)
 
 
 COREOBJS = $(CORESRCS:%.c=$(OBJDIR)/%.o)
 CMDOBJS = $(CMDSRCS:%.c=$(OBJDIR)/%.o)
 ZLIBOBJS = $(ZLIBSRCS:%.c=$(OBJDIR)/%.o)
 
-RM = rm -f
-BINS = proxmark3 flasher fpga_compress #snooper cli
-CLEAN = cli cli.exe flasher flasher.exe proxmark3 proxmark3.exe fpga_compress fpga_compress.exe snooper snooper.exe $(CMDOBJS) $(OBJDIR)/*.o *.o *.moc.cpp
+BINS = proxmark3 flasher fpga_compress
+WINBINS = $(patsubst %, %.exe, $(BINS))
+CLEAN = $(BINS) $(WINBINS) $(COREOBJS) $(CMDOBJS) $(ZLIBOBJS) $(QTGUIOBJS) $(OBJDIR)/*.o *.moc.cpp
 
 
-all: lua_build $(BINS) 
+all: lua_build $(BINS)
 
 all-static: LDLIBS:=-static $(LDLIBS)
 
 all-static: LDLIBS:=-static $(LDLIBS)
-all-static: snooper cli flasher fpga_compress
+all-static: proxmark3 flasher fpga_compress
 
 proxmark3: LDLIBS+=$(LUALIB) $(QTLDLIBS)
 
 proxmark3: LDLIBS+=$(LUALIB) $(QTLDLIBS)
-proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUI)
-       $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-
-snooper: $(OBJDIR)/snooper.o $(COREOBJS) $(CMDOBJS) $(OBJDIR)/guidummy.o
-       $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
-
-cli: $(OBJDIR)/cli.o $(COREOBJS) $(CMDOBJS) $(OBJDIR)/guidummy.o
-       $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
+proxmark3: $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUIOBJS) lualibs/usb_cmd.lua
+       $(LD) $(LDFLAGS) $(OBJDIR)/proxmark3.o $(COREOBJS) $(CMDOBJS) $(QTGUIOBJS) $(LDLIBS) -o $@
 
 flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS)
 
 flasher: $(OBJDIR)/flash.o $(OBJDIR)/flasher.o $(COREOBJS)
-       $(CXX) $(CXXFLAGS) $^ $(LDLIBS) -o $@
+       $(LD) $(LDFLAGS) $^ $(LDLIBS) -o $@
 
 fpga_compress: $(OBJDIR)/fpga_compress.o $(ZLIBOBJS)
 
 fpga_compress: $(OBJDIR)/fpga_compress.o $(ZLIBOBJS)
-       $(CXX) $(CXXFLAGS) $(ZLIB_FLAGS) $^ $(LDLIBS) -o $@
-
-$(OBJDIR)/%.o: %.c
-       $(CC) $(CFLAGS) $(ZLIB_FLAGS) -c -o $@ $<
-
-$(OBJDIR)/%.o: %.cpp
-       $(CXX) $(CXXFLAGS) -c -o $@ $<
+       $(LD) $(LDFLAGS) $(ZLIBFLAGS) $^ $(LDLIBS) -o $@
 
 proxguiqt.moc.cpp: proxguiqt.h
        $(MOC) -o$@ $^
 
 
 proxguiqt.moc.cpp: proxguiqt.h
        $(MOC) -o$@ $^
 
+lualibs/usb_cmd.lua: ../include/usb_cmd.h
+       awk -f usb_cmd_h2lua.awk $^ > $@
+       
 clean:
        $(RM) $(CLEAN)
        cd ../liblua && make clean
 
 tarbin: $(BINS)
 clean:
        $(RM) $(CLEAN)
        cd ../liblua && make clean
 
 tarbin: $(BINS)
-       $(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(BINS:%=client/%)
+       $(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(BINS:%=client/%) $(WINBINS:%=client/%)
 
 lua_build:
        @echo Compiling liblua, using platform $(LUAPLATFORM)
        cd ../liblua && make $(LUAPLATFORM)
 
 .PHONY: all clean
 
 lua_build:
        @echo Compiling liblua, using platform $(LUAPLATFORM)
        cd ../liblua && make $(LUAPLATFORM)
 
 .PHONY: all clean
+
+%.o: %.c
+$(OBJDIR)/%.o : %.c $(OBJDIR)/%.d
+       $(CC) $(DEPFLAGS) $(CFLAGS) $(ZLIBFLAGS) -c -o $@ $<
+       $(POSTCOMPILE)
+
+%.o: %.cpp
+$(OBJDIR)/%.o : %.cpp $(OBJDIR)/%.d
+       $(CXX) $(DEPFLAGS) $(CXXFLAGS) -c -o $@ $<
+       $(POSTCOMPILE)
+
+
+#$(CMDOBJS) $(COREOBJS): $(notdir $(%.c)) %.d
+#      $(CC) $(DEPFLAGS) $(CFLAGS) -c -o $@ $<
+#      $(POSTCOMPILE)
+
+#$(ZLIBOBJS): $(notdir $(%.c)) %.d
+#      $(CC) $(DEPFLAGS) $(CFLAGS) $(ZLIBFLAGS) -c -o $@ $<
+#      $(POSTCOMPILE)
+
+#$(QTGUIOBJS): $(notdir $(%.cpp)) %.d
+#      $(CXX) $(DEPFLAGS) $(CXXFLAGS) -c -o $@ $<
+#      $(POSTCOMPILE)
+
+DEPENDENCY_FILES = $(patsubst %.c, $(OBJDIR)/%.d, $(CORESRCS) $(CMDSRCS) $(ZLIBSRCS)) \
+       $(patsubst %.cpp, $(OBJDIR)/%.d, $(QTGUISRCS)) \
+       $(OBJDIR)/proxmark3.d $(OBJDIR)/flash.d $(OBJDIR)/flasher.d $(OBJDIR)/fpga_compress.d
+
+$(DEPENDENCY_FILES): ;
+.PRECIOUS: $(DEPENDENCY_FILES)
+
+-include $(DEPENDENCY_FILES)
+
diff --git a/client/cli.c b/client/cli.c
deleted file mode 100644 (file)
index c5c2acf..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//-----------------------------------------------------------------------------
-// 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.
-//-----------------------------------------------------------------------------
-// Command line binary
-//-----------------------------------------------------------------------------
-
-#include <stdio.h>
-#include "sleep.h"
-#include "ui.h"
-#include "proxusb.h"
-#include "cmdmain.h"
-
-#define HANDLE_ERROR if (error_occured) { \
-  error_occured = 0;\
-  break;\
-}
-
-int main(int argc, char **argv)
-{
-  if (argc != 3 && argc != 4)
-  {
-    printf("\n\tusage: cli <command 1> <command 2> [logfile (default cli.log)]\n");
-    printf("\n");
-    printf("\texample: cli hi14asnoop hi14alist h14a.log\n");
-    printf("\n");
-    return -1;
-  }
-
-  usb_init();
-  if (argc == 4)
-    SetLogFilename(argv[3]);
-  else
-    SetLogFilename("cli.log");
-
-  return_on_error = 1;
-
-  while (1) {
-    while (!OpenProxmark(0)) { sleep(1); }
-    while (1) {
-      UsbCommand cmdbuf;
-      CommandReceived(argv[1]);
-      HANDLE_ERROR;
-      ReceiveCommand(&cmdbuf);
-      HANDLE_ERROR;
-      for (int i = 0; i < 5; ++i) {
-        ReceiveCommandPoll(&cmdbuf);
-      }
-      HANDLE_ERROR;
-      CommandReceived(argv[2]);
-      HANDLE_ERROR;
-    }
-  }
-
-  CloseProxmark();
-  return 0;
-}
diff --git a/client/guidummy.c b/client/guidummy.c
deleted file mode 100644 (file)
index b42dea2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (C) 2009 Michael Gernoth <michael at gernoth.net>
-//
-// 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.
-//-----------------------------------------------------------------------------
-// GUI dummy file
-//-----------------------------------------------------------------------------
-
-#include <stdio.h>
-
-void ShowGraphWindow(void)
-{
-       static int warned = 0;
-
-       if (!warned) {
-               printf("No GUI in this build!\n");
-               warned = 1;
-       }
-}
-
-void HideGraphWindow(void) {}
-void RepaintGraphWindow(void) {}
-void MainGraphics() {}
-void InitGraphics(int argc, char **argv) {}
-void ExitGraphics(void) {}
diff --git a/client/guidummy.cpp b/client/guidummy.cpp
new file mode 100644 (file)
index 0000000..6c24973
--- /dev/null
@@ -0,0 +1,27 @@
+//-----------------------------------------------------------------------------
+// Copyright (C) 2009 Michael Gernoth <michael at gernoth.net>
+//
+// 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.
+//-----------------------------------------------------------------------------
+// GUI dummy file
+//-----------------------------------------------------------------------------
+
+#include <stdio.h>
+
+extern "C" void ShowGraphWindow(void)
+{
+       static int warned = 0;
+
+       if (!warned) {
+               printf("No GUI in this build!\n");
+               warned = 1;
+       }
+}
+
+extern "C" void HideGraphWindow(void) {}
+extern "C" void RepaintGraphWindow(void) {}
+extern "C" void MainGraphics() {}
+extern "C" void InitGraphics(int argc, char **argv) {}
+extern "C" void ExitGraphics(void) {}
index 2a97196a56634445636b2fc79690dc1246059fac..dadd2fc51069566cd1933bbe46ebbb277e1e0fb2 100644 (file)
@@ -1,164 +1,8 @@
 --[[
 --[[
-These are command definitions. This file should correspond exactly to usb_cmd.h. 
+Handle Proxmark USB Commands 
 --]]
 --]]
---// For the bootloader
-local _commands = {
-       CMD_DEVICE_INFO =                                                    0x0000,
-       CMD_SETUP_WRITE =                                                    0x0001,
-       CMD_FINISH_WRITE =                                                   0x0003,
-       CMD_HARDWARE_RESET =                                                 0x0004,
-       CMD_START_FLASH =                                                    0x0005,
-       CMD_NACK =                                                           0x00fe,
-       CMD_ACK =                                                            0x00ff,
-
-       --// For general mucking around
-       CMD_DEBUG_PRINT_STRING =                                             0x0100,
-       CMD_DEBUG_PRINT_INTEGERS =                                           0x0101,
-       CMD_DEBUG_PRINT_BYTES =                                              0x0102,
-       CMD_LCD_RESET =                                                      0x0103,
-       CMD_LCD =                                                            0x0104,
-       CMD_BUFF_CLEAR =                                                     0x0105,
-       CMD_READ_MEM =                                                       0x0106,
-       CMD_VERSION =                                                        0x0107,
-       CMD_STATUS =                                                         0x0108,
-       CMD_PING =                                                           0x0109,
-       --// For low-frequency tags
-       CMD_READ_TI_TYPE =                                                   0x0202,
-       CMD_WRITE_TI_TYPE =                                                  0x0203,
-       CMD_DOWNLOADED_RAW_BITS_TI_TYPE =                                    0x0204,
-       CMD_ACQUIRE_RAW_ADC_SAMPLES_125K =                                   0x0205,
-       CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K =                          0x0206,
-       CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K =                                  0x0207,
-       CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K =                                0x0208,
-       CMD_DOWNLOADED_SIM_SAMPLES_125K =                                    0x0209,
-       CMD_SIMULATE_TAG_125K =                                              0x020A,
-       CMD_HID_DEMOD_FSK =                                                  0x020B,
-       CMD_HID_SIM_TAG =                                                    0x020C,
-       CMD_SET_LF_DIVISOR =                                                 0x020D,
-       CMD_LF_SIMULATE_BIDIR =                                              0x020E,
-       CMD_SET_ADC_MUX =                                                    0x020F,
-       CMD_HID_CLONE_TAG =                                                  0x0210,
-       CMD_EM410X_WRITE_TAG =                                               0x0211,
-       CMD_INDALA_CLONE_TAG =                                               0x0212,
-       --// for 224 bits UID
-       CMD_INDALA_CLONE_TAG_L =                                             0x0213,
-       CMD_T55XX_READ_BLOCK =                                               0x0214,
-       CMD_T55XX_WRITE_BLOCK =                                              0x0215,
-       CMD_T55XX_RESET_READ =                                               0x0216,
-       CMD_PCF7931_READ =                                                   0x0217,
-       CMD_EM4X_READ_WORD =                                                 0x0218,
-       CMD_EM4X_WRITE_WORD =                                                0x0219,
-       CMD_IO_DEMOD_FSK =                                                   0x021A,
-       CMD_IO_CLONE_TAG =                                                   0x021B,
-       CMD_EM410X_DEMOD =                                                   0x021c,
-       CMD_SET_LF_SAMPLING_CONFIG =                                         0x021d,
-       CMD_FSK_SIM_TAG =                                                    0x021E,
-       CMD_ASK_SIM_TAG =                                                    0x021F,
-       CMD_PSK_SIM_TAG =                                                    0x0220,
-       CMD_AWID_DEMOD_FSK =                                                 0x0221,
-       CMD_VIKING_CLONE_TAG =                                               0x0223,
-       CMD_T55XX_WAKEUP =                                                   0x0224,
-       CMD_COTAG =                                                          0x0225,
-       --/* CMD_SET_ADC_MUX: ext1 is 0 for lopkd, 1 for loraw, 2 for hipkd, 3 for hiraw */
-
-       --// For the 13.56 MHz tags
-       CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693 =                              0x0300,
-       CMD_READ_SRI512_TAG =                                                0x0303,
-       CMD_READ_SRIX4K_TAG =                                                0x0304,
-       CMD_READER_ISO_15693 =                                               0x0310,
-       CMD_SIMTAG_ISO_15693 =                                               0x0311,
-       CMD_RECORD_RAW_ADC_SAMPLES_ISO_15693 =                               0x0312,
-       CMD_ISO_15693_COMMAND =                                              0x0313,
-       CMD_ISO_15693_COMMAND_DONE =                                         0x0314,
-       CMD_ISO_15693_FIND_AFI =                                             0x0315,
-       CMD_ISO_15693_DEBUG =                                                0x0316,
-       CMD_LF_SNOOP_RAW_ADC_SAMPLES =                                       0x0317,
-
-       --// For Hitag2 transponders
-       CMD_SNOOP_HITAG =                                                    0x0370,
-       CMD_SIMULATE_HITAG =                                                 0x0371,
-       CMD_READER_HITAG =                                                   0x0372,
-
-       CMD_SIMULATE_TAG_ISO_14443B =                                        0x0381,
-       CMD_SNOOP_ISO_14443B =                                               0x0382,
-       CMD_SNOOP_ISO_14443a =                                               0x0383,
-       CMD_SIMULATE_TAG_ISO_14443a =                                        0x0384,
-       CMD_READER_ISO_14443a =                                              0x0385,
-       CMD_SIMULATE_TAG_LEGIC_RF =                                          0x0387,
-       CMD_READER_LEGIC_RF =                                                0x0388,
-       CMD_WRITER_LEGIC_RF =                                                0x0389,
-       CMD_EPA_PACE_COLLECT_NONCE =                                         0x038A,
-       --//CMD_EPA_ =                                                         0x038B,
-
-       CMD_ICLASS_READCHECK =                                               0x038F,
-       CMD_ICLASS_CLONE =                                                   0x0390,
-       CMD_ICLASS_DUMP =                                                    0x0391,
-       CMD_SNOOP_ICLASS =                                                   0x0392,
-       CMD_SIMULATE_TAG_ICLASS =                                            0x0393,
-       CMD_READER_ICLASS =                                                  0x0394,
-       CMD_READER_ICLASS_REPLAY =                                           0x0395,
-       CMD_ICLASS_READBLOCK =                                               0x0396,
-       CMD_ICLASS_WRITEBLOCK =                                              0x0397,
-       CMD_ICLASS_EML_MEMSET =                                              0x0398,
-       CMD_ICLASS_AUTHENTICATION =                                          0x0399,
-
-       --// For measurements of the antenna tuning
-       CMD_MEASURE_ANTENNA_TUNING =                                         0x0400,
-       CMD_MEASURE_ANTENNA_TUNING_HF =                                      0x0401,
-       CMD_MEASURED_ANTENNA_TUNING =                                        0x0410,
-       CMD_LISTEN_READER_FIELD =                                            0x0420,
-
-       --// For direct FPGA control
-       CMD_FPGA_MAJOR_MODE_OFF =                                            0x0500,
-
-       --// For mifare commands
-       CMD_MIFARE_SET_DBGMODE =                                             0x0600,
-       CMD_MIFARE_EML_MEMCLR =                                              0x0601,
-       CMD_MIFARE_EML_MEMSET =                                              0x0602,
-       CMD_MIFARE_EML_MEMGET =                                              0x0603,
-       CMD_MIFARE_EML_CARDLOAD =                                            0x0604,
-       
-       --// magic chinese card commands
-       CMD_MIFARE_CSETBLOCK =                                               0x0605,
-       CMD_MIFARE_CGETBLOCK =                                               0x0606,
-       CMD_MIFARE_CIDENT =                                                  0x0607,
-
-       CMD_SIMULATE_MIFARE_CARD =                                           0x0610,
-
-       CMD_READER_MIFARE =                                                  0x0611,
-       CMD_MIFARE_NESTED =                                                  0x0612,
-
-       CMD_MIFARE_READBL =                                                  0x0620,
-       CMD_MIFAREU_READBL =                                                 0x0720,
-       
-       CMD_MIFARE_READSC =                                                  0x0621,
-       CMD_MIFAREU_READCARD =                                               0x0721,
-       
-       CMD_MIFARE_WRITEBL =                                                 0x0622,
-       CMD_MIFAREU_WRITEBL =                                                0x0722,
-       CMD_MIFAREU_WRITEBL_COMPAT =                                         0x0723,
-       
-       CMD_MIFARE_CHKKEYS =                                                 0x0623,
-
-       CMD_MIFARE_SNIFFER =                                                 0x0630,
-
-       --//ultralightC
-       CMD_MIFAREUC_AUTH =                                                  0x0724,
-       CMD_MIFAREUC_SETPWD =                                                0x0727,
-       CMD_MIFAREU_SETUID =                                                 0x0728,
-
-       --// mifare desfire
-       CMD_MIFARE_DESFIRE_READBL =                                          0x0728,
-       CMD_MIFARE_DESFIRE_WRITEBL =                                         0x0729,
-       CMD_MIFARE_DESFIRE_AUTH1 =                                           0x072a,
-       CMD_MIFARE_DESFIRE_AUTH2 =                                           0x072b,
-       CMD_MIFARE_DES_READER =                                              0x072c,
-       CMD_MIFARE_DESFIRE_INFO =                                            0x072d,
-       CMD_MIFARE_DESFIRE =                                                 0x072e,
-       
-       CMD_UNKNOWN =                                                        0xFFFF,
-}
 
 
+local _commands = require('usb_cmd')
 
 local _reverse_lookup,k,v = {}
        for k, v in pairs(_commands) do
 
 local _reverse_lookup,k,v = {}
        for k, v in pairs(_commands) do
diff --git a/client/lualibs/usb_cmd.lua b/client/lualibs/usb_cmd.lua
new file mode 100644 (file)
index 0000000..5275799
--- /dev/null
@@ -0,0 +1,137 @@
+--[[
+These are Proxmark command definitions.
+This file is automatically generated from usb_cmd.h - DON'T EDIT MANUALLY.
+--]]
+local __commands = {
+CMD_DEVICE_INFO = 0x0000,
+CMD_SETUP_WRITE = 0x0001,
+CMD_FINISH_WRITE = 0x0003,
+CMD_HARDWARE_RESET = 0x0004,
+CMD_START_FLASH = 0x0005,
+CMD_NACK = 0x00fe,
+CMD_ACK = 0x00ff,
+CMD_DEBUG_PRINT_STRING = 0x0100,
+CMD_DEBUG_PRINT_INTEGERS = 0x0101,
+CMD_DEBUG_PRINT_BYTES = 0x0102,
+CMD_LCD_RESET = 0x0103,
+CMD_LCD = 0x0104,
+CMD_BUFF_CLEAR = 0x0105,
+CMD_READ_MEM = 0x0106,
+CMD_VERSION = 0x0107,
+CMD_STATUS = 0x0108,
+CMD_PING = 0x0109,
+CMD_READ_TI_TYPE = 0x0202,
+CMD_WRITE_TI_TYPE = 0x0203,
+CMD_DOWNLOADED_RAW_BITS_TI_TYPE = 0x0204,
+CMD_ACQUIRE_RAW_ADC_SAMPLES_125K = 0x0205,
+CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K = 0x0206,
+CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K = 0x0207,
+CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K = 0x0208,
+CMD_DOWNLOADED_SIM_SAMPLES_125K = 0x0209,
+CMD_SIMULATE_TAG_125K = 0x020A,
+CMD_HID_DEMOD_FSK = 0x020B,
+CMD_HID_SIM_TAG = 0x020C,
+CMD_SET_LF_DIVISOR = 0x020D,
+CMD_LF_SIMULATE_BIDIR = 0x020E,
+CMD_SET_ADC_MUX = 0x020F,
+CMD_HID_CLONE_TAG = 0x0210,
+CMD_EM410X_WRITE_TAG = 0x0211,
+CMD_INDALA_CLONE_TAG = 0x0212,
+CMD_INDALA_CLONE_TAG_L = 0x0213,
+CMD_T55XX_READ_BLOCK = 0x0214,
+CMD_T55XX_WRITE_BLOCK = 0x0215,
+CMD_T55XX_RESET_READ = 0x0216,
+CMD_PCF7931_READ = 0x0217,
+CMD_PCF7931_WRITE = 0x0222,
+CMD_EM4X_READ_WORD = 0x0218,
+CMD_EM4X_WRITE_WORD = 0x0219,
+CMD_IO_DEMOD_FSK = 0x021A,
+CMD_IO_CLONE_TAG = 0x021B,
+CMD_EM410X_DEMOD = 0x021c,
+CMD_SET_LF_SAMPLING_CONFIG = 0x021d,
+CMD_FSK_SIM_TAG = 0x021E,
+CMD_ASK_SIM_TAG = 0x021F,
+CMD_PSK_SIM_TAG = 0x0220,
+CMD_AWID_DEMOD_FSK = 0x0221,
+CMD_VIKING_CLONE_TAG = 0x0223,
+CMD_T55XX_WAKEUP = 0x0224,
+CMD_COTAG = 0x0225,
+CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693 = 0x0300,
+CMD_READ_SRI512_TAG = 0x0303,
+CMD_READ_SRIX4K_TAG = 0x0304,
+CMD_ISO_14443B_COMMAND = 0x0305,
+CMD_READER_ISO_15693 = 0x0310,
+CMD_SIMTAG_ISO_15693 = 0x0311,
+CMD_RECORD_RAW_ADC_SAMPLES_ISO_15693 = 0x0312,
+CMD_ISO_15693_COMMAND = 0x0313,
+CMD_ISO_15693_COMMAND_DONE = 0x0314,
+CMD_ISO_15693_FIND_AFI = 0x0315,
+CMD_ISO_15693_DEBUG = 0x0316,
+CMD_LF_SNOOP_RAW_ADC_SAMPLES = 0x0317,
+CMD_SNOOP_HITAG = 0x0370,
+CMD_SIMULATE_HITAG = 0x0371,
+CMD_READER_HITAG = 0x0372,
+CMD_SIMULATE_HITAG_S = 0x0368,
+CMD_TEST_HITAGS_TRACES = 0x0367,
+CMD_READ_HITAG_S = 0x0373,
+CMD_WR_HITAG_S = 0x0375,
+CMD_EMU_HITAG_S = 0x0376,
+CMD_SIMULATE_TAG_ISO_14443B = 0x0381,
+CMD_SNOOP_ISO_14443B = 0x0382,
+CMD_SNOOP_ISO_14443a = 0x0383,
+CMD_SIMULATE_TAG_ISO_14443a = 0x0384,
+CMD_READER_ISO_14443a = 0x0385,
+CMD_SIMULATE_TAG_LEGIC_RF = 0x0387,
+CMD_READER_LEGIC_RF = 0x0388,
+CMD_WRITER_LEGIC_RF = 0x0389,
+CMD_EPA_PACE_COLLECT_NONCE = 0x038A,
+CMD_EPA_PACE_REPLAY = 0x038B,
+CMD_ICLASS_READCHECK = 0x038F,
+CMD_ICLASS_CLONE = 0x0390,
+CMD_ICLASS_DUMP = 0x0391,
+CMD_SNOOP_ICLASS = 0x0392,
+CMD_SIMULATE_TAG_ICLASS = 0x0393,
+CMD_READER_ICLASS = 0x0394,
+CMD_READER_ICLASS_REPLAY = 0x0395,
+CMD_ICLASS_READBLOCK = 0x0396,
+CMD_ICLASS_WRITEBLOCK = 0x0397,
+CMD_ICLASS_EML_MEMSET = 0x0398,
+CMD_ICLASS_AUTHENTICATION = 0x0399,
+CMD_MEASURE_ANTENNA_TUNING = 0x0400,
+CMD_MEASURE_ANTENNA_TUNING_HF = 0x0401,
+CMD_MEASURED_ANTENNA_TUNING = 0x0410,
+CMD_LISTEN_READER_FIELD = 0x0420,
+CMD_FPGA_MAJOR_MODE_OFF = 0x0500,
+CMD_MIFARE_SET_DBGMODE = 0x0600,
+CMD_MIFARE_EML_MEMCLR = 0x0601,
+CMD_MIFARE_EML_MEMSET = 0x0602,
+CMD_MIFARE_EML_MEMGET = 0x0603,
+CMD_MIFARE_EML_CARDLOAD = 0x0604,
+CMD_MIFARE_CSETBLOCK = 0x0605,
+CMD_MIFARE_CGETBLOCK = 0x0606,
+CMD_MIFARE_CIDENT = 0x0607,
+CMD_SIMULATE_MIFARE_CARD = 0x0610,
+CMD_READER_MIFARE = 0x0611,
+CMD_MIFARE_NESTED = 0x0612,
+CMD_MIFARE_READBL = 0x0620,
+CMD_MIFAREU_READBL = 0x0720,
+CMD_MIFARE_READSC = 0x0621,
+CMD_MIFAREU_READCARD = 0x0721,
+CMD_MIFARE_WRITEBL = 0x0622,
+CMD_MIFAREU_WRITEBL = 0x0722,
+CMD_MIFAREU_WRITEBL_COMPAT = 0x0723,
+CMD_MIFARE_CHKKEYS = 0x0623,
+CMD_MIFARE_SNIFFER = 0x0630,
+CMD_MIFAREUC_AUTH = 0x0724,
+CMD_MIFAREUC_SETPWD = 0x0727,
+CMD_MIFARE_DESFIRE_READBL = 0x0728,
+CMD_MIFARE_DESFIRE_WRITEBL = 0x0729,
+CMD_MIFARE_DESFIRE_AUTH1 = 0x072a,
+CMD_MIFARE_DESFIRE_AUTH2 = 0x072b,
+CMD_MIFARE_DES_READER = 0x072c,
+CMD_MIFARE_DESFIRE_INFO = 0x072d,
+CMD_MIFARE_DESFIRE = 0x072e,
+CMD_HF_SNIFFER = 0x0800,
+CMD_UNKNOWN = 0xFFFF,
+}
+return __commands
diff --git a/client/snooper.c b/client/snooper.c
deleted file mode 100644 (file)
index 14f0706..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//-----------------------------------------------------------------------------
-// Copyright (C) 2009 Michael Gernoth <michael at gernoth.net>
-//
-// 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.
-//-----------------------------------------------------------------------------
-// Snooper binary
-//-----------------------------------------------------------------------------
-
-#include "ui.h"
-#include "proxusb.h"
-#include "cmdmain.h"
-
-#define HANDLE_ERROR if (error_occured) { \
-  error_occured = 0;\
-  break;\
-}
-
-int main()
-{
-  usb_init();
-  SetLogFilename("snooper.log");
-
-  return_on_error = 1;
-
-  while(1) {
-    while (!OpenProxmark(0)) { sleep(1); }
-    while (1) {
-      UsbCommand cmdbuf;
-      CommandReceived("hf 14a snoop");
-      HANDLE_ERROR;
-      ReceiveCommand(&cmdbuf);
-      HANDLE_ERROR;
-      for (int i = 0; i < 5; ++i) {
-        ReceiveCommandPoll(&cmdbuf);
-      }
-      HANDLE_ERROR;
-      CommandReceived("hf 14a list");
-      HANDLE_ERROR;
-    }
-  }
-
-  CloseProxmark();
-  return 0;
-}
diff --git a/client/usb_cmd_h2lua.awk b/client/usb_cmd_h2lua.awk
new file mode 100644 (file)
index 0000000..8e00356
--- /dev/null
@@ -0,0 +1,15 @@
+BEGIN {
+       print "--[["
+       print "These are Proxmark command definitions."
+       print "This file is automatically generated from usb_cmd.h - DON'T EDIT MANUALLY."
+       print "--]]"
+       print "local __commands = {"
+}
+
+#$1 ~ /#define/ && $2 ~ /^CMD_([[:alnum:]_])+/ { print $2, "=", $3, "," }
+$1 ~ /#define/ && $2 ~ /^CMD_[A-Za-z0-9_]+/ { sub(/\r/, ""); print $2, "=", $3 "," }
+
+END {
+       print "}"
+       print "return __commands"
+}
Impressum, Datenschutz