mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 21:33:47 -07:00
ADD: @marshmellow42 fudan detection in hf mfu
ADD: @marshmellow42 14b reader changes. ADD: @pwpiwi 14b fixes
This commit is contained in:
parent
569009f3f7
commit
22e2470051
14 changed files with 349 additions and 515 deletions
|
@ -18,12 +18,13 @@
|
|||
#include "util.h"
|
||||
#include "printf.h"
|
||||
#include "string.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "legicrf.h"
|
||||
#include <hitag2.h>
|
||||
#include "lfsampling.h"
|
||||
#include "BigBuf.h"
|
||||
|
||||
#ifdef WITH_LCD
|
||||
#include "LCD.h"
|
||||
#endif
|
||||
|
@ -249,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);
|
||||
|
@ -781,19 +733,16 @@ void UsbPacketReceived(uint8_t *packet, int len)
|
|||
#endif
|
||||
|
||||
#ifdef WITH_ISO14443b
|
||||
case CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443:
|
||||
AcquireRawAdcSamplesIso14443b(c->arg[0]);
|
||||
break;
|
||||
case CMD_READ_SRI512_TAG:
|
||||
ReadSTMemoryIso14443b(0x0F);
|
||||
break;
|
||||
case CMD_READ_SRIX4K_TAG:
|
||||
ReadSTMemoryIso14443b(0x7F);
|
||||
break;
|
||||
case CMD_SNOOP_ISO_14443:
|
||||
case CMD_SNOOP_ISO_14443B:
|
||||
SnoopIso14443b();
|
||||
break;
|
||||
case CMD_SIMULATE_TAG_ISO_14443:
|
||||
case CMD_SIMULATE_TAG_ISO_14443B:
|
||||
SimulateIso14443bTag();
|
||||
break;
|
||||
case CMD_ISO_14443B_COMMAND:
|
||||
|
@ -816,10 +765,6 @@ void UsbPacketReceived(uint8_t *packet, int len)
|
|||
EPA_PACE_Collect_Nonce(c);
|
||||
break;
|
||||
|
||||
// case CMD_EPA_:
|
||||
// EpaFoo(c);
|
||||
// break;
|
||||
|
||||
case CMD_READER_MIFARE:
|
||||
ReaderMifare(c->arg[0]);
|
||||
break;
|
||||
|
@ -936,10 +881,6 @@ void UsbPacketReceived(uint8_t *packet, int len)
|
|||
break;
|
||||
#endif
|
||||
|
||||
case CMD_SIMULATE_TAG_HF_LISTEN:
|
||||
SimulateTagHfListen();
|
||||
break;
|
||||
|
||||
case CMD_BUFF_CLEAR:
|
||||
BigBuf_Clear();
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue