]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - linux/cli.c
Add the new Linux "cli" command line client, thanks for the contribution!
[proxmark3-svn] / linux / cli.c
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