]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merged latest trunk changes into scripting-branch
authormartin.holst@gmail.com <martin.holst@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Sun, 1 Sep 2013 20:00:56 +0000 (20:00 +0000)
committermartin.holst@gmail.com <martin.holst@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Sun, 1 Sep 2013 20:00:56 +0000 (20:00 +0000)
1  2 
armsrc/appmain.c
client/Makefile
client/cmdmain.c

diff --combined armsrc/appmain.c
index cecf4d35e1156774fa02b26d0c997cdd08f986b8,4477a12025d043df0e5969af81a867ab3adca182..cfde4fbb63733bf87d257eed430e1fd9a2e36c64
@@@ -626,7 -626,7 +626,7 @@@ void UsbPacketReceived(uint8_t *packet
  #ifdef WITH_LF
                case CMD_ACQUIRE_RAW_ADC_SAMPLES_125K:
                        AcquireRawAdcSamples125k(c->arg[0]);
-       cmd_send(CMD_ACK,0,0,0,0,0);
+                       cmd_send(CMD_ACK,0,0,0,0,0);
                        break;
                case CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K:
                        ModThenAcquireRawAdcSamples125k(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
                        CmdHIDsimTAG(c->arg[0], c->arg[1], 1);                                  // Simulate HID tag by ID
                        break;
      case CMD_HID_CLONE_TAG: // Clone HID tag by ID to T55x7
-       CopyHIDtoT55x7(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
+                       CopyHIDtoT55x7(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
                        break;
                case CMD_EM410X_WRITE_TAG:
                        WriteEM410x(c->arg[0], c->arg[1], c->arg[2]);
                case CMD_INDALA_CLONE_TAG_L:                                    // Clone Indala 224-bit tag by UID to T55x7
                        CopyIndala224toT55x7(c->d.asDwords[0], c->d.asDwords[1], c->d.asDwords[2], c->d.asDwords[3], c->d.asDwords[4], c->d.asDwords[5], c->d.asDwords[6]);
                        break;
-     case CMD_T55XX_READ_BLOCK:
-       T55xxReadBlock(c->arg[1], c->arg[2],c->d.asBytes[0]);
-       break;
-     case CMD_T55XX_WRITE_BLOCK:
-       T55xxWriteBlock(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
-       break;
-     case CMD_T55XX_READ_TRACE: // Clone HID tag by ID to T55x7
-       T55xxReadTrace();
-       break;
-     case CMD_PCF7931_READ: // Read PCF7931 tag
-       ReadPCF7931();
-       cmd_send(CMD_ACK,0,0,0,0,0);
- //      UsbSendPacket((uint8_t*)&ack, sizeof(ack));
-       break;
-     case CMD_EM4X_READ_WORD:
-       EM4xReadWord(c->arg[1], c->arg[2],c->d.asBytes[0]);
-       break;
-     case CMD_EM4X_WRITE_WORD:
-       EM4xWriteWord(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
-       break;
+               case CMD_T55XX_READ_BLOCK:
+                       T55xxReadBlock(c->arg[1], c->arg[2],c->d.asBytes[0]);
+                       break;
+               case CMD_T55XX_WRITE_BLOCK:
+                       T55xxWriteBlock(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
+                       break;
+               case CMD_T55XX_READ_TRACE: // Clone HID tag by ID to T55x7
+                       T55xxReadTrace();
+                       break;
+               case CMD_PCF7931_READ: // Read PCF7931 tag
+                       ReadPCF7931();
+                       cmd_send(CMD_ACK,0,0,0,0,0);
+ //            UsbSendPacket((uint8_t*)&ack, sizeof(ack));
+                       break;
+               case CMD_EM4X_READ_WORD:
+                       EM4xReadWord(c->arg[1], c->arg[2],c->d.asBytes[0]);
+                       break;
+               case CMD_EM4X_WRITE_WORD:
+                       EM4xWriteWord(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes[0]);
+                       break;
  #endif
  
  #ifdef WITH_HITAG
                        AcquireRawAdcSamplesIso14443(c->arg[0]);
                        break;
                case CMD_READ_SRI512_TAG:
-                       ReadSRI512Iso14443(c->arg[0]);
+                       ReadSTMemoryIso14443(0x0F);
                        break;
                case CMD_READ_SRIX4K_TAG:
-                       ReadSRIX4KIso14443(c->arg[0]);
+                       ReadSTMemoryIso14443(0x7F);
                        break;
                case CMD_SNOOP_ISO_14443:
                        SnoopIso14443();
                case CMD_SIMULATE_TAG_ISO_14443:
                        SimulateIso14443Tag();
                        break;
+               case CMD_ISO_14443B_COMMAND:
+                       SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
+                       break;
  #endif
  
  #ifdef WITH_ISO14443a
                        break;
                        
                case CMD_READER_MIFARE:
-             ReaderMifare(c);
+             ReaderMifare(c->arg[0]);
                        break;
                case CMD_MIFARE_READBL:
                        MifareReadBlock(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes);
                        LED_D_OFF(); // LED D indicates field ON or OFF
                        break;
  
 -              case CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K:
 +              case CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K: {
  //                    UsbCommand n;
  //                    if(c->cmd == CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K) {
  //                            n.cmd = CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K;
        //                      UsbSendPacket((uint8_t *)&n, sizeof(n));
        //                      LED_B_OFF();
  
-       LED_B_ON();
-       for(size_t i=0; i<c->arg[1]; i += USB_CMD_DATA_SIZE) {
-         size_t len = MIN((c->arg[1] - i),USB_CMD_DATA_SIZE);
-         cmd_send(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K,i,len,0,((byte_t*)BigBuf)+c->arg[0]+i,len);
-       }
-       // Trigger a finish downloading signal with an ACK frame
-       cmd_send(CMD_ACK,0,0,0,0,0);
+                       LED_B_ON();
+                       for(size_t i=0; i<c->arg[1]; i += USB_CMD_DATA_SIZE) {
+                               size_t len = MIN((c->arg[1] - i),USB_CMD_DATA_SIZE);
+                               cmd_send(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K,i,len,0,((byte_t*)BigBuf)+c->arg[0]+i,len);
+                       }
+                       // Trigger a finish downloading signal with an ACK frame
+                       cmd_send(CMD_ACK,0,0,0,0,0);
                        LED_B_OFF();
 -                      break;
 +              } break;
  
                case CMD_DOWNLOADED_SIM_SAMPLES_125K: {
                        uint8_t *b = (uint8_t *)BigBuf;
                        memcpy(b+c->arg[0], c->d.asBytes, 48);
                        //Dbprintf("copied 48 bytes to %i",b+c->arg[0]);
  //                    UsbSendPacket((uint8_t*)&ack, sizeof(ack));
-       cmd_send(CMD_ACK,0,0,0,0,0);
-               } break;
+                       cmd_send(CMD_ACK,0,0,0,0,0);
+                       break;
+               }       
                case CMD_READ_MEM:
                        ReadMem(c->arg[0]);
                        break;
  #endif
                case CMD_SETUP_WRITE:
                case CMD_FINISH_WRITE:
-               case CMD_HARDWARE_RESET: {
-       usb_disable();
+               case CMD_HARDWARE_RESET:
+                       usb_disable();
                        SpinDelay(1000);
                        SpinDelay(1000);
                        AT91C_BASE_RSTC->RSTC_RCR = RST_CONTROL_KEY | AT91C_RSTC_PROCRST;
                        for(;;) {
                                // We're going to reset, and the bootrom will take control.
                        }
-         } break;
+                       break;
  
-               case CMD_START_FLASH: {
+               case CMD_START_FLASH:
                        if(common_area.flags.bootrom_present) {
                                common_area.command = COMMON_AREA_COMMAND_ENTER_FLASH_MODE;
                        }
-       usb_disable();
+                       usb_disable();
                        AT91C_BASE_RSTC->RSTC_RCR = RST_CONTROL_KEY | AT91C_RSTC_PROCRST;
                        for(;;);
-         } break;
+                       break;
  
                case CMD_DEVICE_INFO: {
                        uint32_t dev_info = DEVICE_INFO_FLAG_OSIMAGE_PRESENT | DEVICE_INFO_FLAG_CURRENT_MODE_OS;
                        if(common_area.flags.bootrom_present) dev_info |= DEVICE_INFO_FLAG_BOOTROM_PRESENT;
  //                    UsbSendPacket((uint8_t*)&c, sizeof(c));
-       cmd_send(CMD_DEVICE_INFO,dev_info,0,0,0,0);
-               } break;
-             
-               default: {
+                       cmd_send(CMD_DEVICE_INFO,dev_info,0,0,0,0);     
+                       break;
+               }
+               default:
                        Dbprintf("%s: 0x%04x","unknown command:",c->cmd);
-         } break;
+                       break;
        }
  }
  
diff --combined client/Makefile
index 1f2f23e87442dac671d5925e5d7c9b478a25dc9c,ff701a9f637f5b609e1c32a3298e8cb0630fe561..b7376c92b3b21c9a286bac5c1e67d5b9cdcb5c80
@@@ -5,7 -5,6 +5,7 @@@
  #-----------------------------------------------------------------------------
  include ../common/Makefile.common
  
 +
  CC=gcc
  CXX=g++
  #COMMON_FLAGS = -m32
  VPATH = ../common
  OBJDIR = obj
  
 -LDLIBS = -L/opt/local/lib -L/usr/local/lib -lreadline -lpthread
 +LDLIBS = -L/opt/local/lib -L/usr/local/lib -lreadline -lpthread ../liblua/liblua.a
  LDFLAGS = $(COMMON_FLAGS)
 -CFLAGS = -std=c99 -I. -I../include -I../common -I/opt/local/include -Wall -Wno-unused-function $(COMMON_FLAGS) -g -O4
 +CFLAGS = -std=c99 -I. -I../include -I../common -I/opt/local/include -I../liblua -Wall -Wno-unused-function $(COMMON_FLAGS) -g -O4 
 +LUAPLATFORM = generic
  
  ifneq (,$(findstring MINGW,$(platform)))
  CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
  QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
  MOC = $(QTDIR)/bin/moc
 +LUAPLATFORM = mingw
  else ifeq ($(platform),Darwin)
  CXXFLAGS = -I/Library/Frameworks/QtGui.framework/Versions/Current/Headers -I/Library/Frameworks/QtCore.framework/Versions/Current/Headers
  QTLDLIBS = -framework QtGui -framework QtCore
  MOC = moc 
 +LUAPLATFORM = macosx
  else
  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)
+ # 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
  endif
  
  
@@@ -46,7 -43,8 +48,8 @@@ endi
  
  CORESRCS =    uart.c \
                util.c \
-               sleep.c \
+               sleep.c
  
  CMDSRCS =     nonce2key/crapto1.c\
                nonce2key/crypto1.c\
                        cmdparser.c \
                        cmdmain.c \
                        cmdlft55xx.c \
 -                      cmdlfpcf7931.c
 +                      cmdlfpcf7931.c\
 +                      pm3_binlib.c\
 +                      scripting.c\
 +                      cmdscript.c\
 +
 +
  
  COREOBJS = $(CORESRCS:%.c=$(OBJDIR)/%.o)
  CMDOBJS = $(CMDSRCS:%.c=$(OBJDIR)/%.o)
@@@ -90,7 -83,7 +93,7 @@@ RM = rm -
  BINS = proxmark3 flasher #snooper cli
  CLEAN = cli cli.exe flasher flasher.exe proxmark3 proxmark3.exe snooper snooper.exe $(CMDOBJS) $(OBJDIR)/*.o *.o *.moc.cpp
  
 -all: $(BINS)
 +all: lua_build $(BINS) 
  
  all-static: LDLIBS:=-static $(LDLIBS)
  all-static: snooper cli flasher
@@@ -119,7 -112,6 +122,7 @@@ proxguiqt.moc.cpp: proxguiqt.
  
  clean:
        $(RM) $(CLEAN)
 +      cd ../liblua && make clean
  
  tarbin: $(BINS)
        $(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(BINS:%=client/%)
@@@ -135,8 -127,4 +138,8 @@@ install_kext: Info.plis
        touch /System/Library/Extensions
        @echo "*** You may need to reboot for the kext to take effect."
  
 +lua_build:
 +      @echo Compiling liblua, using platform $(LUAPLATFORM)
 +      cd ../liblua && make $(LUAPLATFORM)
 +
  .PHONY: all clean
diff --combined client/cmdmain.c
index 9da1b308282fc53d21c4a6b125c8c7bb6c3c9cb3,64e0c1b461e34dda45ca8ffe871f7887b5ba6d21..b6f32adacf158691a22c6a6ef353d358a0ac121f
@@@ -24,8 -24,8 +24,9 @@@
  #include "cmdlf.h"
  #include "cmdmain.h"
  #include "util.h"
 +#include "cmdscript.h"
  
  unsigned int current_command = CMD_UNKNOWN;
  //unsigned int received_command = CMD_UNKNOWN;
  //UsbCommand current_response;
@@@ -51,7 -51,6 +52,7 @@@ static command_t CommandTable[] 
    {"hw",    CmdHW,    1, "{ Hardware commands... }"},
    {"lf",    CmdLF,    1, "{ LF commands... }"},
    {"quit",  CmdQuit,  1, "Quit program"},
 +  {"script", CmdScript,   1,"Run script"},
    {NULL, NULL, 0, NULL}
  };
  
@@@ -66,6 -65,8 +67,6 @@@ int CmdQuit(const char *Cmd
    exit(0);
    return 0;
  }
 -int getCommand(UsbCommand* response);
 -void storeCommand(UsbCommand *command);
  /**
   * Waits for a certain response type. This method waits for a maximum of
   * ms_timeout milliseconds for a specified response command.
Impressum, Datenschutz