ADD: T55XX_WRITE_TIMEOUT to make sure all WaitForResponseTimeout for t55xx behaves the same.

CHG:  removed some "DONE!" device prints..
CHG:  unified some "clone" commands output.
This commit is contained in:
iceman1001 2017-01-18 22:54:27 +01:00
commit 42c235e7ef
13 changed files with 24 additions and 34 deletions

View file

@ -1389,13 +1389,8 @@ void CopyHIDtoT55x7(uint32_t hi2, uint32_t hi, uint32_t lo, uint8_t longFMT) {
// data[0] = (((50-2)/2)<<T5555_BITRATE_SHIFT) | T5555_MODULATION_FSK2 | T5555_INVERT_OUTPUT | last_block << T5555_MAXBLOCK_SHIFT; // data[0] = (((50-2)/2)<<T5555_BITRATE_SHIFT) | T5555_MODULATION_FSK2 | T5555_INVERT_OUTPUT | last_block << T5555_MAXBLOCK_SHIFT;
LED_D_ON(); LED_D_ON();
// Program the data blocks for supplied ID
// and the block 0 for HID format
WriteT55xx(data, 0, last_block+1); WriteT55xx(data, 0, last_block+1);
LED_D_OFF(); LED_D_OFF();
DbpString("DONE!");
} }
void CopyIOtoT55x7(uint32_t hi, uint32_t lo) { void CopyIOtoT55x7(uint32_t hi, uint32_t lo) {
@ -1409,7 +1404,6 @@ void CopyIOtoT55x7(uint32_t hi, uint32_t lo) {
// and the block 0 config // and the block 0 config
WriteT55xx(data, 0, 3); WriteT55xx(data, 0, 3);
LED_D_OFF(); LED_D_OFF();
DbpString("DONE!");
} }
// Clone Indala 64-bit tag by UID to T55x7 // Clone Indala 64-bit tag by UID to T55x7
@ -1423,7 +1417,6 @@ void CopyIndala64toT55x7(uint32_t hi, uint32_t lo) {
WriteT55xx(data, 0, 3); WriteT55xx(data, 0, 3);
//Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=2;Inverse data) //Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=2;Inverse data)
// T5567WriteBlock(0x603E1042,0); // T5567WriteBlock(0x603E1042,0);
DbpString("DONE!");
} }
// Clone Indala 224-bit tag by UID to T55x7 // Clone Indala 224-bit tag by UID to T55x7
void CopyIndala224toT55x7(uint32_t uid1, uint32_t uid2, uint32_t uid3, uint32_t uid4, uint32_t uid5, uint32_t uid6, uint32_t uid7) { void CopyIndala224toT55x7(uint32_t uid1, uint32_t uid2, uint32_t uid3, uint32_t uid4, uint32_t uid5, uint32_t uid6, uint32_t uid7) {
@ -1437,7 +1430,6 @@ void CopyIndala224toT55x7(uint32_t uid1, uint32_t uid2, uint32_t uid3, uint32_t
WriteT55xx(data, 0, 8); WriteT55xx(data, 0, 8);
//Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=7;Inverse data) //Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=7;Inverse data)
// T5567WriteBlock(0x603E10E2,0); // T5567WriteBlock(0x603E10E2,0);
DbpString("DONE!");
} }
// clone viking tag to T55xx // clone viking tag to T55xx
void CopyVikingtoT55xx(uint32_t block1, uint32_t block2, uint8_t Q5) { void CopyVikingtoT55xx(uint32_t block1, uint32_t block2, uint8_t Q5) {

View file

@ -15,8 +15,7 @@
#include <string.h> #include <string.h>
#include <limits.h> #include <limits.h>
#include "proxmark3.h" #include "proxmark3.h"
#include "lfdemod.h" #include "lfdemod.h" // device/client demods of LF signals
#include "util.h" // for parsing cli command utils #include "util.h" // for parsing cli command utils
#include "ui.h" // for show graph controls #include "ui.h" // for show graph controls
#include "graph.h" // for graph data #include "graph.h" // for graph data
@ -41,6 +40,9 @@
#include "cmdlfvisa2000.h" // for VISA2000 menu #include "cmdlfvisa2000.h" // for VISA2000 menu
#include "cmdlfnoralsy.h" // for NORALSY meny #include "cmdlfnoralsy.h" // for NORALSY meny
#include "cmdlffdx.h" // for FDX-B meny #include "cmdlffdx.h" // for FDX-B meny
#define T55XX_WRITE_TIMEOUT 1500
int CmdLF(const char *Cmd); int CmdLF(const char *Cmd);
int CmdLFCommandRead(const char *Cmd); int CmdLFCommandRead(const char *Cmd);

View file

@ -313,7 +313,7 @@ int CmdAWIDClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1500)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -250,7 +250,7 @@ int CmdFdxClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -6,8 +6,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Low frequency Farpoint / Pyramid tag commands // Low frequency Farpoint / Pyramid tag commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include <string.h>
#include <inttypes.h>
#include "cmdlfguard.h" #include "cmdlfguard.h"
static int CmdHelp(const char *Cmd); static int CmdHelp(const char *Cmd);
@ -40,7 +39,6 @@ int usage_lf_guard_sim(void) {
return 0; return 0;
} }
// Works for 26bits. // Works for 26bits.
int GetGuardBits(uint32_t fc, uint32_t cn, uint8_t *guardBits) { int GetGuardBits(uint32_t fc, uint32_t cn, uint8_t *guardBits) {
@ -50,8 +48,6 @@ int GetGuardBits(uint32_t fc, uint32_t cn, uint8_t *guardBits) {
//uint8_t xorKey = rand() % 0xFF; //uint8_t xorKey = rand() % 0xFF;
uint8_t xorKey = 0x66; uint8_t xorKey = 0x66;
uint8_t i; uint8_t i;
uint8_t pre[96]; uint8_t pre[96];
memset(pre, 0x00, sizeof(pre)); memset(pre, 0x00, sizeof(pre));
@ -122,7 +118,7 @@ int GetGuardBits(uint32_t fc, uint32_t cn, uint8_t *guardBits) {
int CmdGuardRead(const char *Cmd) { int CmdGuardRead(const char *Cmd) {
CmdLFRead("s"); CmdLFRead("s");
getSamples("20000", TRUE); getSamples("12000", TRUE);
return CmdG_Prox_II_Demod(""); return CmdG_Prox_II_Demod("");
} }
@ -161,7 +157,7 @@ int CmdGuardClone(const char *Cmd) {
PrintAndLog("Blk | Data "); PrintAndLog("Blk | Data ");
PrintAndLog("----+------------"); PrintAndLog("----+------------");
for ( i = 0; i<4; ++i ) for ( i = 0; i<4; ++i )
PrintAndLog(" %02d | %08x", i, blocks[i]); PrintAndLog(" %02d | 0x%08x", i, blocks[i]);
UsbCommand resp; UsbCommand resp;
UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}}; UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}};
@ -171,7 +167,7 @@ int CmdGuardClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -8,6 +8,8 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef CMDLFGUARD_H__ #ifndef CMDLFGUARD_H__
#define CMDLFGUARD_H__ #define CMDLFGUARD_H__
#include <string.h>
#include <inttypes.h>
#include "proxmark3.h" #include "proxmark3.h"
#include "ui.h" #include "ui.h"
#include "util.h" #include "util.h"

View file

@ -180,7 +180,7 @@ int CmdJablotronClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -254,7 +254,7 @@ int CmdLFNedapClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -184,7 +184,7 @@ int CmdNoralsyClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -116,13 +116,12 @@ int GetPrescoBits(uint32_t fullcode, uint8_t *prescoBits) {
//see ASKDemod for what args are accepted //see ASKDemod for what args are accepted
int CmdPrescoDemod(const char *Cmd) { int CmdPrescoDemod(const char *Cmd) {
bool st = true; bool st = true;
if (!ASKDemod_ext("32 0 0", FALSE, FALSE, 1, &st)) { if (!ASKDemod_ext("32 0 0", FALSE, FALSE, 1, &st)) {
if (g_debugMode) PrintAndLog("DEBUG: Error Presco ASKDemod failed"); if (g_debugMode) PrintAndLog("DEBUG: Error Presco ASKDemod failed");
return 0; return 0;
} }
size_t size = DemodBufferLen; size_t size = DemodBufferLen;
//call lfdemod.c demod for Viking //call lfdemod.c demod for Presco
int ans = PrescoDemod(DemodBuffer, &size); int ans = PrescoDemod(DemodBuffer, &size);
if (ans < 0) { if (ans < 0) {
if (g_debugMode){ if (g_debugMode){
@ -163,7 +162,7 @@ int CmdPrescoRead(const char *Cmd) {
// read lf silently // read lf silently
CmdLFRead("s"); CmdLFRead("s");
// get samples silently // get samples silently
getSamples("20000", TRUE); getSamples("12000", TRUE);
// demod and output Presco ID // demod and output Presco ID
return CmdPrescoDemod(Cmd); return CmdPrescoDemod(Cmd);
} }
@ -174,7 +173,7 @@ int CmdPrescoClone(const char *Cmd) {
bool Q5 = false; bool Q5 = false;
uint32_t sitecode=0, usercode=0, fullcode=0; uint32_t sitecode=0, usercode=0, fullcode=0;
uint32_t blocks[5] = {T55x7_MODULATION_MANCHESTER | T55x7_BITRATE_RF_32 | 4<<T55x7_MAXBLOCK_SHIFT | T55x7_ST_TERMINATOR, 0, 0, 0, 5}; uint32_t blocks[5] = {T55x7_MODULATION_MANCHESTER | T55x7_BITRATE_RF_32 | 4<<T55x7_MAXBLOCK_SHIFT | T55x7_ST_TERMINATOR, 0, 0, 0, 0};
// get wiegand from printed number. // get wiegand from printed number.
if (GetWiegandFromPresco(Cmd, &sitecode, &usercode, &fullcode, &Q5) == -1) return usage_lf_presco_clone(); if (GetWiegandFromPresco(Cmd, &sitecode, &usercode, &fullcode, &Q5) == -1) return usage_lf_presco_clone();
@ -215,7 +214,7 @@ int CmdPrescoClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -115,7 +115,7 @@ int CmdPyramidClone(const char *Cmd) {
PrintAndLog("Blk | Data "); PrintAndLog("Blk | Data ");
PrintAndLog("----+------------"); PrintAndLog("----+------------");
for ( i = 0; i<5; ++i ) for ( i = 0; i<5; ++i )
PrintAndLog(" %02d | %08" PRIx32, i, blocks[i]); PrintAndLog(" %02d | 0x%08" PRIx32, i, blocks[i]);
UsbCommand resp; UsbCommand resp;
UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}}; UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}};
@ -125,7 +125,7 @@ int CmdPyramidClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }

View file

@ -1410,10 +1410,9 @@ void t55x7_create_config_block( int tagtype ){
int CmdResetRead(const char *Cmd) { int CmdResetRead(const char *Cmd) {
UsbCommand c = {CMD_T55XX_RESET_READ, {0,0,0}}; UsbCommand c = {CMD_T55XX_RESET_READ, {0,0,0}};
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if ( !WaitForResponseTimeout(CMD_ACK,NULL,2500) ) { if ( !WaitForResponseTimeout(CMD_ACK, NULL, 2500) ) {
PrintAndLog("command execution time out"); PrintAndLog("command execution time out");
return 0; return 0;
} }

View file

@ -137,7 +137,7 @@ int CmdVisa2kClone(const char *Cmd) {
c.arg[1] = i; c.arg[1] = i;
clearCommandBuffer(); clearCommandBuffer();
SendCommand(&c); SendCommand(&c);
if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){
PrintAndLog("Error occurred, device did not respond during write operation."); PrintAndLog("Error occurred, device did not respond during write operation.");
return -1; return -1;
} }