mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
Merge branch 'master' of github.com:RfidResearchGroup/proxmark3
This commit is contained in:
commit
9bbdb747c8
19 changed files with 70 additions and 35 deletions
|
@ -568,7 +568,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "this help"},
|
||||
{"demod", CmdAWIDDemod, AlwaysAvailable, "demodulate an AWID FSK tag from the GraphBuffer"},
|
||||
{"reader", CmdAWIDReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdAWIDClone, IfPm3Lf, "clone AWID tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdAWIDClone, IfPm3Lf, "clone AWID tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdAWIDSim, IfPm3Lf, "simulate AWID tag"},
|
||||
{"brute", CmdAWIDBrute, IfPm3Lf, "bruteforce card number against reader"},
|
||||
{"watch", CmdAWIDWatch, IfPm3Lf, "continuously watch for cards. Reader mode"},
|
||||
|
|
|
@ -238,7 +238,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdDestronDemod, AlwaysAvailable, "demodulate an Destron tag from the GraphBuffer"},
|
||||
{"reader", CmdDestronReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdDestronClone, IfPm3Lf, "clone Destron tag to T55x7"},
|
||||
{"clone", CmdDestronClone, IfPm3Lf, "clone Destron tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdDestronSim, IfPm3Lf, "simulate Destron tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -745,7 +745,7 @@ static command_t CommandTable[] = {
|
|||
{"brute", CmdEM410xBrute, IfPm3Lf, "reader bruteforce attack by simulating EM410x tags"},
|
||||
{"watch", CmdEM410xWatch, IfPm3Lf, "watches for EM410x 125/134 kHz tags"},
|
||||
{"spoof", CmdEM410xSpoof, IfPm3Lf, "watches for EM410x 125/134 kHz tags, and replays them" },
|
||||
{"clone", CmdEM410xClone, IfPm3Lf, "write EM410x Tag ID to T55x7 or Q5/T5555 tag"},
|
||||
{"clone", CmdEM410xClone, IfPm3Lf, "clone EM410x Tag ID to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -58,6 +58,40 @@ static const char *em4x69_annotation [] = {"Info", "UID", "Password", "Lock", "C
|
|||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
static int CmdEM4x05CloneHelp(const char *Cmd) {
|
||||
CLIParserContext *ctx;
|
||||
CLIParserInit(&ctx, "lf em 4x05 clonehelp",
|
||||
"Display a list of available commands for cloning specific techs on EM4305/4469 tags",
|
||||
"lf em 4x05 clonehelp"
|
||||
);
|
||||
void *argtable[] = {
|
||||
arg_param_begin,
|
||||
arg_param_end
|
||||
};
|
||||
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
||||
CLIParserFree(ctx);
|
||||
PrintAndLogEx(NORMAL, "For cloning specific techs on EM4305/4469 tags, see commands available in corresponding LF sub-menus, e.g.:");
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf awid clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf destron clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf em 410x clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf fdxb clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf gallagher clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf hid clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf jablotron clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf keri clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf nedap clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf nexwatch clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf noralsy clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf pac clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf paradox clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf presco clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf pyramid clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf securakey clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf viking clone --em"));
|
||||
PrintAndLogEx(NORMAL, _GREEN_("lf visa2000 clone --em"));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
// 1 = EM4x69
|
||||
// 2 = EM4x05
|
||||
static em_tech_type_t em_get_card_type(uint32_t config) {
|
||||
|
@ -2496,7 +2530,7 @@ int CmdEM4x05Sniff(const char *Cmd) {
|
|||
|
||||
static int CmdEM4x05View(const char *Cmd) {
|
||||
CLIParserContext *ctx;
|
||||
CLIParserInit(&ctx, "lf em ex05 view",
|
||||
CLIParserInit(&ctx, "lf em 4x05 view",
|
||||
"Print a EM4205/4305/4369/4469 dump file\n"
|
||||
"note:\n"
|
||||
"We don't track if password is known in current dump file formats.\n"
|
||||
|
@ -2552,7 +2586,7 @@ static int CmdEM4x05View(const char *Cmd) {
|
|||
static int CmdEM4x05Config(const char *Cmd) {
|
||||
|
||||
CLIParserContext *ctx;
|
||||
CLIParserInit(&ctx, "lf em ex05 config",
|
||||
CLIParserInit(&ctx, "lf em 4x05 config",
|
||||
"Create common configuration blocks",
|
||||
"lf em 4x05 config"
|
||||
);
|
||||
|
@ -2595,21 +2629,22 @@ static int CmdEM4x05Config(const char *Cmd) {
|
|||
}
|
||||
|
||||
static command_t CommandTable[] = {
|
||||
{"-----------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("General") " -----------------------"},
|
||||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"-----------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("Operations") " -----------------------"},
|
||||
{"brute", CmdEM4x05Brute, IfPm3Lf, "Bruteforce password"},
|
||||
{"chk", CmdEM4x05Chk, IfPm3Lf, "Check passwords from dictionary"},
|
||||
{"config", CmdEM4x05Config, AlwaysAvailable, "Create common configuration words"},
|
||||
{"demod", CmdEM4x05Demod, AlwaysAvailable, "Demodulate a EM4x05/EM4x69 tag from the GraphBuffer"},
|
||||
{"dump", CmdEM4x05Dump, IfPm3Lf, "Dump EM4x05/EM4x69 tag"},
|
||||
{"info", CmdEM4x05Info, IfPm3Lf, "Tag information"},
|
||||
{"read", CmdEM4x05Read, IfPm3Lf, "Read word data from EM4x05/EM4x69"},
|
||||
{"sniff", CmdEM4x05Sniff, AlwaysAvailable, "Attempt to recover em4x05 commands from sample buffer"},
|
||||
{"unlock", CmdEM4x05Unlock, IfPm3Lf, "Execute tear off against EM4x05/EM4x69"},
|
||||
{"view", CmdEM4x05View, AlwaysAvailable, "Display content from tag dump file"},
|
||||
{"wipe", CmdEM4x05Wipe, IfPm3Lf, "Wipe EM4x05/EM4x69 tag"},
|
||||
{"write", CmdEM4x05Write, IfPm3Lf, "Write word data to EM4x05/EM4x69"},
|
||||
{"-----------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("General") " -----------------------"},
|
||||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"-----------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("Operations") " -----------------------"},
|
||||
{"clonehelp", CmdEM4x05CloneHelp, IfPm3Lf, "Shows the available clone commands"},
|
||||
{"brute", CmdEM4x05Brute, IfPm3Lf, "Bruteforce password"},
|
||||
{"chk", CmdEM4x05Chk, IfPm3Lf, "Check passwords from dictionary"},
|
||||
{"config", CmdEM4x05Config, AlwaysAvailable, "Create common configuration words"},
|
||||
{"demod", CmdEM4x05Demod, AlwaysAvailable, "Demodulate a EM4x05/EM4x69 tag from the GraphBuffer"},
|
||||
{"dump", CmdEM4x05Dump, IfPm3Lf, "Dump EM4x05/EM4x69 tag"},
|
||||
{"info", CmdEM4x05Info, IfPm3Lf, "Tag information"},
|
||||
{"read", CmdEM4x05Read, IfPm3Lf, "Read word data from EM4x05/EM4x69"},
|
||||
{"sniff", CmdEM4x05Sniff, AlwaysAvailable, "Attempt to recover em4x05 commands from sample buffer"},
|
||||
{"unlock", CmdEM4x05Unlock, IfPm3Lf, "Execute tear off against EM4x05/EM4x69"},
|
||||
{"view", CmdEM4x05View, AlwaysAvailable, "Display content from tag dump file"},
|
||||
{"wipe", CmdEM4x05Wipe, IfPm3Lf, "Wipe EM4x05/EM4x69 tag"},
|
||||
{"write", CmdEM4x05Write, IfPm3Lf, "Write word data to EM4x05/EM4x69"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
|
|
|
@ -889,7 +889,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "this help"},
|
||||
{"demod", CmdFdxBDemod, AlwaysAvailable, "demodulate a FDX-B ISO11784/85 tag from the GraphBuffer"},
|
||||
{"reader", CmdFdxBReader, IfPm3Lf, "attempt to read at 134kHz and extract tag data"},
|
||||
{"clone", CmdFdxBClone, IfPm3Lf, "clone animal ID tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdFdxBClone, IfPm3Lf, "clone animal ID tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdFdxBSim, IfPm3Lf, "simulate Animal ID tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -380,7 +380,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdGallagherDemod, AlwaysAvailable, "demodulate an GALLAGHER tag from the GraphBuffer"},
|
||||
{"reader", CmdGallagherReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdGallagherClone, IfPm3Lf, "clone GALLAGHER tag to T55x7"},
|
||||
{"clone", CmdGallagherClone, IfPm3Lf, "clone GALLAGHER tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdGallagherSim, IfPm3Lf, "simulate GALLAGHER tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -679,7 +679,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "this help"},
|
||||
{"demod", CmdHIDDemod, AlwaysAvailable, "demodulate HID Prox tag from the GraphBuffer"},
|
||||
{"reader", CmdHIDReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdHIDClone, IfPm3Lf, "clone HID tag to T55x7"},
|
||||
{"clone", CmdHIDClone, IfPm3Lf, "clone HID tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdHIDSim, IfPm3Lf, "simulate HID tag"},
|
||||
{"brute", CmdHIDBrute, IfPm3Lf, "bruteforce facility code or card number against reader"},
|
||||
{"watch", CmdHIDWatch, IfPm3Lf, "continuously watch for cards. Reader mode"},
|
||||
|
|
|
@ -310,7 +310,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdJablotronDemod, AlwaysAvailable, "demodulate an Jablotron tag from the GraphBuffer"},
|
||||
{"reader", CmdJablotronReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdJablotronClone, IfPm3Lf, "clone jablotron tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdJablotronClone, IfPm3Lf, "clone jablotron tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdJablotronSim, IfPm3Lf, "simulate jablotron tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -369,7 +369,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdKeriDemod, AlwaysAvailable, "demodulate an KERI tag from the GraphBuffer"},
|
||||
{"reader", CmdKeriReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdKeriClone, IfPm3Lf, "clone KERI tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdKeriClone, IfPm3Lf, "clone KERI tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdKeriSim, IfPm3Lf, "simulate KERI tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -563,7 +563,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdLFNedapDemod, AlwaysAvailable, "demodulate Nedap tag from the GraphBuffer"},
|
||||
{"reader", CmdLFNedapReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdLFNedapClone, IfPm3Lf, "clone Nedap tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdLFNedapClone, IfPm3Lf, "clone Nedap tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdLFNedapSim, IfPm3Lf, "simulate Nedap tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -569,7 +569,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdNexWatchDemod, AlwaysAvailable, "demodulate a NexWatch tag (nexkey, quadrakey) from the GraphBuffer"},
|
||||
{"reader", CmdNexWatchReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdNexWatchClone, IfPm3Lf, "clone NexWatch tag to T55x7"},
|
||||
{"clone", CmdNexWatchClone, IfPm3Lf, "clone NexWatch tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdNexWatchSim, IfPm3Lf, "simulate NexWatch tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -281,7 +281,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdNoralsyDemod, AlwaysAvailable, "demodulate an Noralsy tag from the GraphBuffer"},
|
||||
{"reader", CmdNoralsyReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdNoralsyClone, IfPm3Lf, "clone Noralsy tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdNoralsyClone, IfPm3Lf, "clone Noralsy tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdNoralsySim, IfPm3Lf, "simulate Noralsy tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -391,7 +391,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdPacDemod, AlwaysAvailable, "demodulate a PAC tag from the GraphBuffer"},
|
||||
{"reader", CmdPacReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdPacClone, IfPm3Lf, "clone PAC tag to T55x7"},
|
||||
{"clone", CmdPacClone, IfPm3Lf, "clone PAC tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdPacSim, IfPm3Lf, "simulate PAC tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -471,7 +471,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdParadoxDemod, AlwaysAvailable, "demodulate a Paradox FSK tag from the GraphBuffer"},
|
||||
{"reader", CmdParadoxReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdParadoxClone, IfPm3Lf, "clone paradox tag"},
|
||||
{"clone", CmdParadoxClone, IfPm3Lf, "clone paradox tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdParadoxSim, IfPm3Lf, "simulate paradox tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -357,7 +357,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdPrescoDemod, AlwaysAvailable, "demodulate Presco tag from the GraphBuffer"},
|
||||
{"reader", CmdPrescoReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdPrescoClone, IfPm3Lf, "clone presco tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdPrescoClone, IfPm3Lf, "clone presco tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdPrescoSim, IfPm3Lf, "simulate presco tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -444,7 +444,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "this help"},
|
||||
{"demod", CmdPyramidDemod, AlwaysAvailable, "demodulate a Pyramid FSK tag from the GraphBuffer"},
|
||||
{"reader", CmdPyramidReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdPyramidClone, IfPm3Lf, "clone pyramid tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdPyramidClone, IfPm3Lf, "clone pyramid tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdPyramidSim, IfPm3Lf, "simulate pyramid tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -294,7 +294,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdSecurakeyDemod, AlwaysAvailable, "demodulate an Securakey tag from the GraphBuffer"},
|
||||
{"reader", CmdSecurakeyReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdSecurakeyClone, IfPm3Lf, "clone Securakey tag to T55x7"},
|
||||
{"clone", CmdSecurakeyClone, IfPm3Lf, "clone Securakey tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdSecurakeySim, IfPm3Lf, "simulate Securakey tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -242,7 +242,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdVikingDemod, AlwaysAvailable, "demodulate a Viking tag from the GraphBuffer"},
|
||||
{"reader", CmdVikingReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdVikingClone, IfPm3Lf, "clone Viking tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdVikingClone, IfPm3Lf, "clone Viking tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdVikingSim, IfPm3Lf, "simulate Viking tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
|
@ -295,7 +295,7 @@ static command_t CommandTable[] = {
|
|||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||
{"demod", CmdVisa2kDemod, AlwaysAvailable, "demodulate an VISA2000 tag from the GraphBuffer"},
|
||||
{"reader", CmdVisa2kReader, IfPm3Lf, "attempt to read and extract tag data"},
|
||||
{"clone", CmdVisa2kClone, IfPm3Lf, "clone Visa2000 tag to T55x7 or Q5/T5555"},
|
||||
{"clone", CmdVisa2kClone, IfPm3Lf, "clone Visa2000 tag to T55x7, Q5/T5555 or EM4305/4469"},
|
||||
{"sim", CmdVisa2kSim, IfPm3Lf, "simulate Visa2000 tag"},
|
||||
{NULL, NULL, NULL, NULL}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue