From 1fa5e28a3829e2b7db10e2d74e1d6e97939d315f Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Sun, 8 Jun 2025 21:46:31 +0200 Subject: [PATCH] unify text and hints for static enc nonces a bit more --- client/src/cmdflashmemspiffs.c | 3 ++- client/src/cmdhfcipurse.c | 3 ++- client/src/cmdhfemrtd.c | 3 ++- client/src/cmdhffido.c | 3 ++- client/src/cmdhfksx6924.c | 2 +- client/src/cmdhfmf.c | 19 ++++++++++++------- client/src/cmdhfmfp.c | 2 +- client/src/cmdhfmfu.c | 2 +- client/src/cmdhfxerox.c | 4 ++-- client/src/cmdlfem4x70.c | 2 +- client/src/cmdlfhitag.c | 2 +- client/src/pm3line_vocabulary.h | 4 ++-- doc/commands.json | 8 ++++---- doc/commands.md | 22 +++++++++++----------- 14 files changed, 44 insertions(+), 35 deletions(-) diff --git a/client/src/cmdflashmemspiffs.c b/client/src/cmdflashmemspiffs.c index 8149236af..e2d5417ff 100644 --- a/client/src/cmdflashmemspiffs.c +++ b/client/src/cmdflashmemspiffs.c @@ -576,10 +576,11 @@ static int CmdFlashMemSpiFFSView(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, + {"-----------", CmdHelp, IfPm3Flash, "------------------- " _CYAN_("Operations") " -------------------"}, {"copy", CmdFlashMemSpiFFSCopy, IfPm3Flash, "Copy a file to another (destructively) in SPIFFS file system"}, {"check", CmdFlashMemSpiFFSCheck, IfPm3Flash, "Check/try to defrag faulty/fragmented file system"}, {"dump", CmdFlashMemSpiFFSDump, IfPm3Flash, "Dump a file from SPIFFS file system"}, - {"info", CmdFlashMemSpiFFSInfo, IfPm3Flash, "Print file system info and usage statistics"}, + {"info", CmdFlashMemSpiFFSInfo, IfPm3Flash, "File system information and usage statistics"}, {"mount", CmdFlashMemSpiFFSMount, IfPm3Flash, "Mount the SPIFFS file system if not already mounted"}, {"remove", CmdFlashMemSpiFFSRemove, IfPm3Flash, "Remove a file from SPIFFS file system"}, {"rename", CmdFlashMemSpiFFSRename, IfPm3Flash, "Rename/move a file in SPIFFS file system"}, diff --git a/client/src/cmdhfcipurse.c b/client/src/cmdhfcipurse.c index 3f6e76ec2..9e0ad8976 100644 --- a/client/src/cmdhfcipurse.c +++ b/client/src/cmdhfcipurse.c @@ -1888,7 +1888,8 @@ static int CmdHFCipurseDefault(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help."}, - {"info", CmdHFCipurseInfo, IfPm3Iso14443a, "Get info about CIPURSE tag"}, + {"-----------", CmdHelp, IfPm3Iso14443a, "------------------- " _CYAN_("Operations") " -------------------"}, + {"info", CmdHFCipurseInfo, IfPm3Iso14443a, "Tag information"}, {"select", CmdHFCipurseSelect, IfPm3Iso14443a, "Select CIPURSE application or file"}, {"auth", CmdHFCipurseAuth, IfPm3Iso14443a, "Authenticate CIPURSE tag"}, {"read", CmdHFCipurseReadFile, IfPm3Iso14443a, "Read binary file"}, diff --git a/client/src/cmdhfemrtd.c b/client/src/cmdhfemrtd.c index 896877a74..5d0182d56 100644 --- a/client/src/cmdhfemrtd.c +++ b/client/src/cmdhfemrtd.c @@ -2449,8 +2449,9 @@ static int CmdHFeMRTDList(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, + {"-----------", CmdHelp, IfPm3Iso14443, "------------------- " _CYAN_("Operations") " -------------------"}, {"dump", CmdHFeMRTDDump, IfPm3Iso14443, "Dump eMRTD files to binary files"}, - {"info", CmdHFeMRTDInfo, AlwaysAvailable, "Display info about an eMRTD"}, + {"info", CmdHFeMRTDInfo, AlwaysAvailable, "Tag information"}, {"list", CmdHFeMRTDList, AlwaysAvailable, "List ISO 14443A/7816 history"}, {NULL, NULL, NULL, NULL} }; diff --git a/client/src/cmdhffido.c b/client/src/cmdhffido.c index 2032dca95..54560354b 100644 --- a/client/src/cmdhffido.c +++ b/client/src/cmdhffido.c @@ -913,7 +913,8 @@ static int CmdHFFido2GetAssertion(const char *cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help."}, {"list", CmdHFFidoList, AlwaysAvailable, "List ISO 14443A history"}, - {"info", CmdHFFidoInfo, IfPm3Iso14443a, "Info about FIDO tag."}, + {"-----------", CmdHelp, IfPm3Iso14443a, "------------------- " _CYAN_("Operations") " -------------------"}, + {"info", CmdHFFidoInfo, IfPm3Iso14443a, "Tag information"}, {"reg", CmdHFFidoRegister, IfPm3Iso14443a, "FIDO U2F Registration Message."}, {"auth", CmdHFFidoAuthenticate, IfPm3Iso14443a, "FIDO U2F Authentication Message."}, {"make", CmdHFFido2MakeCredential, IfPm3Iso14443a, "FIDO2 MakeCredential command."}, diff --git a/client/src/cmdhfksx6924.c b/client/src/cmdhfksx6924.c index 7616ca766..b6a72fe2e 100644 --- a/client/src/cmdhfksx6924.c +++ b/client/src/cmdhfksx6924.c @@ -358,7 +358,7 @@ end: static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, {"select", CmdHFKSX6924Select, IfPm3Iso14443a, "Select application, and leave field up"}, - {"info", CmdHFKSX6924Info, IfPm3Iso14443a, "Get info about a KS X 6924 (T-Money, Snapper+) transit card"}, + {"info", CmdHFKSX6924Info, IfPm3Iso14443a, "Tag information"}, {"balance", CmdHFKSX6924Balance, IfPm3Iso14443a, "Get current purse balance"}, {"init", CmdHFKSX6924Initialize, IfPm3Iso14443a, "Perform transaction initialization with Mpda"}, {"prec", CmdHFKSX6924PRec, IfPm3Iso14443a, "Send proprietary get record command (CLA=90, INS=4C)"}, diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index d46a1db0b..7a4efcf1e 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -2105,7 +2105,8 @@ static int CmdHF14AMfNested(const char *Cmd) { //TODO: single mode broken? can't PrintAndLogEx(FAILED, "No valid key found"); break; case PM3_ESTATIC_NONCE: - PrintAndLogEx(ERR, "Error: Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(ERR, "Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(HINT, "Hint: Try `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); break; case PM3_SUCCESS: key64 = bytes_to_num(keyBlock, 6); @@ -2189,7 +2190,8 @@ static int CmdHF14AMfNested(const char *Cmd) { //TODO: single mode broken? can't calibrate = false; continue; case PM3_ESTATIC_NONCE: - PrintAndLogEx(ERR, "Error: Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(ERR, "Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(HINT, "Hint: Try `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); break; case PM3_SUCCESS: calibrate = false; @@ -2766,7 +2768,8 @@ static int CmdHF14AMfNestedHard(const char *Cmd) { PrintAndLogEx(WARNING, "Button pressed. Aborted\n"); break; case PM3_ESTATIC_NONCE: - PrintAndLogEx(ERR, "Error: Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(ERR, "Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(HINT, "Hint: Try `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); break; case PM3_EFAILED: { PrintAndLogEx(FAILED, "\nFailed to recover a key..."); @@ -3279,7 +3282,8 @@ noValidKeyFound: } if (has_staticnonce == NONCE_STATIC_ENC) { - PrintAndLogEx(HINT, "Hint: Static encrypted nonce detected, run `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); + PrintAndLogEx(ERR, "Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(HINT, "Hint: Try `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); } DropField(); @@ -3431,7 +3435,8 @@ tryNested: break; } case PM3_ESTATIC_NONCE: { - PrintAndLogEx(ERR, "Error: Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(ERR, "Static encrypted nonce detected. Aborted\n"); + PrintAndLogEx(HINT, "Hint: Try `" _YELLOW_("script run fm11rf08s_recovery.py") "`"); e_sector[current_sector_i].Key[current_key_type_i] = 0xffffffffffff; e_sector[current_sector_i].foundKey[current_key_type_i] = false; @@ -10617,8 +10622,6 @@ static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, {"list", CmdHF14AMfList, AlwaysAvailable, "List MIFARE history"}, {"-----------", CmdHelp, IfPm3Iso14443a, "----------------------- " _CYAN_("recovery") " -----------------------"}, - {"info", CmdHF14AMfInfo, IfPm3Iso14443a, "mfc card Info"}, - {"isen", CmdHF14AMfISEN, IfPm3Iso14443a, "mfc card Info Static Encrypted Nonces"}, {"darkside", CmdHF14AMfDarkside, IfPm3Iso14443a, "Darkside attack"}, {"nested", CmdHF14AMfNested, IfPm3Iso14443a, "Nested attack"}, {"hardnested", CmdHF14AMfNestedHard, AlwaysAvailable, "Nested attack for hardened MIFARE Classic cards"}, @@ -10636,6 +10639,8 @@ static command_t CommandTable[] = { {"auth4", CmdHF14AMfAuth4, IfPm3Iso14443a, "ISO14443-4 AES authentication"}, {"acl", CmdHF14AMfAcl, AlwaysAvailable, "Decode and print MIFARE Classic access rights bytes"}, {"dump", CmdHF14AMfDump, IfPm3Iso14443a, "Dump MIFARE Classic tag to binary file"}, + {"info", CmdHF14AMfInfo, IfPm3Iso14443a, "Tag information"}, + {"isen", CmdHF14AMfISEN, IfPm3Iso14443a, "Information Static Encrypted Nonces"}, {"mad", CmdHF14AMfMAD, AlwaysAvailable, "Checks and prints MAD"}, {"personalize", CmdHFMFPersonalize, IfPm3Iso14443a, "Personalize UID (MIFARE Classic EV1 only)"}, {"rdbl", CmdHF14AMfRdBl, IfPm3Iso14443a, "Read MIFARE Classic block"}, diff --git a/client/src/cmdhfmfp.c b/client/src/cmdhfmfp.c index a1af9d780..25f7f464e 100644 --- a/client/src/cmdhfmfp.c +++ b/client/src/cmdhfmfp.c @@ -2152,7 +2152,7 @@ static command_t CommandTable[] = { {"auth", CmdHFMFPAuth, IfPm3Iso14443a, "Authentication"}, {"chk", CmdHFMFPChk, IfPm3Iso14443a, "Check keys"}, {"dump", CmdHFMFPDump, IfPm3Iso14443a, "Dump MIFARE Plus tag to binary file"}, - {"info", CmdHFMFPInfo, IfPm3Iso14443a, "Info about MIFARE Plus tag"}, + {"info", CmdHFMFPInfo, IfPm3Iso14443a, "Tag information"}, {"mad", CmdHFMFPMAD, IfPm3Iso14443a, "Check and print MAD"}, {"rdbl", CmdHFMFPRdbl, IfPm3Iso14443a, "Read blocks from card"}, {"rdsc", CmdHFMFPRdsc, IfPm3Iso14443a, "Read sectors from card"}, diff --git a/client/src/cmdhfmfu.c b/client/src/cmdhfmfu.c index bd38eafcc..7266e23f3 100644 --- a/client/src/cmdhfmfu.c +++ b/client/src/cmdhfmfu.c @@ -3867,7 +3867,7 @@ static int CmdHF14AMfUCAuth(const char *Cmd) { "Tests 3DES key on Mifare Ultralight-C tag.\n" "If key is not specified, a set of known defaults will be tried.", "hf mfu cauth\n" - "hf mfu cauth --key <32 hex chars>" + "hf mfu cauth --key 000102030405060708090a0b0c0d0e0f" ); void *argtable[] = { diff --git a/client/src/cmdhfxerox.c b/client/src/cmdhfxerox.c index ad13a0dca..0bec9a1d9 100644 --- a/client/src/cmdhfxerox.c +++ b/client/src/cmdhfxerox.c @@ -1013,8 +1013,8 @@ static int CmdHFXeroxRdBl(const char *Cmd) { static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, {"list", CmdHFXeroxList, AlwaysAvailable, "List ISO-14443B history"}, - {"--------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("General") " -----------------------"}, - {"info", CmdHFXeroxInfo, IfPm3Iso14443b, "Short info on Fuji/Xerox tag"}, + {"--------", CmdHelp, AlwaysAvailable, "----------------------- " _CYAN_("Operations") " -----------------------"}, + {"info", CmdHFXeroxInfo, IfPm3Iso14443b, "Tag information"}, {"dump", CmdHFXeroxDump, IfPm3Iso14443b, "Read all memory pages of an Fuji/Xerox tag, save to file"}, {"reader", CmdHFXeroxReader, IfPm3Iso14443b, "Act like a Fuji/Xerox reader"}, {"view", CmdHFXeroxView, AlwaysAvailable, "Display content from tag dump file"}, diff --git a/client/src/cmdlfem4x70.c b/client/src/cmdlfem4x70.c index 27672f9f4..69cdcc39a 100644 --- a/client/src/cmdlfem4x70.c +++ b/client/src/cmdlfem4x70.c @@ -1521,7 +1521,7 @@ static int CmdHelp(const char *Cmd); static command_t CommandTable[] = { {"help", CmdHelp, AlwaysAvailable, "This help"}, {"brute", CmdEM4x70Brute, IfPm3EM4x70, "Bruteforce EM4X70 to find partial key"}, - {"info", CmdEM4x70Info, IfPm3EM4x70, "Tag information EM4x70"}, + {"info", CmdEM4x70Info, IfPm3EM4x70, "Tag information"}, {"write", CmdEM4x70Write, IfPm3EM4x70, "Write EM4x70"}, {"unlock", CmdEM4x70Unlock, IfPm3EM4x70, "Unlock EM4x70 for writing"}, {"auth", CmdEM4x70Auth, IfPm3EM4x70, "Authenticate EM4x70"}, diff --git a/client/src/cmdlfhitag.c b/client/src/cmdlfhitag.c index 8e3a0b808..425b0412c 100644 --- a/client/src/cmdlfhitag.c +++ b/client/src/cmdlfhitag.c @@ -2468,7 +2468,7 @@ static command_t CommandTable[] = { {"hts", CmdLFHitagS, AlwaysAvailable, "{ Hitag S/8211 operations }"}, {"htu", CmdLFHitagU, AlwaysAvailable, "{ Hitag ยต/8265 operations }"}, {"-----------", CmdHelp, IfPm3Hitag, "------------------------ " _CYAN_("General") " ------------------------"}, - {"info", CmdLFHitagInfo, IfPm3Hitag, "Hitag 2 tag information"}, + {"info", CmdLFHitagInfo, IfPm3Hitag, "Tag information"}, {"reader", CmdLFHitagReader, IfPm3Hitag, "Act like a Hitag 2 reader"}, {"test", CmdLFHitag2Selftest, AlwaysAvailable, "Perform self tests"}, {"-----------", CmdHelp, IfPm3Hitag, "----------------------- " _CYAN_("Operations") " -----------------------"}, diff --git a/client/src/pm3line_vocabulary.h b/client/src/pm3line_vocabulary.h index 7f91e8d60..a7cb8a8a2 100644 --- a/client/src/pm3line_vocabulary.h +++ b/client/src/pm3line_vocabulary.h @@ -343,8 +343,6 @@ const static vocabulary_t vocabulary[] = { { 0, "hf lto wrbl" }, { 1, "hf mf help" }, { 1, "hf mf list" }, - { 0, "hf mf info" }, - { 0, "hf mf isen" }, { 0, "hf mf darkside" }, { 0, "hf mf nested" }, { 1, "hf mf hardnested" }, @@ -360,6 +358,8 @@ const static vocabulary_t vocabulary[] = { { 0, "hf mf auth4" }, { 1, "hf mf acl" }, { 0, "hf mf dump" }, + { 0, "hf mf info" }, + { 0, "hf mf isen" }, { 1, "hf mf mad" }, { 0, "hf mf personalize" }, { 0, "hf mf rdbl" }, diff --git a/doc/commands.json b/doc/commands.json index e18cb9743..b464227de 100644 --- a/doc/commands.json +++ b/doc/commands.json @@ -2512,7 +2512,7 @@ }, "hf emrtd help": { "command": "hf emrtd help", - "description": "help This help info Display info about an eMRTD list List ISO 14443A/7816 history --------------------------------------------------------------------------------------- hf emrtd dump available offline: no Dump all files on an eMRTD", + "description": "help This help info Tag information list List ISO 14443A/7816 history --------------------------------------------------------------------------------------- hf emrtd dump available offline: no Dump all files on an eMRTD", "notes": [ "hf emrtd dump", "hf emrtd dump --dir ../dump", @@ -7120,7 +7120,7 @@ "description": "Tests 3DES key on Mifare Ultralight-C tag. If key is not specified, a set of known defaults will be tried.", "notes": [ "hf mfu cauth", - "hf mfu cauth --key <32 hex chars>" + "hf mfu cauth --key 000102030405060708090a0b0c0d0e0f" ], "offline": false, "options": [ @@ -8234,7 +8234,7 @@ }, "hf xerox help": { "command": "hf xerox help", - "description": "help This help list List ISO-14443B history -------- ----------------------- General ----------------------- view Display content from tag dump file --------------------------------------------------------------------------------------- hf xerox list available offline: yes Alias of `trace list -t 14b -c` with selected protocol data to annotate trace buffer You can load a trace from file (see `trace load -h`) or it be downloaded from device by default It accepts all other arguments of `trace list`. Note that some might not be relevant for this specific protocol", + "description": "help This help list List ISO-14443B history -------- ----------------------- Operations ----------------------- view Display content from tag dump file --------------------------------------------------------------------------------------- hf xerox list available offline: yes Alias of `trace list -t 14b -c` with selected protocol data to annotate trace buffer You can load a trace from file (see `trace load -h`) or it be downloaded from device by default It accepts all other arguments of `trace list`. Note that some might not be relevant for this specific protocol", "notes": [ "hf 14b list --frame -> show frame delay times", "hf 14b list -1 -> use trace buffer" @@ -13376,6 +13376,6 @@ "metadata": { "commands_extracted": 768, "extracted_by": "PM3Help2JSON v1.00", - "extracted_on": "2025-06-08T18:54:12" + "extracted_on": "2025-06-08T19:44:35" } } diff --git a/doc/commands.md b/doc/commands.md index b4ba82219..9cdcf7a47 100644 --- a/doc/commands.md +++ b/doc/commands.md @@ -277,7 +277,7 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`hf cipurse help `|Y |`This help.` -|`hf cipurse info `|N |`Get info about CIPURSE tag` +|`hf cipurse info `|N |`Tag information` |`hf cipurse select `|N |`Select CIPURSE application or file` |`hf cipurse auth `|N |`Authenticate CIPURSE tag` |`hf cipurse read `|N |`Read binary file` @@ -313,7 +313,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf emrtd help `|Y |`This help` |`hf emrtd dump `|N |`Dump eMRTD files to binary files` -|`hf emrtd info `|Y |`Display info about an eMRTD` +|`hf emrtd info `|Y |`Tag information` |`hf emrtd list `|Y |`List ISO 14443A/7816 history` @@ -351,7 +351,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf fido help `|Y |`This help.` |`hf fido list `|Y |`List ISO 14443A history` -|`hf fido info `|N |`Info about FIDO tag.` +|`hf fido info `|N |`Tag information` |`hf fido reg `|N |`FIDO U2F Registration Message.` |`hf fido auth `|N |`FIDO U2F Authentication Message.` |`hf fido make `|N |`FIDO2 MakeCredential command.` @@ -460,7 +460,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf ksx6924 help `|Y |`This help` |`hf ksx6924 select `|N |`Select application, and leave field up` -|`hf ksx6924 info `|N |`Get info about a KS X 6924 (T-Money, Snapper+) transit card` +|`hf ksx6924 info `|N |`Tag information` |`hf ksx6924 balance `|N |`Get current purse balance` |`hf ksx6924 init `|N |`Perform transaction initialization with Mpda` |`hf ksx6924 prec `|N |`Send proprietary get record command (CLA=90, INS=4C)` @@ -514,8 +514,6 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf mf help `|Y |`This help` |`hf mf list `|Y |`List MIFARE history` -|`hf mf info `|N |`mfc card Info` -|`hf mf isen `|N |`mfc card Info Static Encrypted Nonces` |`hf mf darkside `|N |`Darkside attack` |`hf mf nested `|N |`Nested attack` |`hf mf hardnested `|Y |`Nested attack for hardened MIFARE Classic cards` @@ -531,6 +529,8 @@ Check column "offline" for their availability. |`hf mf auth4 `|N |`ISO14443-4 AES authentication` |`hf mf acl `|Y |`Decode and print MIFARE Classic access rights bytes` |`hf mf dump `|N |`Dump MIFARE Classic tag to binary file` +|`hf mf info `|N |`Tag information` +|`hf mf isen `|N |`Information Static Encrypted Nonces` |`hf mf mad `|Y |`Checks and prints MAD` |`hf mf personalize `|N |`Personalize UID (MIFARE Classic EV1 only)` |`hf mf rdbl `|N |`Read MIFARE Classic block` @@ -590,7 +590,7 @@ Check column "offline" for their availability. |`hf mfp auth `|N |`Authentication` |`hf mfp chk `|N |`Check keys` |`hf mfp dump `|N |`Dump MIFARE Plus tag to binary file` -|`hf mfp info `|N |`Info about MIFARE Plus tag` +|`hf mfp info `|N |`Tag information` |`hf mfp mad `|N |`Check and print MAD` |`hf mfp rdbl `|N |`Read blocks from card` |`hf mfp rdsc `|N |`Read sectors from card` @@ -814,7 +814,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf xerox help `|Y |`This help` |`hf xerox list `|Y |`List ISO-14443B history` -|`hf xerox info `|N |`Short info on Fuji/Xerox tag` +|`hf xerox info `|N |`Tag information` |`hf xerox dump `|N |`Read all memory pages of an Fuji/Xerox tag, save to file` |`hf xerox reader `|N |`Act like a Fuji/Xerox reader` |`hf xerox view `|Y |`Display content from tag dump file` @@ -991,7 +991,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`lf em 4x70 help `|Y |`This help` |`lf em 4x70 brute `|N |`Bruteforce EM4X70 to find partial key` -|`lf em 4x70 info `|N |`Tag information EM4x70` +|`lf em 4x70 info `|N |`Tag information` |`lf em 4x70 write `|N |`Write EM4x70` |`lf em 4x70 unlock `|N |`Unlock EM4x70 for writing` |`lf em 4x70 auth `|N |`Authenticate EM4x70` @@ -1064,7 +1064,7 @@ Check column "offline" for their availability. |------- |------- |----------- |`lf hitag help `|Y |`This help` |`lf hitag list `|Y |`List Hitag trace history` -|`lf hitag info `|N |`Hitag 2 tag information` +|`lf hitag info `|N |`Tag information` |`lf hitag reader `|N |`Act like a Hitag 2 reader` |`lf hitag test `|Y |`Perform self tests` |`lf hitag dump `|N |`Dump Hitag 2 tag` @@ -1402,7 +1402,7 @@ Check column "offline" for their availability. |`mem spiffs copy `|N |`Copy a file to another (destructively) in SPIFFS file system` |`mem spiffs check `|N |`Check/try to defrag faulty/fragmented file system` |`mem spiffs dump `|N |`Dump a file from SPIFFS file system` -|`mem spiffs info `|N |`Print file system info and usage statistics` +|`mem spiffs info `|N |`File system information and usage statistics` |`mem spiffs mount `|N |`Mount the SPIFFS file system if not already mounted` |`mem spiffs remove `|N |`Remove a file from SPIFFS file system` |`mem spiffs rename `|N |`Rename/move a file in SPIFFS file system`