mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-02-24 23:54:42 +08:00
include cmdlfviking.c in makefile and cmdlf
fix minor typos
This commit is contained in:
parent
ab5ffe3bef
commit
fe876493f8
4 changed files with 15 additions and 10 deletions
|
@ -98,6 +98,7 @@ CMDSRCS = nonce2key/crapto1.c\
|
||||||
cmdmain.c \
|
cmdmain.c \
|
||||||
cmdlft55xx.c \
|
cmdlft55xx.c \
|
||||||
cmdlfpcf7931.c\
|
cmdlfpcf7931.c\
|
||||||
|
cmdlfviking.c\
|
||||||
pm3_binlib.c\
|
pm3_binlib.c\
|
||||||
scripting.c\
|
scripting.c\
|
||||||
cmdscript.c\
|
cmdscript.c\
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "cmdlft55xx.h"
|
#include "cmdlft55xx.h"
|
||||||
#include "cmdlfpcf7931.h"
|
#include "cmdlfpcf7931.h"
|
||||||
#include "cmdlfio.h"
|
#include "cmdlfio.h"
|
||||||
|
#include "cmdlfviking.h"
|
||||||
#include "lfdemod.h"
|
#include "lfdemod.h"
|
||||||
|
|
||||||
static int CmdHelp(const char *Cmd);
|
static int CmdHelp(const char *Cmd);
|
||||||
|
@ -1213,14 +1214,15 @@ int CmdLFfind(const char *Cmd)
|
||||||
static command_t CommandTable[] =
|
static command_t CommandTable[] =
|
||||||
{
|
{
|
||||||
{"help", CmdHelp, 1, "This help"},
|
{"help", CmdHelp, 1, "This help"},
|
||||||
{"awid", CmdLFAWID, 1, "{ AWID RFIDs... }"},
|
{"awid", CmdLFAWID, 1, "{ AWID RFIDs... }"},
|
||||||
{"em4x", CmdLFEM4X, 1, "{ EM4X RFIDs... }"},
|
{"em4x", CmdLFEM4X, 1, "{ EM4X RFIDs... }"},
|
||||||
{"hid", CmdLFHID, 1, "{ HID RFIDs... }"},
|
{"hid", CmdLFHID, 1, "{ HID RFIDs... }"},
|
||||||
{"hitag", CmdLFHitag, 1, "{ Hitag tags and transponders... }"},
|
{"hitag", CmdLFHitag, 1, "{ Hitag tags and transponders... }"},
|
||||||
{"io", CmdLFIO, 1, "{ ioProx tags... }"},
|
{"io", CmdLFIO, 1, "{ ioProx tags... }"},
|
||||||
{"pcf7931", CmdLFPCF7931, 1, "{ PCF7931 RFIDs... }"},
|
{"pcf7931", CmdLFPCF7931, 1, "{ PCF7931 RFIDs... }"},
|
||||||
{"t55xx", CmdLFT55XX, 1, "{ T55xx RFIDs... }"},
|
{"t55xx", CmdLFT55XX, 1, "{ T55xx RFIDs... }"},
|
||||||
{"ti", CmdLFTI, 1, "{ TI RFIDs... }"},
|
{"ti", CmdLFTI, 1, "{ TI RFIDs... }"},
|
||||||
|
{"viking", CmdLFViking, 1, "{ Viking tags... }"},
|
||||||
{"cmdread", CmdLFCommandRead, 0, "<d period> <z period> <o period> <c command> ['H'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'H' for 134)"},
|
{"cmdread", CmdLFCommandRead, 0, "<d period> <z period> <o period> <c command> ['H'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'H' for 134)"},
|
||||||
{"config", CmdLFSetConfig, 0, "Set config for LF sampling, bit/sample, decimation, frequency"},
|
{"config", CmdLFSetConfig, 0, "Set config for LF sampling, bit/sample, decimation, frequency"},
|
||||||
{"flexdemod", CmdFlexdemod, 1, "Demodulate samples for FlexPass"},
|
{"flexdemod", CmdFlexdemod, 1, "Demodulate samples for FlexPass"},
|
||||||
|
|
|
@ -48,7 +48,7 @@ int usage_lf_viking_sim(void) {
|
||||||
uint64_t getVikingBits(uint32_t id) {
|
uint64_t getVikingBits(uint32_t id) {
|
||||||
//calc checksum
|
//calc checksum
|
||||||
uint8_t checksum = (id>>24) ^ ((id>>16) & 0xFF) ^ ((id>>8) & 0xFF) ^ (id & 0xFF) ^ 0xF2 ^ 0xA8;
|
uint8_t checksum = (id>>24) ^ ((id>>16) & 0xFF) ^ ((id>>8) & 0xFF) ^ (id & 0xFF) ^ 0xF2 ^ 0xA8;
|
||||||
return (0xF2 << 56) | (id << 8) | checksum;
|
return ((uint64_t)0xF2 << 56) | (id << 8) | checksum;
|
||||||
}
|
}
|
||||||
//by marshmellow
|
//by marshmellow
|
||||||
//see ASKDemod for what args are accepted
|
//see ASKDemod for what args are accepted
|
||||||
|
@ -68,7 +68,7 @@ int CmdVikingClone(const char *Cmd) {
|
||||||
char cmdp = param_getchar(Cmd, 0);
|
char cmdp = param_getchar(Cmd, 0);
|
||||||
if (strlen(Cmd) < 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_viking_clone();
|
if (strlen(Cmd) < 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_viking_clone();
|
||||||
|
|
||||||
id = param_get32ex(Cmd, 0, 0, 16)
|
id = param_get32ex(Cmd, 0, 0, 16);
|
||||||
if (id == 0) return usage_lf_viking_clone();
|
if (id == 0) return usage_lf_viking_clone();
|
||||||
if (param_getchar(Cmd, 1)=='Q' || param_getchar(Cmd, 1)=='q')
|
if (param_getchar(Cmd, 1)=='Q' || param_getchar(Cmd, 1)=='q')
|
||||||
Q5 = true;
|
Q5 = true;
|
||||||
|
@ -87,9 +87,10 @@ int CmdVikingSim(const char *Cmd) {
|
||||||
uint32_t id = 0;
|
uint32_t id = 0;
|
||||||
uint64_t rawID = 0;
|
uint64_t rawID = 0;
|
||||||
uint8_t clk = 32, encoding = 1, separator = 0, invert = 0;
|
uint8_t clk = 32, encoding = 1, separator = 0, invert = 0;
|
||||||
|
char cmdp = param_getchar(Cmd, 0);
|
||||||
|
|
||||||
if (strlen(Cmd) < 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_viking_sim();
|
if (strlen(Cmd) < 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_viking_sim();
|
||||||
id = param_get32ex(Cmd, 0, 0, 16)
|
id = param_get32ex(Cmd, 0, 0, 16);
|
||||||
if (id == 0) return usage_lf_viking_sim();
|
if (id == 0) return usage_lf_viking_sim();
|
||||||
|
|
||||||
rawID = getVikingBits(id);
|
rawID = getVikingBits(id);
|
||||||
|
@ -104,6 +105,7 @@ int CmdVikingSim(const char *Cmd) {
|
||||||
num_to_bytebits(rawID, 64, c.d.asBytes);
|
num_to_bytebits(rawID, 64, c.d.asBytes);
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommand(&c);
|
SendCommand(&c);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static command_t CommandTable[] = {
|
static command_t CommandTable[] = {
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
int CmdLFViking(const char *Cmd);
|
int CmdLFViking(const char *Cmd);
|
||||||
int CmdVikingRead(const char *Cmd);
|
int CmdVikingRead(const char *Cmd);
|
||||||
int CmdVikingClone(const char *Cmd);
|
int CmdVikingClone(const char *Cmd);
|
||||||
int CmdVikingSim(static char *Cmd);
|
int CmdVikingSim(const char *Cmd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue