X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/5cc88edfaf4d81ce5e87f1b5af9adde0f0aa90e6..59e933fc3f9c4283436b3b317b38c77db0e5d0a7:/armsrc/hitag2.c diff --git a/armsrc/hitag2.c b/armsrc/hitag2.c index d1005f3c..4596d3f1 100644 --- a/armsrc/hitag2.c +++ b/armsrc/hitag2.c @@ -414,7 +414,7 @@ static void hitag_reader_send_bit(int bit) { // Binary puls length modulation (BPLM) is used to encode the data stream // This means that a transmission of a one takes longer than that of a zero - // Enable modulation, which means, drop the the field + // Enable modulation, which means, drop the field HIGH(GPIO_SSC_DOUT); // Wait for 4-10 times the carrier period @@ -444,7 +444,7 @@ static void hitag_reader_send_frame(const byte_t* frame, size_t frame_len) } // Send EOF AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG; - // Enable modulation, which means, drop the the field + // Enable modulation, which means, drop the field HIGH(GPIO_SSC_DOUT); // Wait for 4-10 times the carrier period while(AT91C_BASE_TC0->TC_CV < T0*6); @@ -712,15 +712,17 @@ void SnoopHitag(uint32_t type) { size_t rxlen=0; FpgaDownloadAndGo(FPGA_BITSTREAM_LF); - + + // free eventually allocated BigBuf memory + BigBuf_free(); BigBuf_Clear_ext(false); + // Clean up trace and prepare it for storing frames - set_tracing(TRUE); clear_trace(); + set_tracing(TRUE); auth_table_len = 0; auth_table_pos = 0; - BigBuf_free(); auth_table = (byte_t *)BigBuf_malloc(AUTH_TABLE_LENGTH); memset(auth_table, 0x00, AUTH_TABLE_LENGTH); @@ -927,14 +929,17 @@ void SimulateHitagTag(bool tag_mem_supplied, byte_t* data) { FpgaDownloadAndGo(FPGA_BITSTREAM_LF); + // free eventually allocated BigBuf memory + BigBuf_free(); BigBuf_Clear_ext(false); + // Clean up trace and prepare it for storing frames - set_tracing(TRUE); clear_trace(); - + set_tracing(TRUE); + auth_table_len = 0; auth_table_pos = 0; byte_t* auth_table; - BigBuf_free(); + auth_table = (byte_t *)BigBuf_malloc(AUTH_TABLE_LENGTH); memset(auth_table, 0x00, AUTH_TABLE_LENGTH); @@ -1121,9 +1126,9 @@ void ReaderHitag(hitag_function htf, hitag_data* htd) { bSuccessful = false; // Clean up trace and prepare it for storing frames - set_tracing(TRUE); clear_trace(); - + set_tracing(TRUE); + DbpString("Starting Hitag reader family"); // Check configuration @@ -1149,7 +1154,7 @@ void ReaderHitag(hitag_function htf, hitag_data* htd) { case RHT2F_CRYPTO: { DbpString("Authenticating using key:"); - memcpy(key,htd->crypto.key,4); //HACK; 4 or 6?? I read both in the code. + memcpy(key,htd->crypto.key,6); //HACK; 4 or 6?? I read both in the code. Dbhexdump(6,key,false); blocknr = 0; bQuiet = false;