]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge pull request #121 from frederikmoellers/master
authorMartin Holst Swende <martin@swende.se>
Tue, 23 Jun 2015 20:23:08 +0000 (22:23 +0200)
committerMartin Holst Swende <martin@swende.se>
Tue, 23 Jun 2015 20:23:08 +0000 (22:23 +0200)
Add PACE replay functionality

1  2 
armsrc/appmain.c
armsrc/apps.h
include/usb_cmd.h

diff --combined armsrc/appmain.c
index fb3c0f18ce22a5ccfdbc68599da9091ebf9a398f,bd1075c14b2b3cd8cc86b986cf1b85324f45fc4a..152f8a3ec2c6345c9a93d12afaa145beae905e19
@@@ -250,6 -250,55 +250,6 @@@ void MeasureAntennaTuningHf(void
  }
  
  
 -void SimulateTagHfListen(void)
 -{
 -      // ToDo: historically this used the free buffer, which was 2744 Bytes long. 
 -      // There might be a better size to be defined:
 -      #define HF_14B_SNOOP_BUFFER_SIZE 2744
 -      uint8_t *dest = BigBuf_malloc(HF_14B_SNOOP_BUFFER_SIZE);
 -      uint8_t v = 0;
 -      int i;
 -      int p = 0;
 -
 -      // We're using this mode just so that I can test it out; the simulated
 -      // tag mode would work just as well and be simpler.
 -      FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
 -      FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR | FPGA_HF_READER_RX_XCORR_848_KHZ | FPGA_HF_READER_RX_XCORR_SNOOP);
 -
 -      // We need to listen to the high-frequency, peak-detected path.
 -      SetAdcMuxFor(GPIO_MUXSEL_HIPKD);
 -
 -      FpgaSetupSsc();
 -
 -      i = 0;
 -      for(;;) {
 -              if(AT91C_BASE_SSC->SSC_SR & (AT91C_SSC_TXRDY)) {
 -                      AT91C_BASE_SSC->SSC_THR = 0xff;
 -              }
 -              if(AT91C_BASE_SSC->SSC_SR & (AT91C_SSC_RXRDY)) {
 -                      uint8_t r = (uint8_t)AT91C_BASE_SSC->SSC_RHR;
 -
 -                      v <<= 1;
 -                      if(r & 1) {
 -                              v |= 1;
 -                      }
 -                      p++;
 -
 -                      if(p >= 8) {
 -                              dest[i] = v;
 -                              v = 0;
 -                              p = 0;
 -                              i++;
 -
 -                              if(i >= HF_14B_SNOOP_BUFFER_SIZE) {
 -                                      break;
 -                              }
 -                      }
 -              }
 -      }
 -      DbpString("simulate tag (now type bitsamples)");
 -}
 -
  void ReadMem(int addr)
  {
        const uint8_t *data = ((uint8_t *)addr);
@@@ -733,17 -782,20 +733,17 @@@ void UsbPacketReceived(uint8_t *packet
  #endif
  
  #ifdef WITH_ISO14443b
 -              case CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443:
 -                      AcquireRawAdcSamplesIso14443(c->arg[0]);
 -                      break;
                case CMD_READ_SRI512_TAG:
 -                      ReadSTMemoryIso14443(0x0F);
 +                      ReadSTMemoryIso14443b(0x0F);
                        break;
                case CMD_READ_SRIX4K_TAG:
 -                      ReadSTMemoryIso14443(0x7F);
 +                      ReadSTMemoryIso14443b(0x7F);
                        break;
 -              case CMD_SNOOP_ISO_14443:
 -                      SnoopIso14443();
 +              case CMD_SNOOP_ISO_14443B:
 +                      SnoopIso14443b();
                        break;
 -              case CMD_SIMULATE_TAG_ISO_14443:
 -                      SimulateIso14443Tag();
 +              case CMD_SIMULATE_TAG_ISO_14443B:
 +                      SimulateIso14443bTag();
                        break;
                case CMD_ISO_14443B_COMMAND:
                        SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
                case CMD_EPA_PACE_COLLECT_NONCE:
                        EPA_PACE_Collect_Nonce(c);
                        break;
+               case CMD_EPA_PACE_REPLAY:
+                       EPA_PACE_Replay(c);
+                       break;
                        
                case CMD_READER_MIFARE:
                        ReaderMifare(c->arg[0]);
                        break;
  #endif
  
 -              case CMD_SIMULATE_TAG_HF_LISTEN:
 -                      SimulateTagHfListen();
 -                      break;
 -
                case CMD_BUFF_CLEAR:
                        BigBuf_Clear();
                        break;
diff --combined armsrc/apps.h
index 542f3a650d92f87f09ee712476e0bc45e1590069,715e70026bc0c60cc529e356b46600c1e4c48319..a4144a91bc5d0dddb3868d301f146b6f8a171e5d
@@@ -141,10 -141,10 +141,10 @@@ void EM4xReadWord(uint8_t Address, uint
  void EM4xWriteWord(uint32_t Data, uint8_t Address, uint32_t Pwd, uint8_t PwdMode);
  
  /// iso14443.h
 -void SimulateIso14443Tag(void);
 -void AcquireRawAdcSamplesIso14443(uint32_t parameter);
 -void ReadSTMemoryIso14443(uint32_t);
 -void RAMFUNC SnoopIso14443(void);
 +void SimulateIso14443bTag(void);
 +void AcquireRawAdcSamplesIso14443b(uint32_t parameter);
 +void ReadSTMemoryIso14443b(uint32_t);
 +void RAMFUNC SnoopIso14443b(void);
  void SendRawCommand14443B(uint32_t, uint32_t, uint8_t, uint8_t[]);
  
  /// iso14443a.h
@@@ -160,6 -160,7 +160,7 @@@ void RAMFUNC SniffMifare(uint8_t param)
  
  /// epa.h
  void EPA_PACE_Collect_Nonce(UsbCommand * c);
+ void EPA_PACE_Replay(UsbCommand *c);
  
  // mifarecmd.h
  void ReaderMifare(bool first_try);
diff --combined include/usb_cmd.h
index 132e1805d31c8fb6fd5c987ec5d01033f6c67dcf,169f30cfcb8607d79a79ff5e1f115d1c504032c9..524554e9384b1db9c715a182df6bddf08431c3b2
@@@ -100,6 -100,7 +100,6 @@@ typedef struct
  
  // For the 13.56 MHz tags
  #define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693                             0x0300
 -#define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443                             0x0301
  #define CMD_READ_SRI512_TAG                                               0x0303
  #define CMD_READ_SRIX4K_TAG                                               0x0304
  #define CMD_ISO_14443B_COMMAND                                            0x0305
  #define CMD_SIMULATE_HITAG                                                0x0371
  #define CMD_READER_HITAG                                                  0x0372
  
 -#define CMD_SIMULATE_TAG_HF_LISTEN                                        0x0380
 -#define CMD_SIMULATE_TAG_ISO_14443                                        0x0381
 -#define CMD_SNOOP_ISO_14443                                               0x0382
 +#define CMD_SIMULATE_TAG_ISO_14443B                                       0x0381
 +#define CMD_SNOOP_ISO_14443B                                              0x0382
  #define CMD_SNOOP_ISO_14443a                                              0x0383
  #define CMD_SIMULATE_TAG_ISO_14443a                                       0x0384
  #define CMD_READER_ISO_14443a                                             0x0385
  #define CMD_READER_LEGIC_RF                                               0x0388
  #define CMD_WRITER_LEGIC_RF                                               0x0389
  #define CMD_EPA_PACE_COLLECT_NONCE                                        0x038A
+ #define CMD_EPA_PACE_REPLAY                                               0x038B
  
  #define CMD_SNOOP_ICLASS                                                  0x0392
  #define CMD_SIMULATE_TAG_ICLASS                                           0x0393
Impressum, Datenschutz