lf cliparser stuff

This commit is contained in:
iceman1001 2020-11-29 12:06:45 +01:00
commit 487524436c
7 changed files with 91 additions and 20 deletions

View file

@ -116,9 +116,19 @@ int demodMotorola(bool verbose) {
return PM3_SUCCESS; return PM3_SUCCESS;
} }
//see PSKDemod for what args are accepted
static int CmdMotorolaDemod(const char *Cmd) { static int CmdMotorolaDemod(const char *Cmd) {
(void)Cmd; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf motorola demod",
"Try to find Motorola preamble, if found decode / descramble data",
"lf motorola demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodMotorola(true); return demodMotorola(true);
} }
@ -235,6 +245,19 @@ static int CmdMotorolaClone(const char *Cmd) {
} }
static int CmdMotorolaSim(const char *Cmd) { static int CmdMotorolaSim(const char *Cmd) {
CLIParserContext *ctx;
CLIParserInit(&ctx, "lf motorola sim",
"Enables simulation of Motorola card with specified card number.\n"
"Simulation runs until the button is pressed or another USB command is issued.",
"lf motorola sim"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
// PSK sim. // PSK sim.
PrintAndLogEx(INFO, " PSK1 at 66 kHz... Interesting."); PrintAndLogEx(INFO, " PSK1 at 66 kHz... Interesting.");

View file

@ -11,10 +11,8 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <stdlib.h> #include <stdlib.h>
#include "cmdparser.h" // command_t #include "cmdparser.h" // command_t
#include "comms.h" #include "comms.h"
#include "crc16.h" #include "crc16.h"
@ -24,6 +22,8 @@
#include "cmdlf.h" #include "cmdlf.h"
#include "lfdemod.h" #include "lfdemod.h"
#include "protocols.h" #include "protocols.h"
#include "cliparser.h"
#include "cmdlfem4x05.h" // EM defines
#define FIXED_71 0x71 #define FIXED_71 0x71
#define FIXED_40 0x40 #define FIXED_40 0x40
@ -262,7 +262,18 @@ int demodNedap(bool verbose) {
} }
static int CmdLFNedapDemod(const char *Cmd) { static int CmdLFNedapDemod(const char *Cmd) {
(void)Cmd; // Cmd is not used so far CLIParserContext *ctx;
CLIParserInit(&ctx, "lf nedap demod",
"Try to find Nedap preamble, if found decode / descramble data",
"lf nedap demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodNedap(true); return demodNedap(true);
} }
/* Index map E E /* Index map E E

View file

@ -217,14 +217,25 @@ int demodNexWatch(bool verbose) {
} }
static int CmdNexWatchDemod(const char *Cmd) { static int CmdNexWatchDemod(const char *Cmd) {
(void)Cmd; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf nexwatch demod",
"Try to find Nexwatch preamble, if found decode / descramble data",
"lf nexwatch demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodNexWatch(true); return demodNexWatch(true);
} }
static int CmdNexWatchReader(const char *Cmd) { static int CmdNexWatchReader(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf nexwatch reader", CLIParserInit(&ctx, "lf nexwatch reader",
"read a nexwatch tag", "read a Nexwatch tag",
"lf nexwatch reader -@ -> continuous reader mode" "lf nexwatch reader -@ -> continuous reader mode"
); );

View file

@ -103,14 +103,25 @@ int demodNoralsy(bool verbose) {
} }
static int CmdNoralsyDemod(const char *Cmd) { static int CmdNoralsyDemod(const char *Cmd) {
(void)Cmd; // Cmd is not used so far CLIParserContext *ctx;
CLIParserInit(&ctx, "lf noralsy demod",
"Try to find Noralsy preamble, if found decode / descramble data",
"lf noralsy demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodNoralsy(true); return demodNoralsy(true);
} }
static int CmdNoralsyReader(const char *Cmd) { static int CmdNoralsyReader(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf noralsy reader", CLIParserInit(&ctx, "lf noralsy reader",
"read a noralsy tag", "read a Noralsy tag",
"lf noralsy reader -@ -> continuous reader mode" "lf noralsy reader -@ -> continuous reader mode"
); );
@ -133,7 +144,7 @@ static int CmdNoralsyReader(const char *Cmd) {
static int CmdNoralsyClone(const char *Cmd) { static int CmdNoralsyClone(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf noralsy clone", CLIParserInit(&ctx, "lf noralsy clone",
"clone a noralsy tag to a T55x7, Q5/T5555 or EM4305/4469 tag.", "clone a Noralsy tag to a T55x7, Q5/T5555 or EM4305/4469 tag.",
"lf noralsy clone --cn 112233\n" "lf noralsy clone --cn 112233\n"
"lf noralsy clone --cn 112233 --q5 -> encode for Q5/T5555 tag\n" "lf noralsy clone --cn 112233 --q5 -> encode for Q5/T5555 tag\n"
"lf noralsy clone --cn 112233 --em -> encode for EM4305/4469" "lf noralsy clone --cn 112233 --em -> encode for EM4305/4469"

View file

@ -157,7 +157,18 @@ int demodPac(bool verbose) {
} }
static int CmdPacDemod(const char *Cmd) { static int CmdPacDemod(const char *Cmd) {
(void)Cmd; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf pac demod",
"Try to find PAC/Stanley preamble, if found decode / descramble data",
"lf pac demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodPac(true); return demodPac(true);
} }
@ -165,7 +176,7 @@ static int CmdPacReader(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "lf pac reader", CLIParserInit(&ctx, "lf pac reader",
"read a pac tag", "read a PAC/Stanley tag",
"lf pac reader -@ -> continuous reader mode" "lf pac reader -@ -> continuous reader mode"
); );

View file

@ -170,7 +170,18 @@ int demodParadox(bool verbose) {
} }
static int CmdParadoxDemod(const char *Cmd) { static int CmdParadoxDemod(const char *Cmd) {
(void)Cmd; // Cmd is not used so far CLIParserContext *ctx;
CLIParserInit(&ctx, "lf paradox demod",
"Try to find Paradox preamble, if found decode / descramble data",
"lf paradox demod"
);
void *argtable[] = {
arg_param_begin,
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
return demodParadox(true); return demodParadox(true);
} }

View file

@ -257,17 +257,10 @@ lf io sim
lf io watch lf io watch
lf jablotron sim lf jablotron sim
lf keri demod lf keri demod
lf motorola demod
lf motorola sim
lf nedap demod
lf nedap generate lf nedap generate
lf nedap read lf nedap read
lf nedap clone lf nedap clone
lf nedap sim lf nedap sim
lf nexwatch demod
lf noralsy demod
lf pac demod
lf paradox demod
lf pcf7931 read lf pcf7931 read
lf pcf7931 write lf pcf7931 write
lf pcf7931 config lf pcf7931 config