mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-07-05 20:41:34 -07:00
Make clear current FDX in Pm3 is FDX-B only
This commit is contained in:
parent
8693083747
commit
76701af8a7
15 changed files with 61 additions and 61 deletions
|
@ -248,7 +248,7 @@ set (TARGET_SOURCES
|
|||
${PM3_ROOT}/client/src/cmdlfcotag.c
|
||||
${PM3_ROOT}/client/src/cmdlfem4x.c
|
||||
${PM3_ROOT}/client/src/cmdlfem4x50.c
|
||||
${PM3_ROOT}/client/src/cmdlffdx.c
|
||||
${PM3_ROOT}/client/src/cmdlffdxb.c
|
||||
${PM3_ROOT}/client/src/cmdlfgallagher.c
|
||||
${PM3_ROOT}/client/src/cmdlfguard.c
|
||||
${PM3_ROOT}/client/src/cmdlfhid.c
|
||||
|
|
|
@ -443,7 +443,7 @@ SRCS = aidsearch.c \
|
|||
cmdlfcotag.c \
|
||||
cmdlfem4x.c \
|
||||
cmdlfem4x50.c \
|
||||
cmdlffdx.c \
|
||||
cmdlffdxb.c \
|
||||
cmdlfguard.c \
|
||||
cmdlfgallagher.c \
|
||||
cmdlfhid.c \
|
||||
|
|
|
@ -127,7 +127,7 @@ add_library(pm3rrg_rdv4 SHARED
|
|||
${PM3_ROOT}/client/src/cmdlfcotag.c
|
||||
${PM3_ROOT}/client/src/cmdlfem4x.c
|
||||
${PM3_ROOT}/client/src/cmdlfem4x50.c
|
||||
${PM3_ROOT}/client/src/cmdlffdx.c
|
||||
${PM3_ROOT}/client/src/cmdlffdxb.c
|
||||
${PM3_ROOT}/client/src/cmdlfgallagher.c
|
||||
${PM3_ROOT}/client/src/cmdlfguard.c
|
||||
${PM3_ROOT}/client/src/cmdlfhid.c
|
||||
|
|
|
@ -18,7 +18,7 @@ desc = [[
|
|||
\ / \ /
|
||||
`---' `---'
|
||||
|
||||
*SUPPORTED TAGS: pyramid, awid, fdx, jablotron, noralsy, presco, visa2000, 14a, hid
|
||||
*SUPPORTED TAGS: pyramid, awid, fdxb, jablotron, noralsy, presco, visa2000, 14a, hid
|
||||
|
||||
This script uses the Proxmark3 implementations of simulation to bruteforce given ranges of id.
|
||||
It uses both LF and HF simulations.
|
||||
|
@ -42,7 +42,7 @@ arguments = [[
|
|||
-r *see below RFID Tag: the RFID tag to emulate
|
||||
pyramid
|
||||
awid
|
||||
fdx
|
||||
fdxb
|
||||
jablotron
|
||||
noralsy
|
||||
presco
|
||||
|
@ -180,8 +180,8 @@ local function main(args)
|
|||
consolecommand = 'lf awid sim'
|
||||
rfidtagname = 'AWID'
|
||||
facilityrequired = 1
|
||||
elseif rfidtag == 'fdx' then -- I'm not sure why you would need to bruteforce this ¯\_(ツ)_/¯
|
||||
consolecommand = 'lf fdx sim'
|
||||
elseif rfidtag == 'fdxb' then -- I'm not sure why you would need to bruteforce this ¯\_(ツ)_/¯
|
||||
consolecommand = 'lf fdxb sim'
|
||||
rfidtagname = 'FDX-B'
|
||||
facilityrequired = 1
|
||||
elseif rfidtag == 'jablotron' then
|
||||
|
|
|
@ -60,7 +60,7 @@ int CmdPlot(const char *Cmd);
|
|||
int CmdSave(const char *Cmd); // used by cmd auto
|
||||
int CmdTuneSamples(const char *Cmd); // used by cmd lf hw
|
||||
|
||||
int ASKbiphaseDemod(int offset, int clk, int invert, int maxErr, bool verbose); // used by cmd lf em4x, lf fdx, lf guard, lf jablotron, lf nedap, lf t55xx
|
||||
int ASKbiphaseDemod(int offset, int clk, int invert, int maxErr, bool verbose); // used by cmd lf em4x, lf fdxb, lf guard, lf jablotron, lf nedap, lf t55xx
|
||||
int ASKDemod(int clk, int invert, int maxErr, size_t maxLen, bool amplify, bool verbose, bool emSearch, uint8_t askType); // used by cmd lf em4x, lf t55xx, lf viking
|
||||
int ASKDemod_ext(int clk, int invert, int maxErr, size_t maxLen, bool amplify, bool verbose, bool emSearch, uint8_t askType, bool *stCheck); // used by cmd lf, lf em4x, lf noralsy, le presco, lf securekey, lf t55xx, lf visa2k
|
||||
int FSKrawDemod(uint8_t rfLen, uint8_t invert, uint8_t fchigh, uint8_t fclow, bool verbose); // used by cmd lf, lf em4x, lf t55xx
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#include "cmdlfidteck.h" // for idteck menu
|
||||
#include "cmdlfio.h" // for ioprox menu
|
||||
#include "cmdlfcotag.h" // for COTAG meny
|
||||
#include "cmdlffdx.h" // for fdx-b menu
|
||||
#include "cmdlffdxb.h" // for FDX-B menu
|
||||
#include "cmdlfgallagher.h" // for GALLAGHER menu
|
||||
#include "cmdlfguard.h" // for gproxii menu
|
||||
#include "cmdlfindala.h" // for indala menu
|
||||
|
@ -1454,7 +1454,7 @@ int CmdLFfind(const char *Cmd) {
|
|||
if (demodNexWatch(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("NexWatch ID") " found!"); goto out;}
|
||||
if (demodIndala(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Indala ID") " found!"); goto out;}
|
||||
if (demodEM410x(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("EM410x ID") " found!"); goto out;}
|
||||
if (demodFDX(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("FDX-B ID") " found!"); goto out;}
|
||||
if (demodFDXB(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("FDX-B ID") " found!"); goto out;}
|
||||
if (demodGuard(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Guardall G-Prox II ID") " found!"); goto out; }
|
||||
if (demodIdteck(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Idteck ID") " found!"); goto out;}
|
||||
if (demodJablotron(true) == PM3_SUCCESS) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Jablotron ID") " found!"); goto out;}
|
||||
|
@ -1527,7 +1527,7 @@ static command_t CommandTable[] = {
|
|||
{"awid", CmdLFAWID, AlwaysAvailable, "{ AWID RFIDs... }"},
|
||||
{"cotag", CmdLFCOTAG, AlwaysAvailable, "{ COTAG CHIPs... }"},
|
||||
{"em", CmdLFEM4X, AlwaysAvailable, "{ EM4X CHIPs & RFIDs... }"},
|
||||
{"fdx", CmdLFFdx, AlwaysAvailable, "{ FDX-B RFIDs... }"},
|
||||
{"fdxb", CmdLFFdxB, AlwaysAvailable, "{ FDX-B RFIDs... }"},
|
||||
{"gallagher", CmdLFGallagher, AlwaysAvailable, "{ GALLAGHER RFIDs... }"},
|
||||
{"gproxii", CmdLFGuard, AlwaysAvailable, "{ Guardall Prox II RFIDs... }"},
|
||||
{"hid", CmdLFHID, AlwaysAvailable, "{ HID Prox RFIDs... }"},
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
// Differential Biphase, rf/32, 128 bits (known)
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "cmdlffdx.h"
|
||||
#include "cmdlffdxb.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
|
@ -48,9 +48,9 @@
|
|||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
static int usage_lf_fdx_clone(void) {
|
||||
static int usage_lf_fdxb_clone(void) {
|
||||
PrintAndLogEx(NORMAL, "Clone a FDX-B animal tag to a T55x7 or Q5/T5555 tag.");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdx clone [h] [c <country code>] [a <national code>] [e <extended>] <s> <Q5>");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdxb clone [h] [c <country code>] [a <national code>] [e <extended>] <s> <Q5>");
|
||||
PrintAndLogEx(NORMAL, "Options:");
|
||||
PrintAndLogEx(NORMAL, " h : This help");
|
||||
PrintAndLogEx(NORMAL, " c <country> : (dec) Country code");
|
||||
|
@ -60,15 +60,15 @@ static int usage_lf_fdx_clone(void) {
|
|||
PrintAndLogEx(NORMAL, " <Q5> : Specify writing to Q5/T5555 tag");
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
PrintAndLogEx(NORMAL, "Examples:");
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx clone c 999 n 112233 s"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx clone c 999 n 112233 e 16a"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb clone c 999 n 112233 s"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb clone c 999 n 112233 e 16a"));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
static int usage_lf_fdx_read(void) {
|
||||
static int usage_lf_fdxb_read(void) {
|
||||
PrintAndLogEx(NORMAL, "Read FDX-B animal tag");
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdx read [h] [@]");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdxb read [h] [@]");
|
||||
PrintAndLogEx(NORMAL, "Options:");
|
||||
PrintAndLogEx(NORMAL, " h : This help");
|
||||
PrintAndLogEx(NORMAL, " @ : run continuously until a key is pressed (optional)");
|
||||
|
@ -76,11 +76,11 @@ static int usage_lf_fdx_read(void) {
|
|||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
static int usage_lf_fdx_sim(void) {
|
||||
static int usage_lf_fdxb_sim(void) {
|
||||
PrintAndLogEx(NORMAL, "Enables simulation of FDX-B animal tag");
|
||||
PrintAndLogEx(NORMAL, "Simulation runs until the button is pressed or another USB command is issued.");
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdx sim [h] [c <country code>] [n <national code>] [e <extended>] <s> <Q5>");
|
||||
PrintAndLogEx(NORMAL, "Usage: lf fdxb sim [h] [c <country code>] [n <national code>] [e <extended>] <s> <Q5>");
|
||||
PrintAndLogEx(NORMAL, "Options:");
|
||||
PrintAndLogEx(NORMAL, " h : This help");
|
||||
PrintAndLogEx(NORMAL, " c <country> : (dec) Country code");
|
||||
|
@ -90,8 +90,8 @@ static int usage_lf_fdx_sim(void) {
|
|||
PrintAndLogEx(NORMAL, " <Q5> : Specify writing to Q5/T5555 tag");
|
||||
PrintAndLogEx(NORMAL, "");
|
||||
PrintAndLogEx(NORMAL, "Examples:");
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx sim c 999 n 112233 s"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdx sim c 999 n 112233 e 16a"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb sim c 999 n 112233 s"));
|
||||
PrintAndLogEx(NORMAL, _YELLOW_(" lf fdxb sim c 999 n 112233 e 16a"));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ static int CmdFDXBdemodBI(const char *Cmd) {
|
|||
|
||||
//see ASKDemod for what args are accepted
|
||||
//almost the same demod as cmddata.c/CmdFDXBdemodBI
|
||||
int demodFDX(bool verbose) {
|
||||
int demodFDXB(bool verbose) {
|
||||
//Differential Biphase / di-phase (inverted biphase)
|
||||
//get binary from ask wave
|
||||
if (ASKbiphaseDemod(0, 32, 1, 100, false) != PM3_SUCCESS) {
|
||||
|
@ -321,12 +321,12 @@ int demodFDX(bool verbose) {
|
|||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
static int CmdFdxDemod(const char *Cmd) {
|
||||
static int CmdFdxBDemod(const char *Cmd) {
|
||||
(void)Cmd; // Cmd is not used so far
|
||||
return demodFDX(true);
|
||||
return demodFDXB(true);
|
||||
}
|
||||
|
||||
static int CmdFdxRead(const char *Cmd) {
|
||||
static int CmdFdxBRead(const char *Cmd) {
|
||||
sample_config config;
|
||||
memset(&config, 0, sizeof(sample_config));
|
||||
int retval = lf_getconfig(&config);
|
||||
|
@ -341,7 +341,7 @@ static int CmdFdxRead(const char *Cmd) {
|
|||
while (param_getchar(Cmd, cmdp) != 0x00 && !errors) {
|
||||
switch (tolower(param_getchar(Cmd, cmdp))) {
|
||||
case 'h':
|
||||
return usage_lf_fdx_read();
|
||||
return usage_lf_fdxb_read();
|
||||
case '@':
|
||||
continuous = true;
|
||||
cmdp++;
|
||||
|
@ -354,7 +354,7 @@ static int CmdFdxRead(const char *Cmd) {
|
|||
}
|
||||
|
||||
//Validations
|
||||
if (errors) return usage_lf_fdx_read();
|
||||
if (errors) return usage_lf_fdxb_read();
|
||||
int16_t tmp_div = config.divisor;
|
||||
if (tmp_div != LF_DIVISOR_134) {
|
||||
config.divisor = LF_DIVISOR_134;
|
||||
|
@ -375,7 +375,7 @@ static int CmdFdxRead(const char *Cmd) {
|
|||
PrintAndLogEx(ERR, "failed to get LF read from device");
|
||||
return retval;
|
||||
}
|
||||
ret = demodFDX(!continuous); // be verbose only if not in continuous mode
|
||||
ret = demodFDXB(!continuous); // be verbose only if not in continuous mode
|
||||
if (kbd_enter_pressed()) {
|
||||
break;
|
||||
}
|
||||
|
@ -392,7 +392,7 @@ static int CmdFdxRead(const char *Cmd) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int CmdFdxClone(const char *Cmd) {
|
||||
static int CmdFdxBClone(const char *Cmd) {
|
||||
|
||||
uint32_t country_code = 0, extended = 0;
|
||||
uint64_t national_code = 0;
|
||||
|
@ -402,7 +402,7 @@ static int CmdFdxClone(const char *Cmd) {
|
|||
while (param_getchar(Cmd, cmdp) != 0x00 && !errors) {
|
||||
switch (tolower(param_getchar(Cmd, cmdp))) {
|
||||
case 'h':
|
||||
return usage_lf_fdx_clone();
|
||||
return usage_lf_fdxb_clone();
|
||||
case 'c': {
|
||||
country_code = param_get32ex(Cmd, cmdp + 1, 0, 10);
|
||||
cmdp += 2;
|
||||
|
@ -436,7 +436,7 @@ static int CmdFdxClone(const char *Cmd) {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (errors || strlen(Cmd) == 0) return usage_lf_fdx_clone();
|
||||
if (errors || strlen(Cmd) == 0) return usage_lf_fdxb_clone();
|
||||
|
||||
verify_values(&national_code, &country_code, &extended, &is_animal);
|
||||
|
||||
|
@ -448,7 +448,7 @@ static int CmdFdxClone(const char *Cmd) {
|
|||
PrintAndLogEx(INFO, " RFU 0");
|
||||
|
||||
uint8_t *bits = calloc(128, sizeof(uint8_t));
|
||||
if (getFDXBits(national_code, country_code, is_animal, has_extended, extended, bits) != PM3_SUCCESS) {
|
||||
if (getFDXBBits(national_code, country_code, is_animal, has_extended, extended, bits) != PM3_SUCCESS) {
|
||||
PrintAndLogEx(ERR, "Error with tag bitstream generation.");
|
||||
free(bits);
|
||||
return PM3_ESOFT;
|
||||
|
@ -473,11 +473,11 @@ static int CmdFdxClone(const char *Cmd) {
|
|||
|
||||
int res = clone_t55xx_tag(blocks, ARRAYLEN(blocks));
|
||||
PrintAndLogEx(SUCCESS, "Done");
|
||||
PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf fdx read`") " to verify");
|
||||
PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf fdxb read`") " to verify");
|
||||
return res;
|
||||
}
|
||||
|
||||
static int CmdFdxSim(const char *Cmd) {
|
||||
static int CmdFdxBSim(const char *Cmd) {
|
||||
|
||||
uint32_t country_code = 0, extended = 0;
|
||||
uint64_t national_code = 0;
|
||||
|
@ -487,7 +487,7 @@ static int CmdFdxSim(const char *Cmd) {
|
|||
while (param_getchar(Cmd, cmdp) != 0x00 && !errors) {
|
||||
switch (tolower(param_getchar(Cmd, cmdp))) {
|
||||
case 'h':
|
||||
return usage_lf_fdx_sim();
|
||||
return usage_lf_fdxb_sim();
|
||||
case 'c': {
|
||||
country_code = param_get32ex(Cmd, cmdp + 1, 0, 10);
|
||||
cmdp += 2;
|
||||
|
@ -516,7 +516,7 @@ static int CmdFdxSim(const char *Cmd) {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (errors) return usage_lf_fdx_sim();
|
||||
if (errors) return usage_lf_fdxb_sim();
|
||||
|
||||
verify_values(&national_code, &country_code, &extended, &is_animal);
|
||||
|
||||
|
@ -530,7 +530,7 @@ static int CmdFdxSim(const char *Cmd) {
|
|||
PrintAndLogEx(SUCCESS, "Simulating FDX-B animal ID: " _GREEN_("%04u-%"PRIu64), country_code, national_code);
|
||||
|
||||
uint8_t *bits = calloc(128, sizeof(uint8_t));
|
||||
if (getFDXBits(national_code, country_code, is_animal, (extended > 0), extended, bits) != PM3_SUCCESS) {
|
||||
if (getFDXBBits(national_code, country_code, is_animal, (extended > 0), extended, bits) != PM3_SUCCESS) {
|
||||
PrintAndLogEx(ERR, "Error with tag bitstream generation.");
|
||||
free(bits);
|
||||
return PM3_ESOFT;
|
||||
|
@ -562,10 +562,10 @@ static int CmdFdxSim(const char *Cmd) {
|
|||
|
||||
static command_t CommandTable[] = {
|
||||
{"help", CmdHelp, AlwaysAvailable, "this help"},
|
||||
{"demod", CmdFdxDemod, AlwaysAvailable, "demodulate a FDX-B ISO11784/85 tag from the GraphBuffer"},
|
||||
{"read", CmdFdxRead, IfPm3Lf, "attempt to read at 134kHz and extract tag data"},
|
||||
{"clone", CmdFdxClone, IfPm3Lf, "clone animal ID tag to T55x7 or Q5/T5555"},
|
||||
{"sim", CmdFdxSim, IfPm3Lf, "simulate Animal ID tag"},
|
||||
{"demod", CmdFdxBDemod, AlwaysAvailable, "demodulate a FDX-B ISO11784/85 tag from the GraphBuffer"},
|
||||
{"read", CmdFdxBRead, IfPm3Lf, "attempt to read at 134kHz and extract tag data"},
|
||||
{"clone", CmdFdxBClone, IfPm3Lf, "clone animal ID tag to T55x7 or Q5/T5555"},
|
||||
{"sim", CmdFdxBSim, IfPm3Lf, "simulate Animal ID tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
@ -575,7 +575,7 @@ static int CmdHelp(const char *Cmd) {
|
|||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
int CmdLFFdx(const char *Cmd) {
|
||||
int CmdLFFdxB(const char *Cmd) {
|
||||
clearCommandBuffer();
|
||||
return CmdsParse(CommandTable, Cmd);
|
||||
}
|
||||
|
@ -594,7 +594,7 @@ int detectFDXB(uint8_t *dest, size_t *size) {
|
|||
return (int)startIdx;
|
||||
}
|
||||
|
||||
int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits) {
|
||||
int getFDXBBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits) {
|
||||
|
||||
// add preamble ten 0x00 and one 0x01
|
||||
memset(bits, 0x00, 10);
|
||||
|
@ -634,7 +634,7 @@ int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal,
|
|||
raw[i] = bytebits_to_byte(bits + 11 + i * 9, 8);
|
||||
|
||||
init_table(CRC_11784);
|
||||
uint16_t crc = crc16_fdx(raw, 8);
|
||||
uint16_t crc = crc16_fdxb(raw, 8);
|
||||
num_to_bytebitsLSBF(crc >> 0, 8, bits + 83);
|
||||
num_to_bytebitsLSBF(crc >> 8, 8, bits + 92);
|
||||
|
|
@ -6,15 +6,15 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Low frequency fdx-b tag commands
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifndef CMDLFFDX_H__
|
||||
#define CMDLFFDX_H__
|
||||
#ifndef CMDLFFDXB_H__
|
||||
#define CMDLFFDXB_H__
|
||||
|
||||
#include "common.h"
|
||||
|
||||
int CmdLFFdx(const char *Cmd);
|
||||
int CmdLFFdxB(const char *Cmd);
|
||||
int detectFDXB(uint8_t *dest, size_t *size);
|
||||
int demodFDX(bool verbose);
|
||||
int getFDXBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits);
|
||||
int demodFDXB(bool verbose);
|
||||
int getFDXBBits(uint64_t national_code, uint16_t country_code, uint8_t is_animal, uint8_t is_extended, uint32_t extended, uint8_t *bits);
|
||||
|
||||
#endif
|
||||
|
|
@ -383,7 +383,7 @@ static int usage_t55xx_clonehelp(void) {
|
|||
// todo: implement restore
|
||||
// PrintAndLogEx(NORMAL, _GREEN_("lf em 4x05_write"));
|
||||
// PrintAndLogEx(NORMAL, _GREEN_("lf em 4x50_write"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf fdx clone"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf fdxb clone"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf gallagher clone"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf gproxii clone"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf hid clone"));
|
||||
|
|
|
@ -191,7 +191,7 @@ void compute_crc(CrcType_t ct, const uint8_t *d, size_t n, uint8_t *first, uint8
|
|||
crc = crc16_kermit(d, n);
|
||||
break;
|
||||
case CRC_11784:
|
||||
crc = crc16_fdx(d, n);
|
||||
crc = crc16_fdxb(d, n);
|
||||
break;
|
||||
case CRC_LEGIC:
|
||||
// TODO
|
||||
|
@ -225,7 +225,7 @@ uint16_t Crc16ex(CrcType_t ct, const uint8_t *d, size_t n) {
|
|||
case CRC_KERMIT:
|
||||
return crc16_kermit(d, n);
|
||||
case CRC_11784:
|
||||
return crc16_fdx(d, n);
|
||||
return crc16_fdxb(d, n);
|
||||
case CRC_LEGIC:
|
||||
// TODO
|
||||
return 0;
|
||||
|
@ -270,7 +270,7 @@ bool check_crc(CrcType_t ct, const uint8_t *d, size_t n) {
|
|||
case CRC_KERMIT:
|
||||
return (crc16_kermit(d, n) == 0);
|
||||
case CRC_11784:
|
||||
return (crc16_fdx(d, n) == 0);
|
||||
return (crc16_fdxb(d, n) == 0);
|
||||
case CRC_LEGIC:
|
||||
// TODO
|
||||
return false;
|
||||
|
@ -288,7 +288,7 @@ uint16_t crc16_ccitt(uint8_t const *d, size_t n) {
|
|||
|
||||
// FDX-B ISO11784/85) uses KERMIT/CCITT
|
||||
// poly 0x xx init=0x000 refin=false refout=true xorout=0x0000 ...
|
||||
uint16_t crc16_fdx(uint8_t const *d, size_t n) {
|
||||
uint16_t crc16_fdxb(uint8_t const *d, size_t n) {
|
||||
return crc16_fast(d, n, 0x0000, false, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ bool check_crc(CrcType_t ct, const uint8_t *d, size_t n);
|
|||
uint16_t crc16_ccitt(uint8_t const *d, size_t n);
|
||||
|
||||
// Calculate CRC-16/KERMIT (FDX-B ISO11784/85) LF
|
||||
uint16_t crc16_fdx(uint8_t const *d, size_t n);
|
||||
uint16_t crc16_fdxb(uint8_t const *d, size_t n);
|
||||
|
||||
// Calculate CRC-16/KERMIT
|
||||
uint16_t crc16_kermit(uint8_t const *d, size_t n);
|
||||
|
|
|
@ -342,7 +342,7 @@ while true; do
|
|||
if ! CheckExecute "lf EM410x test" "$CLIENTBIN -c 'data load -f traces/lf_EM4102-1.pm3;lf search 1'" "EM410x ID found"; then break; fi
|
||||
if ! CheckExecute "lf EM4x05 test" "$CLIENTBIN -c 'data load -f traces/lf_EM4x05.pm3;lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute "lf FDX-B test" "$CLIENTBIN -c 'data load -f traces/lf_HomeAgain1600.pm3;lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute "lf FDX/BioThermo test" "$CLIENTBIN -c 'data load -f traces/lf_FDX_Bio-Thermo.pm3; lf fdx demod'" "95.2 F / 35.1 C"; then break; fi
|
||||
if ! CheckExecute "lf FDX/BioThermo test" "$CLIENTBIN -c 'data load -f traces/lf_FDX_Bio-Thermo.pm3; lf fdxb demod'" "95.2 F / 35.1 C"; then break; fi
|
||||
if ! CheckExecute "lf GPROXII test" "$CLIENTBIN -c 'data load -f traces/lf_GProx_36_30_14489.pm3; lf search 1'" "Guardall G-Prox II ID found"; then break; fi
|
||||
if ! CheckExecute "lf HID Prox test" "$CLIENTBIN -c 'data load -f traces/lf_HID-proxCardII-05512-11432784-1.pm3;lf search 1'" "HID Prox ID found"; then break; fi
|
||||
if ! CheckExecute "lf IDTECK test" "$CLIENTBIN -c 'data load -f traces/lf_IDTECK_4944544BAC40E069.pm3; lf search 1'" "Idteck ID found"; then break; fi
|
||||
|
@ -364,11 +364,11 @@ while true; do
|
|||
if ! CheckExecute slow "lf T55 em410x test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_em410x.pm3; lf search 1'" "EM410x ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 em410x test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_em410x.pm3; lf em 410x_demod demod'" \
|
||||
"EM TAG ID : 0F0368568B"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdx_animal test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_animal.pm3; lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdx_animal test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_animal.pm3; lf fdx demod'" \
|
||||
if ! CheckExecute slow "lf T55 fdxb_animal test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_animal.pm3; lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdxb_animal test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_animal.pm3; lf fdxb demod'" \
|
||||
"Animal ID 0999-000000112233"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdx_extended test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_extended.pm3; lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdx_extended test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdx_extended.pm3; lf fdx demod'" \
|
||||
if ! CheckExecute slow "lf T55 fdxb_extended test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_extended.pm3; lf search 1'" "FDX-B ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 fdxb_extended test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_fdxb_extended.pm3; lf fdxb demod'" \
|
||||
"temperature 95.2 F / 35.1 C"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 gallagher test" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_gallagher.pm3; lf search 1'" "GALLAGHER ID found"; then break; fi
|
||||
if ! CheckExecute slow "lf T55 gallagher test2" "$CLIENTBIN -c 'data load -f traces/lf_ATA5577_gallagher.pm3; lf gallagher demod'" \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue