mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
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:
parent
ea7ce7fb68
commit
42c235e7ef
13 changed files with 24 additions and 34 deletions
|
@ -1369,7 +1369,7 @@ void CopyHIDtoT55x7(uint32_t hi2, uint32_t hi, uint32_t lo, uint8_t longFMT) {
|
|||
data[4] = manchesterEncode2Bytes(hi & 0xFFFF);
|
||||
data[5] = manchesterEncode2Bytes(lo >> 16);
|
||||
data[6] = manchesterEncode2Bytes(lo & 0xFFFF);
|
||||
} else {
|
||||
} else {
|
||||
// Ensure no more than 44 bits supplied
|
||||
if (hi > 0xFFF) {
|
||||
DbpString("Tags can only have 44 bits.");
|
||||
|
@ -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;
|
||||
|
||||
LED_D_ON();
|
||||
// Program the data blocks for supplied ID
|
||||
// and the block 0 for HID format
|
||||
WriteT55xx(data, 0, last_block+1);
|
||||
|
||||
LED_D_OFF();
|
||||
|
||||
DbpString("DONE!");
|
||||
}
|
||||
|
||||
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
|
||||
WriteT55xx(data, 0, 3);
|
||||
LED_D_OFF();
|
||||
DbpString("DONE!");
|
||||
}
|
||||
|
||||
// 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);
|
||||
//Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=2;Inverse data)
|
||||
// T5567WriteBlock(0x603E1042,0);
|
||||
DbpString("DONE!");
|
||||
}
|
||||
// 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) {
|
||||
|
@ -1437,7 +1430,6 @@ void CopyIndala224toT55x7(uint32_t uid1, uint32_t uid2, uint32_t uid3, uint32_t
|
|||
WriteT55xx(data, 0, 8);
|
||||
//Alternative config for Indala (Extended mode;RF/32;PSK1 with RF/2;Maxblock=7;Inverse data)
|
||||
// T5567WriteBlock(0x603E10E2,0);
|
||||
DbpString("DONE!");
|
||||
}
|
||||
// clone viking tag to T55xx
|
||||
void CopyVikingtoT55xx(uint32_t block1, uint32_t block2, uint8_t Q5) {
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
#include <string.h>
|
||||
#include <limits.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 "ui.h" // for show graph controls
|
||||
#include "graph.h" // for graph data
|
||||
|
@ -41,6 +40,9 @@
|
|||
#include "cmdlfvisa2000.h" // for VISA2000 menu
|
||||
#include "cmdlfnoralsy.h" // for NORALSY meny
|
||||
#include "cmdlffdx.h" // for FDX-B meny
|
||||
|
||||
#define T55XX_WRITE_TIMEOUT 1500
|
||||
|
||||
int CmdLF(const char *Cmd);
|
||||
|
||||
int CmdLFCommandRead(const char *Cmd);
|
||||
|
|
|
@ -313,7 +313,7 @@ int CmdAWIDClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -250,7 +250,7 @@ int CmdFdxClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Low frequency Farpoint / Pyramid tag commands
|
||||
//-----------------------------------------------------------------------------
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "cmdlfguard.h"
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
|
@ -40,7 +39,6 @@ int usage_lf_guard_sim(void) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// Works for 26bits.
|
||||
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 = 0x66;
|
||||
uint8_t i;
|
||||
|
||||
|
||||
uint8_t pre[96];
|
||||
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) {
|
||||
CmdLFRead("s");
|
||||
getSamples("20000", TRUE);
|
||||
getSamples("12000", TRUE);
|
||||
return CmdG_Prox_II_Demod("");
|
||||
}
|
||||
|
||||
|
@ -161,7 +157,7 @@ int CmdGuardClone(const char *Cmd) {
|
|||
PrintAndLog("Blk | Data ");
|
||||
PrintAndLog("----+------------");
|
||||
for ( i = 0; i<4; ++i )
|
||||
PrintAndLog(" %02d | %08x", i, blocks[i]);
|
||||
PrintAndLog(" %02d | 0x%08x", i, blocks[i]);
|
||||
|
||||
UsbCommand resp;
|
||||
UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}};
|
||||
|
@ -171,7 +167,7 @@ int CmdGuardClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
#ifndef CMDLFGUARD_H__
|
||||
#define CMDLFGUARD_H__
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
#include "proxmark3.h"
|
||||
#include "ui.h"
|
||||
#include "util.h"
|
||||
|
|
|
@ -180,7 +180,7 @@ int CmdJablotronClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -254,7 +254,7 @@ int CmdLFNedapClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -184,7 +184,7 @@ int CmdNoralsyClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -116,13 +116,12 @@ int GetPrescoBits(uint32_t fullcode, uint8_t *prescoBits) {
|
|||
//see ASKDemod for what args are accepted
|
||||
int CmdPrescoDemod(const char *Cmd) {
|
||||
bool st = true;
|
||||
|
||||
if (!ASKDemod_ext("32 0 0", FALSE, FALSE, 1, &st)) {
|
||||
if (g_debugMode) PrintAndLog("DEBUG: Error Presco ASKDemod failed");
|
||||
return 0;
|
||||
}
|
||||
size_t size = DemodBufferLen;
|
||||
//call lfdemod.c demod for Viking
|
||||
//call lfdemod.c demod for Presco
|
||||
int ans = PrescoDemod(DemodBuffer, &size);
|
||||
if (ans < 0) {
|
||||
if (g_debugMode){
|
||||
|
@ -163,7 +162,7 @@ int CmdPrescoRead(const char *Cmd) {
|
|||
// read lf silently
|
||||
CmdLFRead("s");
|
||||
// get samples silently
|
||||
getSamples("20000", TRUE);
|
||||
getSamples("12000", TRUE);
|
||||
// demod and output Presco ID
|
||||
return CmdPrescoDemod(Cmd);
|
||||
}
|
||||
|
@ -174,7 +173,7 @@ int CmdPrescoClone(const char *Cmd) {
|
|||
|
||||
bool Q5 = false;
|
||||
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.
|
||||
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;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ int CmdPyramidClone(const char *Cmd) {
|
|||
PrintAndLog("Blk | Data ");
|
||||
PrintAndLog("----+------------");
|
||||
for ( i = 0; i<5; ++i )
|
||||
PrintAndLog(" %02d | %08" PRIx32, i, blocks[i]);
|
||||
PrintAndLog(" %02d | 0x%08" PRIx32, i, blocks[i]);
|
||||
|
||||
UsbCommand resp;
|
||||
UsbCommand c = {CMD_T55XX_WRITE_BLOCK, {0,0,0}};
|
||||
|
@ -125,7 +125,7 @@ int CmdPyramidClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -1410,10 +1410,9 @@ void t55x7_create_config_block( int tagtype ){
|
|||
|
||||
int CmdResetRead(const char *Cmd) {
|
||||
UsbCommand c = {CMD_T55XX_RESET_READ, {0,0,0}};
|
||||
|
||||
clearCommandBuffer();
|
||||
SendCommand(&c);
|
||||
if ( !WaitForResponseTimeout(CMD_ACK,NULL,2500) ) {
|
||||
if ( !WaitForResponseTimeout(CMD_ACK, NULL, 2500) ) {
|
||||
PrintAndLog("command execution time out");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -137,7 +137,7 @@ int CmdVisa2kClone(const char *Cmd) {
|
|||
c.arg[1] = i;
|
||||
clearCommandBuffer();
|
||||
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.");
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue