From: edouard@lafargue.name Date: Fri, 26 Jun 2009 10:20:55 +0000 (+0000) Subject: Add the new Linux "cli" command line client, thanks for the contribution! X-Git-Tag: v1.0.0~602 X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/commitdiff_plain/db917a164fc9f885f817312da49d5c9c451938d2?hp=7fdbe272cf3e9ba9f4c58dc09dc4081cec7db6bc Add the new Linux "cli" command line client, thanks for the contribution! --- diff --git a/linux/Makefile b/linux/Makefile index 7d4b0156..ef764db4 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -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 index 00000000..e893a727 --- /dev/null +++ b/linux/cli.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include +#include + +#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 [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; +}