X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/aaa1a9a2dcb8b9f2b6acd937f84464daa50ecad6..4c44d8850046e07ecc3fc8bfbd20a2b7a2e71855:/armsrc/appmain.c?ds=sidebyside diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 2ba3d75c..14ecf28f 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -9,18 +9,14 @@ // The main application code. This is the first thing called after start.c // executes. //----------------------------------------------------------------------------- - #include "usb_cdc.h" #include "cmd.h" - #include "proxmark3.h" #include "apps.h" #include "util.h" #include "printf.h" #include "string.h" - #include - #include "legicrf.h" #include "hitag2.h" #include "hitagS.h" @@ -28,6 +24,7 @@ #include "BigBuf.h" #include "mifareutil.h" #include "pcf7931.h" + #ifdef WITH_LCD #include "LCD.h" #endif @@ -38,8 +35,6 @@ #include "protocols.h" #endif -#define abs(x) ( ((x)<0) ? -(x) : (x) ) - //============================================================================= // A buffer where we can queue things up to be sent through the FPGA, for // any purpose (fake tag, as reader, whatever). We go MSB first, since that @@ -76,6 +71,11 @@ void ToSendStuffBit(int b) { } } +void PrintToSendBuffer(void){ + DbpString("Printing ToSendBuffer:"); + Dbhexdump(ToSendMax, ToSend, 0); +} + //============================================================================= // Debug print functions, to go out over USB, to the usual PC-side client. //============================================================================= @@ -832,7 +832,7 @@ void ListenReaderField(int limit) { if (limit != HF_ONLY) { if(mode == 1) { - if (abs(lf_av - lf_baseline) > REPORT_CHANGE) + if (ABS(lf_av - lf_baseline) > REPORT_CHANGE) LED_D_ON(); else LED_D_OFF(); @@ -840,7 +840,7 @@ void ListenReaderField(int limit) { lf_av_new = AvgAdc(ADC_CHAN_LF); // see if there's a significant change - if(abs(lf_av - lf_av_new) > REPORT_CHANGE) { + if(ABS(lf_av - lf_av_new) > REPORT_CHANGE) { Dbprintf("LF 125/134kHz Field Change: %5dmV", (MAX_ADC_LF_VOLTAGE * lf_av_new) >> 10); lf_av = lf_av_new; if (lf_av > lf_max) @@ -850,7 +850,7 @@ void ListenReaderField(int limit) { if (limit != LF_ONLY) { if (mode == 1){ - if (abs(hf_av - hf_baseline) > REPORT_CHANGE) + if (ABS(hf_av - hf_baseline) > REPORT_CHANGE) LED_B_ON(); else LED_B_OFF(); @@ -858,7 +858,7 @@ void ListenReaderField(int limit) { hf_av_new = AvgAdc(ADC_CHAN_HF); // see if there's a significant change - if(abs(hf_av - hf_av_new) > REPORT_CHANGE) { + if(ABS(hf_av - hf_av_new) > REPORT_CHANGE) { Dbprintf("HF 13.56MHz Field Change: %5dmV", (MAX_ADC_HF_VOLTAGE * hf_av_new) >> 10); hf_av = hf_av_new; if (hf_av > hf_max) @@ -910,7 +910,7 @@ void UsbPacketReceived(uint8_t *packet, int len) cmd_send(CMD_ACK, SampleLF(c->arg[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); + ModThenAcquireRawAdcSamples125k(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes); break; case CMD_LF_SNOOP_RAW_ADC_SAMPLES: cmd_send(CMD_ACK,SnoopLF(),0,0,0,0); @@ -1013,10 +1013,10 @@ void UsbPacketReceived(uint8_t *packet, int len) case CMD_TEST_HITAGS_TRACES:// Tests every challenge within the given file check_challenges((bool)c->arg[0],(byte_t*)c->d.asBytes); break; - case CMD_READ_HITAG_S://Reader for only Hitag S tags, args = key or challenge + case CMD_READ_HITAG_S: //Reader for only Hitag S tags, args = key or challenge ReadHitagS((hitag_function)c->arg[0],(hitag_data*)c->d.asBytes); break; - case CMD_WR_HITAG_S://writer for Hitag tags args=data to write,page and key or challenge + case CMD_WR_HITAG_S: //writer for Hitag tags args=data to write,page and key or challenge WritePageHitagS((hitag_function)c->arg[0],(hitag_data*)c->d.asBytes,c->arg[2]); break; #endif @@ -1058,26 +1058,28 @@ void UsbPacketReceived(uint8_t *packet, int len) LegicRfWriter(c->arg[1], c->arg[0]); break; + case CMD_RAW_WRITER_LEGIC_RF: + LegicRfRawWriter(c->arg[0], c->arg[1]); + break; + case CMD_READER_LEGIC_RF: LegicRfReader(c->arg[0], c->arg[1]); break; #endif #ifdef WITH_ISO14443b - case CMD_READ_SRI512_TAG: - ReadSTMemoryIso14443b(0x0F); - break; - case CMD_READ_SRIX4K_TAG: - ReadSTMemoryIso14443b(0x7F); + case CMD_READ_SRI_TAG: + ReadSTMemoryIso14443b(c->arg[0]); break; case CMD_SNOOP_ISO_14443B: SnoopIso14443b(); break; case CMD_SIMULATE_TAG_ISO_14443B: - SimulateIso14443bTag(); + SimulateIso14443bTag(c->arg[0]); break; case CMD_ISO_14443B_COMMAND: - SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes); + //SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes); + SendRawCommand14443B_Ex(c); break; #endif @@ -1091,16 +1093,14 @@ void UsbPacketReceived(uint8_t *packet, int len) case CMD_SIMULATE_TAG_ISO_14443a: SimulateIso14443aTag(c->arg[0], c->arg[1], c->d.asBytes); // ## Simulate iso14443a tag - pass tag type & UID break; - 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], c->arg[1]); + ReaderMifare(c->arg[0], c->arg[1], c->arg[2]); break; case CMD_MIFARE_READBL: MifareReadBlock(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes);