Add the new Linux "cli" command line client, thanks for the contribution!
authoredouard@lafargue.name <edouard@lafargue.name@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 26 Jun 2009 10:20:55 +0000 (10:20 +0000)
committeredouard@lafargue.name <edouard@lafargue.name@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 26 Jun 2009 10:20:55 +0000 (10:20 +0000)
linux/Makefile
linux/cli.c [new file with mode: 0644]

index 7d4b0156f3626ac8b8c7f91c7e777176842de097..ef764db421e62e331e7a4814e9bb5a2c8bd4f7cf 100644 (file)
@@ -13,17 +13,19 @@ else
 QTGUI = guidummy.o
 endif
 
-all: proxmark3 snooper
+all: proxmark3 snooper cli
 
 proxmark3: LDFLAGS+=$(QTLDFLAGS)
 proxmark3: proxmark3.o gui.o command.o usb.o $(QTGUI)
 
 snooper: snooper.o gui.o command.o usb.o guidummy.o
 
+cli: cli.o gui.o command.o usb.o guidummy.o
+
 proxguiqt.moc.cpp: proxguiqt.h
        $(MOC) -o$@ $^
 
 clean:
-       rm -f proxmark3 snooper *.o *.moc.cpp
+       rm -f cli proxmark3 snooper *.o *.moc.cpp
 
 .PHONY: all clean
diff --git a/linux/cli.c b/linux/cli.c
new file mode 100644 (file)
index 0000000..e893a72
--- /dev/null
@@ -0,0 +1,61 @@
+#include <usb.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <strings.h>
+#include <string.h>
+#include <errno.h>
+
+#include "translate.h"
+#include "../winsrc/prox.h"
+#include "proxmark3.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(!(devh=OpenProxmark(0))) { sleep(1); }
+
+               while(1) {
+                       UsbCommand cmdbuf;
+                       int i;
+
+                       CommandReceived(argv[1]);
+                       HANDLE_ERROR
+
+                       ReceiveCommand(&cmdbuf);
+                       HANDLE_ERROR
+                       for (i=0; i<5; i++) {
+                               ReceiveCommandP(&cmdbuf);
+                       }
+                       HANDLE_ERROR
+
+                       CommandReceived(argv[2]);
+                       HANDLE_ERROR
+               }
+       }
+
+       CloseProxmark();
+       return 0;
+}
Impressum, Datenschutz