mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
textual
This commit is contained in:
parent
270ef78820
commit
3b9da365a0
3 changed files with 55 additions and 55 deletions
|
@ -100,8 +100,6 @@ static void print_info_result(uint8_t *data, bool verbose) {
|
||||||
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
|
||||||
|
|
||||||
// data section
|
// data section
|
||||||
PrintAndLogEx(NORMAL, "");
|
|
||||||
PrintAndLogEx(INFO, _YELLOW_("EM4x50 data:"));
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
print_result(words, 0, EM4X50_NO_WORDS - 1);
|
print_result(words, 0, EM4X50_NO_WORDS - 1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -112,16 +110,16 @@ static void print_info_result(uint8_t *data, bool verbose) {
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "---- " _CYAN_("Configuration") " ----");
|
PrintAndLogEx(INFO, "---- " _CYAN_("Configuration") " ----");
|
||||||
|
|
||||||
PrintAndLogEx(INFO, "first word read %3i", fwr);
|
PrintAndLogEx(INFO, "first word read.... " _YELLOW_("%i"), fwr);
|
||||||
PrintAndLogEx(INFO, "last word read %3i", lwr);
|
PrintAndLogEx(INFO, "last word read..... " _YELLOW_("%i"), lwr);
|
||||||
PrintAndLogEx(INFO, "password check %3s", (bpwc) ? _RED_("on") : _GREEN_("off"));
|
PrintAndLogEx(INFO, "password check..... %s", (bpwc) ? _RED_("on") : _GREEN_("off"));
|
||||||
PrintAndLogEx(INFO, "read after write %3s", (braw) ? "on" : "off");
|
PrintAndLogEx(INFO, "read after write... %s", (braw) ? "on" : "off");
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "--------- " _CYAN_("Protection") " ---------");
|
PrintAndLogEx(INFO, "--------- " _CYAN_("Protection") " ------------");
|
||||||
PrintAndLogEx(INFO, "first word read protected %3i", fwrp);
|
PrintAndLogEx(INFO, "first word read protected.... %i", fwrp);
|
||||||
PrintAndLogEx(INFO, "last word read protected %3i", lwrp);
|
PrintAndLogEx(INFO, "last word read protected..... %i", lwrp);
|
||||||
PrintAndLogEx(INFO, "first word write inhibited %3i", fwwi);
|
PrintAndLogEx(INFO, "first word write inhibited... %i", fwwi);
|
||||||
PrintAndLogEx(INFO, "last word write inhibited %3i", lwwi);
|
PrintAndLogEx(INFO, "last word write inhibited.... %i", lwwi);
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(INFO, "zero values may indicate read protection");
|
PrintAndLogEx(INFO, "zero values may indicate read protection");
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
|
@ -364,9 +362,9 @@ int CmdEM4x50Login(const char *Cmd) {
|
||||||
int CmdEM4x50Brute(const char *Cmd) {
|
int CmdEM4x50Brute(const char *Cmd) {
|
||||||
CLIParserContext *ctx;
|
CLIParserContext *ctx;
|
||||||
CLIParserInit(&ctx, "lf em 4x50 brute",
|
CLIParserInit(&ctx, "lf em 4x50 brute",
|
||||||
"Tries to bruteforce the password of a EM4x50.\n"
|
"Tries to bruteforce the password of a EM4x50 card.\n"
|
||||||
"Function can be stopped by pressing pm3 button.",
|
"Function can be stopped by pressing pm3 button.",
|
||||||
"lf em 4x50 brute --first 12330000 --last 12340000 -> tries pwds from 0x12330000 to 0x1234000000\n"
|
"lf em 4x50 brute --first 12330000 --last 12340000 -> tries pwds from 0x12330000 to 0x1234000000\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
|
@ -435,7 +433,7 @@ int CmdEM4x50Brute(const char *Cmd) {
|
||||||
int CmdEM4x50Chk(const char *Cmd) {
|
int CmdEM4x50Chk(const char *Cmd) {
|
||||||
CLIParserContext *ctx;
|
CLIParserContext *ctx;
|
||||||
CLIParserInit(&ctx, "lf em 4x50 chk",
|
CLIParserInit(&ctx, "lf em 4x50 chk",
|
||||||
"Dictionary attack against EM4x50.",
|
"Run dictionary key recovery against EM4x50 card.",
|
||||||
"lf em 4x50 chk -> uses T55xx default dictionary\n"
|
"lf em 4x50 chk -> uses T55xx default dictionary\n"
|
||||||
"lf em 4x50 chk -f my.dic"
|
"lf em 4x50 chk -f my.dic"
|
||||||
);
|
);
|
||||||
|
@ -639,8 +637,8 @@ int CmdEM4x50Info(const char *Cmd) {
|
||||||
CLIParserInit(&ctx, "lf em 4x50 info",
|
CLIParserInit(&ctx, "lf em 4x50 info",
|
||||||
"Tag information EM4x50.",
|
"Tag information EM4x50.",
|
||||||
"lf em 4x50 info\n"
|
"lf em 4x50 info\n"
|
||||||
"lf em 4x50 info -v -> show data section\n"
|
"lf em 4x50 info -v -> show data section\n"
|
||||||
"lf em 4x50 info -p 12345678 -> uses pwd 0x12345678\n"
|
"lf em 4x50 info -p 12345678 -> uses pwd 0x12345678\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
|
@ -908,9 +906,9 @@ int CmdEM4x50Write(const char *Cmd) {
|
||||||
// envokes changing the password of EM4x50 tag
|
// envokes changing the password of EM4x50 tag
|
||||||
int CmdEM4x50WritePwd(const char *Cmd) {
|
int CmdEM4x50WritePwd(const char *Cmd) {
|
||||||
CLIParserContext *ctx;
|
CLIParserContext *ctx;
|
||||||
CLIParserInit(&ctx, "lf em 4x50 writepwd",
|
CLIParserInit(&ctx, "lf em 4x50 wrpwd",
|
||||||
"Writes EM4x50 password.",
|
"Writes EM4x50 password.",
|
||||||
"lf em 4x50 writepwd -p 4f22e7ff -n 12345678"
|
"lf em 4x50 wrpwd -p 4f22e7ff -n 12345678"
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
|
@ -1210,21 +1208,23 @@ int CmdEM4x50Sim(const char *Cmd) {
|
||||||
|
|
||||||
static command_t CommandTable[] = {
|
static command_t CommandTable[] = {
|
||||||
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
{"help", CmdHelp, AlwaysAvailable, "This help"},
|
||||||
{"brute", CmdEM4x50Brute, IfPm3EM4x50, "guess password of EM4x50"},
|
{"-----------", CmdHelp, AlwaysAvailable, "--------------------- " _CYAN_("operations") " ---------------------"},
|
||||||
{"chk", CmdEM4x50Chk, IfPm3EM4x50, "check passwords from dictionary"},
|
{"brute", CmdEM4x50Brute, IfPm3EM4x50, "Simple bruteforce attack to find password"},
|
||||||
{"dump", CmdEM4x50Dump, IfPm3EM4x50, "dump EM4x50 tag"},
|
{"chk", CmdEM4x50Chk, IfPm3EM4x50, "Check passwords from dictionary"},
|
||||||
{"info", CmdEM4x50Info, IfPm3EM4x50, "tag information EM4x50"},
|
{"dump", CmdEM4x50Dump, IfPm3EM4x50, "Dump EM4x50 tag"},
|
||||||
{"login", CmdEM4x50Login, IfPm3EM4x50, "login into EM4x50"},
|
{"info", CmdEM4x50Info, IfPm3EM4x50, "Tag information"},
|
||||||
{"rdbl", CmdEM4x50Read, IfPm3EM4x50, "read word data from EM4x50"},
|
{"login", CmdEM4x50Login, IfPm3EM4x50, "Login into EM4x50 tag"},
|
||||||
{"wrbl", CmdEM4x50Write, IfPm3EM4x50, "write word data to EM4x50"},
|
{"rdbl", CmdEM4x50Read, IfPm3EM4x50, "Read EM4x50 word data"},
|
||||||
{"writepwd", CmdEM4x50WritePwd, IfPm3EM4x50, "change password of EM4x50"},
|
{"reader", CmdEM4x50Reader, IfPm3EM4x50, "Show standard read mode data"},
|
||||||
{"wipe", CmdEM4x50Wipe, IfPm3EM4x50, "wipe EM4x50 tag"},
|
{"restore", CmdEM4x50Restore, IfPm3EM4x50, "Restore EM4x50 dump to tag"},
|
||||||
{"reader", CmdEM4x50Reader, IfPm3EM4x50, "show standard read mode data of EM4x50"},
|
{"wrbl", CmdEM4x50Write, IfPm3EM4x50, "Write EM4x50 word data"},
|
||||||
{"restore", CmdEM4x50Restore, IfPm3EM4x50, "restore EM4x50 dump to tag"},
|
{"wrpwd", CmdEM4x50WritePwd, IfPm3EM4x50, "Change EM4x50 password"},
|
||||||
{"sim", CmdEM4x50Sim, IfPm3EM4x50, "simulate EM4x50 tag"},
|
{"wipe", CmdEM4x50Wipe, IfPm3EM4x50, "Wipe EM4x50 tag"},
|
||||||
{"eload", CmdEM4x50ELoad, IfPm3EM4x50, "upload dump of EM4x50 to emulator memory"},
|
{"-----------", CmdHelp, AlwaysAvailable, "--------------------- " _CYAN_("simulation") " ---------------------"},
|
||||||
{"esave", CmdEM4x50ESave, IfPm3EM4x50, "save emulator memory to file"},
|
{"eload", CmdEM4x50ELoad, IfPm3EM4x50, "Upload EM4x50 dump to emulator memory"},
|
||||||
{"eview", CmdEM4x50EView, IfPm3EM4x50, "view EM4x50 content in emulator memory"},
|
{"esave", CmdEM4x50ESave, IfPm3EM4x50, "Save emulator memory to file"},
|
||||||
|
{"eview", CmdEM4x50EView, IfPm3EM4x50, "View EM4x50 content in emulator memory"},
|
||||||
|
{"sim", CmdEM4x50Sim, IfPm3EM4x50, "Simulate EM4x50 tag"},
|
||||||
{NULL, NULL, NULL, NULL}
|
{NULL, NULL, NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -5778,7 +5778,7 @@
|
||||||
},
|
},
|
||||||
"lf em 4x50 chk": {
|
"lf em 4x50 chk": {
|
||||||
"command": "lf em 4x50 chk",
|
"command": "lf em 4x50 chk",
|
||||||
"description": "dictionary attack against em4x50.",
|
"description": "run dictionary key recovery against em4x50 card.",
|
||||||
"notes": [
|
"notes": [
|
||||||
"lf em 4x50 chk -> uses t55xx default dictionary",
|
"lf em 4x50 chk -> uses t55xx default dictionary",
|
||||||
"lf em 4x50 chk -f my.dic"
|
"lf em 4x50 chk -f my.dic"
|
||||||
|
@ -5848,7 +5848,7 @@
|
||||||
},
|
},
|
||||||
"lf em 4x50 help": {
|
"lf em 4x50 help": {
|
||||||
"command": "lf em 4x50 help",
|
"command": "lf em 4x50 help",
|
||||||
"description": "help this help --------------------------------------------------------------------------------------- lf em 4x50 brute available offline: no tries to bruteforce the password of a em4x50. function can be stopped by pressing pm3 button.",
|
"description": "help this help ----------- --------------------- operations --------------------- ----------- --------------------- simulation --------------------- --------------------------------------------------------------------------------------- lf em 4x50 brute available offline: no tries to bruteforce the password of a em4x50 card. function can be stopped by pressing pm3 button.",
|
||||||
"notes": [
|
"notes": [
|
||||||
"lf em 4x50 brute --first 12330000 --last 12340000 -> tries pwds from 0x12330000 to 0x1234000000"
|
"lf em 4x50 brute --first 12330000 --last 12340000 -> tries pwds from 0x12330000 to 0x1234000000"
|
||||||
],
|
],
|
||||||
|
@ -5979,11 +5979,11 @@
|
||||||
],
|
],
|
||||||
"usage": "lf em 4x50 wrbl [-h] -b <dec> -d <hex> [-p <hex>]"
|
"usage": "lf em 4x50 wrbl [-h] -b <dec> -d <hex> [-p <hex>]"
|
||||||
},
|
},
|
||||||
"lf em 4x50 writepwd": {
|
"lf em 4x50 wrpwd": {
|
||||||
"command": "lf em 4x50 writepwd",
|
"command": "lf em 4x50 wrpwd",
|
||||||
"description": "writes em4x50 password.",
|
"description": "writes em4x50 password.",
|
||||||
"notes": [
|
"notes": [
|
||||||
"lf em 4x50 writepwd -p 4f22e7ff -n 12345678"
|
"lf em 4x50 wrpwd -p 4f22e7ff -n 12345678"
|
||||||
],
|
],
|
||||||
"offline": false,
|
"offline": false,
|
||||||
"options": [
|
"options": [
|
||||||
|
@ -5991,7 +5991,7 @@
|
||||||
"-p, --pwd <hex> password, 4 hex bytes, lsb",
|
"-p, --pwd <hex> password, 4 hex bytes, lsb",
|
||||||
"-n, --new <hex> new password, 4 hex bytes, lsb"
|
"-n, --new <hex> new password, 4 hex bytes, lsb"
|
||||||
],
|
],
|
||||||
"usage": "lf em 4x50 writepwd [-h] -p <hex> -n <hex>"
|
"usage": "lf em 4x50 wrpwd [-h] -p <hex> -n <hex>"
|
||||||
},
|
},
|
||||||
"lf em 4x70 auth": {
|
"lf em 4x70 auth": {
|
||||||
"command": "lf em 4x70 auth",
|
"command": "lf em 4x70 auth",
|
||||||
|
@ -9199,6 +9199,6 @@
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"commands_extracted": 571,
|
"commands_extracted": 571,
|
||||||
"extracted_by": "PM3Help2JSON v1.00",
|
"extracted_by": "PM3Help2JSON v1.00",
|
||||||
"extracted_on": "2021-06-24T16:45:08"
|
"extracted_on": "2021-06-24T17:24:39"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -724,21 +724,21 @@ Check column "offline" for their availability.
|
||||||
|command |offline |description
|
|command |offline |description
|
||||||
|------- |------- |-----------
|
|------- |------- |-----------
|
||||||
|`lf em 4x50 help `|Y |`This help`
|
|`lf em 4x50 help `|Y |`This help`
|
||||||
|`lf em 4x50 brute `|N |`guess password of EM4x50`
|
|`lf em 4x50 brute `|N |`Simple bruteforce attack to find password`
|
||||||
|`lf em 4x50 chk `|N |`check passwords from dictionary`
|
|`lf em 4x50 chk `|N |`Check passwords from dictionary`
|
||||||
|`lf em 4x50 dump `|N |`dump EM4x50 tag`
|
|`lf em 4x50 dump `|N |`Dump EM4x50 tag`
|
||||||
|`lf em 4x50 info `|N |`tag information EM4x50`
|
|`lf em 4x50 info `|N |`Tag information`
|
||||||
|`lf em 4x50 login `|N |`login into EM4x50`
|
|`lf em 4x50 login `|N |`Login into EM4x50 tag`
|
||||||
|`lf em 4x50 rdbl `|N |`read word data from EM4x50`
|
|`lf em 4x50 rdbl `|N |`Read EM4x50 word data`
|
||||||
|`lf em 4x50 wrbl `|N |`write word data to EM4x50`
|
|`lf em 4x50 reader `|N |`Show standard read mode data`
|
||||||
|`lf em 4x50 writepwd `|N |`change password of EM4x50`
|
|`lf em 4x50 restore `|N |`Restore EM4x50 dump to tag`
|
||||||
|`lf em 4x50 wipe `|N |`wipe EM4x50 tag`
|
|`lf em 4x50 wrbl `|N |`Write EM4x50 word data`
|
||||||
|`lf em 4x50 reader `|N |`show standard read mode data of EM4x50`
|
|`lf em 4x50 wrpwd `|N |`Change EM4x50 password`
|
||||||
|`lf em 4x50 restore `|N |`restore EM4x50 dump to tag`
|
|`lf em 4x50 wipe `|N |`Wipe EM4x50 tag`
|
||||||
|`lf em 4x50 sim `|N |`simulate EM4x50 tag`
|
|`lf em 4x50 eload `|N |`Upload EM4x50 dump to emulator memory`
|
||||||
|`lf em 4x50 eload `|N |`upload dump of EM4x50 to emulator memory`
|
|`lf em 4x50 esave `|N |`Save emulator memory to file`
|
||||||
|`lf em 4x50 esave `|N |`save emulator memory to file`
|
|`lf em 4x50 eview `|N |`View EM4x50 content in emulator memory`
|
||||||
|`lf em 4x50 eview `|N |`view EM4x50 content in emulator memory`
|
|`lf em 4x50 sim `|N |`Simulate EM4x50 tag`
|
||||||
|
|
||||||
|
|
||||||
### lf em 4x70
|
### lf em 4x70
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue