From 66b3ebabb96499f52b5ffe19b091c0450a08cb8b Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Tue, 27 Jun 2023 15:24:25 +0200 Subject: [PATCH] fix regex for extracting the description and notes.\n description now must start with a newline and go until it see the word usage:. \n\n notes now go until it sees either === or --- or \n\n\n which all would be indication that the notes section ended. --- client/pyscripts/pm3_help2json.py | 8 +- doc/commands.json | 1038 ++++++++--------------------- 2 files changed, 287 insertions(+), 759 deletions(-) diff --git a/client/pyscripts/pm3_help2json.py b/client/pyscripts/pm3_help2json.py index 8099b5d7c..34faedec5 100755 --- a/client/pyscripts/pm3_help2json.py +++ b/client/pyscripts/pm3_help2json.py @@ -62,21 +62,19 @@ def build_arg_parser(): def build_help_regex(): - """The regex uses to parse the full text output of help data from the pm3 client.""" - # Reads the divider followed by the command itself re_command = r'-{87}\n(?P.+)\n' # Reads if the command is available offline re_offline = r'available offline: (?Pyes|no)\n+' # Reads the description lines - re_description = r'(?P(?:.+\n)+)\n+' + re_description = r'(?P\n[\s\S]*?(?=usage:))' # Reads the usage string re_usage = r'(?:usage:\n(?P(?:.+\n)+)\n+)?' # Reads the options and there individual descriptions re_options = r'(?:options:\n(?P(?:.+\n)+)\n+)?' # Reads the notes and examples - re_notes = r'(?:examples\/notes:\n(?P(?:.+\n)+)\n+)?' + re_notes = r'(?:examples\/notes:\n(?P[\s\S]*?(?=(===|---|\n\n))))' # Combine them into a single regex object - re_full = re.compile(re_command+re_offline+re_description+re_usage+re_options+re_notes, re.MULTILINE); + re_full = re.compile(re_command+re_offline+re_description+re_usage+re_options+re_notes, re.MULTILINE) return re_full diff --git a/doc/commands.json b/doc/commands.json index 8d4185c52..6523703da 100644 --- a/doc/commands.json +++ b/doc/commands.json @@ -95,14 +95,6 @@ ], "usage": "analyse freq [-h] [-F ] [-L ] [-C ]" }, - "analyse help": { - "command": "analyse help", - "description": "help This help lcr Generate final byte for XOR LRC crc Stub method for CRC evaluations chksum Checksum with adding, masking and one's complement dates Look for datestamps in a given array of bytes lfsr LFSR tests a num bits test nuid create NUID from 7byte UID demodbuff Load binary string to DemodBuffer freq Calc wave lengths foo muxer units convert ETU <> US <> SSP_CLK (3.39MHz)", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "analyse lcr": { "command": "analyse lcr", "description": "Specifying the bytes of a UID with a known LRC will find the last byte value needed to generate that LRC with a rolling XOR. All bytes should be specified in HEX.", @@ -403,14 +395,6 @@ ], "usage": "data grid [-h] [-x ] [-y ]" }, - "data help": { - "command": "data help", - "description": "help This help ----------- ------------------------- Modulation------------------------- biphaserawdecode Biphase decode bin stream in DemodBuffer detectclock Detect ASK, FSK, NRZ, PSK clock rate of wave in GraphBuffer fsktonrz Convert fsk2 to nrz wave for alternate fsk demodulating (for weak fsk) manrawdecode Manchester decode binary stream in DemodBuffer modulation Identify LF signal for clock and modulation rawdemod Demodulate the data in the GraphBuffer and output binary ----------- ------------------------- Graph------------------------- askedgedetect Adjust Graph for manual ASK demod using the length of sample differences to detect the edge of a wave autocorr Autocorrelation over window dirthreshold Max rising higher up-thres/ Min falling lower down-thres, keep rest as prev. decimate Decimate samples undecimate Un-decimate samples hide Hide graph window hpf Remove DC offset from trace iir Apply IIR buttersworth filter on plot data grid overlay grid on graph window ltrim Trim samples from left of trace mtrim Trim out samples from the specified start to the specified stop norm Normalize max/min to +/-128 plot Show graph window rtrim Trim samples from right of trace setgraphmarkers Set blue and orange marker in graph window shiftgraphzero Shift 0 for Graphed wave + or - shift value timescale Set a timescale to get a differential reading between the yellow and purple markers as time duration zerocrossings Count time between zero-crossings convertbitstream Convert GraphBuffer's 0/1 values to 127 / -127 getbitstream Convert GraphBuffer's >=1 values to 1 and <1 to 0 ----------- ------------------------- General------------------------- asn1 asn1 decoder bin2hex Converts binary to hexadecimal clear Clears bigbuf on deviceside and graph window diff diff of input files hex2bin Converts hexadecimal to binary load Load contents of file into graph window num Converts dec/hex/bin print Print the data in the DemodBuffer save Save signal trace data (from graph window) setdebugmode Set Debugging Level on client side", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "data hex2bin": { "command": "data hex2bin", "description": "This function converts hexadecimal to binary. It will ignore all non-hexadecimal characters but stop reading on whitespace", @@ -853,14 +837,6 @@ ], "usage": "emv gpo [-hkpmatw] []..." }, - "emv help": { - "command": "emv help", - "description": "help This help test Crypto logic test list List ISO7816 history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "emv intauth": { "command": "emv intauth", "description": "Generate Internal Authenticate command. Usually needs 4-byte random number. It returns data in TLV format . Needs a EMV applet to be selected and GPO to be executed.", @@ -1046,14 +1022,6 @@ ], "usage": "quit [-h]" }, - "help": { - "command": "help", - "description": "help Use ` help` for details of a command prefs { Edit client/device preferences... } -------- ----------------------- Technology ----------------------- analyse { Analyse utils... } data { Plot window / data buffer manipulation... } emv { EMV ISO-14443 / ISO-7816... } hf { High frequency commands... } hw { Hardware commands... } lf { Low frequency commands... } nfc { NFC commands... } piv { PIV commands... } reveng { CRC calculations from RevEng software... } smart { Smart card ISO-7816 commands... } script { Scripting commands... } trace { Trace manipulation... } wiegand { Wiegand format manipulation... } -------- ----------------------- General ----------------------- clear Clear screen hints Turn hints on / off msleep Add a pause in milliseconds rem Add a text line in log file quit exit Exit program", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf 14a antifuzz": { "command": "hf 14a antifuzz", "description": "Tries to fuzz the ISO14443a anticollision phase", @@ -1130,21 +1098,18 @@ ], "usage": "hf 14a chaining [-h10]" }, - "hf 14a config": { - "command": "hf 14a config", - "description": "--------------------------------------------------------------------------------------- hf 14a cuids available offline: no", - "notes": [], + "hf 14a cuids": { + "command": "hf 14a cuids", + "description": "Collect n>0 ISO14443-a UIDs in one go", + "notes": [ + "hf 14a cuids -n 5 -> Collect 5 UIDs" + ], "offline": false, - "options": [], - "usage": "" - }, - "hf 14a help": { - "command": "hf 14a help", - "description": "----------- ----------------------- General ----------------------- help This help list List ISO 14443-a history", - "notes": [], - "offline": true, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-n, --num Number of UIDs to collect" + ], + "usage": "hf 14a cuids [-h] [-n ]" }, "hf 14a info": { "command": "hf 14a info", @@ -1358,14 +1323,6 @@ ], "usage": "hf 14b dump [-h] [-f ] [--ns]" }, - "hf 14b help": { - "command": "hf 14b help", - "description": "help This help list List ISO-14443-B history view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf 14b info": { "command": "hf 14b info", "description": "Tag information for ISO/IEC 14443 type B based tags", @@ -1627,14 +1584,6 @@ ], "usage": "hf 15 findafi [-h]" }, - "hf 15 help": { - "command": "hf 15 help", - "description": "----------- --------------------- General --------------------- help This help list List ISO-15693 history demod Demodulate ISO-15693 from tag", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf 15 info": { "command": "hf 15 info", "description": "Uses the optional command `get_systeminfo` 0x2B to try and extract information", @@ -2125,14 +2074,6 @@ ], "usage": "hf cipurse formatall [-hav] [-n ] [-k ] [--sreq ] [--sresp ] [--no-auth]" }, - "hf cipurse help": { - "command": "hf cipurse help", - "description": "help This help. test Regression tests", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf cipurse info": { "command": "hf cipurse info", "description": "Get info from CIPURSE tags", @@ -2304,14 +2245,6 @@ ], "usage": "hf emrtd dump [-h] [-n ] [-d ] [-e ] [-m <[0-9A-Z<]>] [--dir ]" }, - "hf emrtd help": { - "command": "hf emrtd help", - "description": "help This help info Display info about an eMRTD list List ISO 14443A/7816 history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf emrtd info": { "command": "hf emrtd info", "description": "Display info about an eMRTD", @@ -2369,14 +2302,6 @@ ], "usage": "hf epa cnonces [-h] --size --num -d " }, - "hf epa help": { - "command": "hf epa help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf epa replay": { "command": "hf epa replay", "description": "Perform PACE protocol by replaying given APDUs", @@ -2448,14 +2373,6 @@ ], "usage": "hf felica auth2 [-hv] [-i ] [-c ] [-k ]" }, - "hf felica help": { - "command": "hf felica help", - "description": "help This help ----------- ----------------------- General ----------------------- list List ISO 18092/FeliCa history ----------- ----------------------- FeliCa Standard ----------------------- ----------- ----------------------- FeliCa Light -----------------------", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf felica info": { "command": "hf felica info", "description": "Reader for FeliCa based tags", @@ -2536,11 +2453,25 @@ }, "hf felica rdbl": { "command": "hf felica rdbl", - "description": "Use this command to read block data from authentication-not-required Service.", - "notes": [], + "description": "Use this command to read block data from authentication-not-required Service. - Mode shall be Mode0. - Successful == block data - Unsuccessful == Status Flag1 and Flag2", + "notes": [ + "hf felica rdbl --sn 01 --scl 8B00 --bn 01 --ble 8000", + "hf felica rdbl --sn 01 --scl 4B18 --bn 01 --ble 8000 -b", + "hf felica rdbl -i 01100910c11bc407 --sn 01 --scl 8B00 --bn 01 --ble 8000" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-b get all block list elements 00 -> FF", + "-i set custom IDm", + "-l, --long use 3 byte block list element block number", + "--sn number of service", + "--scl service code list", + "--bn number of block", + "--ble block list element (def 2|3 bytes)", + "-v, --verbose verbose output" + ], + "usage": "hf felica rdbl [-hblv] [-i ] [--sn ] [--scl ] [--bn ] [--ble ]" }, "hf felica reader": { "command": "hf felica reader", @@ -2664,11 +2595,23 @@ }, "hf felica wrbl": { "command": "hf felica wrbl", - "description": "Use this command to write block data to authentication-not-required Service.", - "notes": [], + "description": "Use this command to write block data to authentication-not-required Service. - Mode shall be Mode0. - Un-/Ssuccessful == Status Flag1 and Flag2", + "notes": [ + "hf felica wrbl --sn 01 --scl CB10 --bn 01 --ble 8001 -d 0102030405060708090A0B0C0D0E0F10", + "hf felica wrbl -i 01100910c11bc407 --sn 01 --scl CB10 --bn 01 --ble 8001 -d 0102030405060708090A0B0C0D0E0F10" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-d, --data data, 16 hex bytes", + "-i set custom IDm", + "--sn number of service", + "--scl service code list", + "--bn number of block", + "--ble block list element (def 2|3 bytes)", + "-v, --verbose verbose output" + ], + "usage": "hf felica wrbl [-hv] [-d ] [-i ] [--sn ] [--scl ] [--bn ] [--ble ]" }, "hf fido assert": { "command": "hf fido assert", @@ -2716,14 +2659,6 @@ ], "usage": "hf fido auth [-havuc] default mode: [-f ] [-k ] [--kh ] [--cp ] [--ap ] [--cpx ] [--apx ]" }, - "hf fido help": { - "command": "hf fido help", - "description": "help This help. list List ISO 14443A history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf fido info": { "command": "hf fido info", "description": "Get info from Fido tags", @@ -2811,14 +2746,6 @@ ], "usage": "hf fudan dump [-h] [-f ]" }, - "hf fudan help": { - "command": "hf fudan help", - "description": "help This help view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf fudan rdbl": { "command": "hf fudan rdbl", "description": "Read fudan block", @@ -2953,14 +2880,6 @@ ], "usage": "hf gallagher diversify [-h] --aid [--keynum ] [--uid ] [--sitekey ] [--apdu]" }, - "hf gallagher help": { - "command": "hf gallagher help", - "description": "help This help diversifykey Diversify Gallagher key decode Decode Gallagher credential block", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf gallagher reader": { "command": "hf gallagher reader", "description": "Read a Gallagher DESFire tag from the Card Application Directory, CAD Specify site key is required if using non-default key", @@ -2979,14 +2898,6 @@ ], "usage": "hf gallagher reader [-h@v] [--aid ] [--sitekey ] [--apdu]" }, - "hf help": { - "command": "hf help", - "description": "-------- ----------------------- High Frequency ----------------------- 14a { ISO14443A RFIDs... } 14b { ISO14443B RFIDs... } 15 { ISO15693 RFIDs... } cipurse { Cipurse transport Cards... } epa { German Identification Card... } emrtd { Machine Readable Travel Document... } felica { ISO18092 / FeliCa RFIDs... } fido { FIDO and FIDO2 authenticators... } fudan { Fudan RFIDs... } gallagher { Gallagher DESFire RFIDs... } ksx6924 { KS X 6924 (T-Money, Snapper+) RFIDs } jooki { Jooki RFIDs... } iclass { ICLASS RFIDs... } legic { LEGIC RFIDs... } lto { LTO Cartridge Memory RFIDs... } mf { MIFARE RFIDs... } mfp { MIFARE Plus RFIDs... } mfu { MIFARE Ultralight RFIDs... } mfdes { MIFARE Desfire RFIDs... } ntag424 { NXP NTAG 4242 DNA RFIDs... } seos { SEOS RFIDs... } st25ta { ST25TA RFIDs... } tesla { TESLA Cards... } texkom { Texkom RFIDs... } thinfilm { Thinfilm RFIDs... } topaz { TOPAZ (NFC Type 1) RFIDs... } xerox { Fuji/Xerox cartridge RFIDs... } waveshare { Waveshare NFC ePaper... } ----------- --------------------- General --------------------- help This help list List protocol data in trace buffer search Search for known HF tags", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf iclass calcnewkey": { "command": "hf iclass calcnewkey", "description": "Calculate new keys for updating (blocks 3 & 4)", @@ -3048,11 +2959,23 @@ }, "hf iclass decrypt": { "command": "hf iclass decrypt", - "description": "3DES decrypt data This is a naive implementation, it tries to decrypt every block after block 6. Correct behaviour would be to decrypt only the application areas where the key is valid, which is defined by the configuration block.", - "notes": [], + "description": "3DES decrypt data This is a naive implementation, it tries to decrypt every block after block 6. Correct behaviour would be to decrypt only the application areas where the key is valid, which is defined by the configuration block. OBS! In order to use this function, the file `iclass_decryptionkey.bin` must reside in the resources directory. The file should be 16 bytes binary data or... make sure your cardhelper is placed in the sim module", + "notes": [ + "hf iclass decrypt -f hf-iclass-AA162D30F8FF12F1-dump.bin", + "hf iclass decrypt -f hf-iclass-AA162D30F8FF12F1-dump.bin -k 000102030405060708090a0b0c0d0e0f", + "hf iclass decrypt -d 1122334455667788 -k 000102030405060708090a0b0c0d0e0f" + ], "offline": true, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-f, --file filename of dump file (bin/eml/json)", + "-d, --data 3DES encrypted data", + "-k, --key 3DES transport key", + "-v, --verbose verbose output", + "--d6 decode as block 6", + "-z, --dense dense dump output style" + ], + "usage": "hf iclass decrypt [-hvz] [-f ] [-d ] [-k ] [--d6]" }, "hf iclass dump": { "command": "hf iclass dump", @@ -3170,14 +3093,6 @@ ], "usage": "hf iclass eview [-hvz] [-s <256|2048>]" }, - "hf iclass help": { - "command": "hf iclass help", - "description": "----------- --------------------- operations --------------------- help This help info Tag information list List iclass history ----------- --------------------- recovery --------------------- loclass Use loclass to perform bruteforce reader attack lookup Uses authentication trace to check for key in dictionary file ----------- --------------------- simulation --------------------- ----------- --------------------- utils --------------------- configcard Reader configuration card calcnewkey Calc diversified keys (blocks 3 & 4) to write new keys encode Encode binary wiegand to block 7 encrypt Encrypt given block data decrypt Decrypt given block data or tag dump file managekeys Manage keys to use with iclass commands permutekey Permute function from 'heart of darkness' paper view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf iclass info": { "command": "hf iclass info", "description": "Act as a iCLASS reader. Reads / fingerprints a iCLASS tag.", @@ -3483,14 +3398,6 @@ ], "usage": "hf jooki encode [-hrtv] [-u ] [--dragon] [--fox] [--ghost] [--knight] [--whale] [--blackdragon] [--blackfox] [--blackknight] [--blackwhale] [--whitedragon] [--whitefox] [--whiteknight] [--whitewhale] [--tid ] [--fid ]" }, - "hf jooki help": { - "command": "hf jooki help", - "description": "help This help decode Decode Jooki token encode Encode Jooki token", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf jooki sim": { "command": "hf jooki sim", "description": "Simulate a Jooki token. Either `hf mfu eload` before or use `-d` param", @@ -3519,14 +3426,6 @@ ], "usage": "hf ksx6924 balance [-hka]" }, - "hf ksx6924 help": { - "command": "hf ksx6924 help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf ksx6924 info": { "command": "hf ksx6924 info", "description": "Get info about a KS X 6924 transit card. This application is used by T-Money (South Korea) and Snapper+ (Wellington, New Zealand).", @@ -3676,14 +3575,6 @@ ], "usage": "hf legic eview [-h] [--22] [--256] [--1024]" }, - "hf legic help": { - "command": "hf legic help", - "description": "----------- --------------------- operations --------------------- help This help list List LEGIC history ----------- --------------------- simulation --------------------- ----------- --------------------- utils --------------------- crc Calculate Legic CRC over given bytes view Display deobfuscated and decoded content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf legic info": { "command": "hf legic info", "description": "Gets information from a LEGIC Prime tag like systemarea, user areas, etc", @@ -3852,14 +3743,6 @@ ], "usage": "hf lto dump [-h] [-f ]" }, - "hf lto help": { - "command": "hf lto help", - "description": "help This help list List LTO-CM history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf lto info": { "command": "hf lto info", "description": "Get info from LTO tags", @@ -4450,19 +4333,32 @@ }, "hf mf gen3blk": { "command": "hf mf gen3blk", - "description": "Overwrite full manufacturer block for magic Gen3 card - You can specify part of manufacturer block as 4/7-bytes for UID change only", - "notes": [], + "description": "Overwrite full manufacturer block for magic Gen3 card - You can specify part of manufacturer block as 4/7-bytes for UID change only NOTE: BCC, SAK, ATQA will be calculated automatically", + "notes": [ + "hf mf gen3blk -> print current data", + "hf mf gen3blk -d 01020304 -> set 4 byte uid", + "hf mf gen3blk -d 01020304050607 -> set 7 byte uid", + "hf mf gen3blk -d 01020304FFFFFFFF0102030405060708" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-d, --data manufacturer block data up to 16 hex bytes" + ], + "usage": "hf mf gen3blk [-h] [-d ]" }, "hf mf gen3freeze": { "command": "hf mf gen3freeze", - "description": "Perma lock further UID changes. No more UID changes available after operation completed", - "notes": [], + "description": "Perma lock further UID changes. No more UID changes available after operation completed Note: operation is ! irreversible !", + "notes": [ + "hf mf gen3freeze -y" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-y, --yes confirm UID lock operation" + ], + "usage": "hf mf gen3freeze -y[h]" }, "hf mf gen3uid": { "command": "hf mf gen3uid", @@ -4615,14 +4511,6 @@ ], "usage": "hf mf hardnested [-habrstw] [-k ] [--blk ] [--tblk ] [--ta] [--tb] [--tk ] [-u ] [-f ] [--in] [--im] [--is] [--ia] [--i2] [--i5]" }, - "hf mf help": { - "command": "hf mf help", - "description": "help This help list List MIFARE history hardnested Nested attack for hardened MIFARE Classic cards decrypt [nt] [ar_enc] [at_enc] [data] - to decrypt sniff or trace acl Decode and print MIFARE Classic access rights bytes mad Checks and prints MAD value Value blocks view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf mf list": { "command": "hf mf list", "description": "Alias of `trace list -t mf` 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", @@ -4680,11 +4568,22 @@ }, "hf mf ndefformat": { "command": "hf mf ndefformat", - "description": "format MIFARE Classic Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write.", - "notes": [], + "description": "format MIFARE Classic Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write. If not, it will try finding a key file based on your UID. ie, if you ran autopwn before", + "notes": [ + "hf mf ndefformat", + "hf mf ndefformat --1k -> MIFARE Classic 1k", + "hf mf ndefformat --keys hf-mf-01020304-key.bin -> MIFARE 1k with keys from specified file" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-k, --keys filename of keys", + "--mini MIFARE Classic Mini / S20", + "--1k MIFARE Classic 1k / S50 (def)", + "--2k MIFARE Classic/Plus 2k", + "--4k MIFARE Classic 4k / S70" + ], + "usage": "hf mf ndefformat [-h] [-k ] [--mini] [--1k] [--2k] [--4k]" }, "hf mf ndefread": { "command": "hf mf ndefread", @@ -4820,11 +4719,27 @@ }, "hf mf restore": { "command": "hf mf restore", - "description": "Restore MIFARE Classic dump file to tag.", - "notes": [], + "description": "Restore MIFARE Classic dump file to tag. The key file and dump file will program the card sector trailers. By default we authenticate to card with key 0xFFFFFFFFFFFF. If access rights in dump file is all zeros, it will be replaced with default values `--uid` param is used for filename templates `hf-mf--dump.bin` and `hf-mf--key.bin. if not specified, it will read the card uid instead. `--ka` param you can indicate that the key file should be used for authentication instead. if so we also try both B/A keys `--force` param is used to override warnings and allow bad ACL block writes. if not specified, it will skip blocks with bad ACL.", + "notes": [ + "hf mf restore", + "hf mf restore --1k --uid 04010203", + "hf mf restore --1k --uid 04010203 -k hf-mf-AABBCCDD-key.bin", + "hf mf restore --4k" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "--mini MIFARE Classic Mini / S20", + "--1k MIFARE Classic 1k / S50 (def)", + "--2k MIFARE Classic/Plus 2k", + "--4k MIFARE Classic 4k / S70", + "-u, --uid uid, (4|7|10 hex bytes)", + "-f, --file specify dump filename (bin/eml/json)", + "-k, --kfn key filename", + "--ka use specified keyfile to authenticate", + "--force override warnings" + ], + "usage": "hf mf restore [-h] [--mini] [--1k] [--2k] [--4k] [-u ] [-f ] [-k ] [--ka] [--force]" }, "hf mf setmod": { "command": "hf mf setmod", @@ -5796,14 +5711,6 @@ ], "usage": "hf mfdes getuid [-hav] [-n ] [-t ] [-k ] [--kdf ] [-i ] [-m ] [-c ] [--schann ] [--aid ] [--isoid ]" }, - "hf mfdes help": { - "command": "hf mfdes help", - "description": "help This help list List DESFire (ISO 14443A) history test Regression crypto tests", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf mfdes info": { "command": "hf mfdes info", "description": "Get info from MIFARE DESfire tags", @@ -6202,14 +6109,6 @@ ], "usage": "hf mfp dump [-hv] [-f ] [-k ] [--ns]" }, - "hf mfp help": { - "command": "hf mfp help", - "description": "help This help list List MIFARE Plus history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf mfp info": { "command": "hf mfp info", "description": "Get info from MIFARE Plus tags", @@ -6279,11 +6178,17 @@ }, "hf mfp ndefformat": { "command": "hf mfp ndefformat", - "description": "format MIFARE Plus Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write.", - "notes": [], + "description": "format MIFARE Plus Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write. If not, it will try finding a key file based on your UID. ie, if you ran autopwn before", + "notes": [ + "hf mfp ndefformat", + "hf mfp ndefformat --keys hf-mf-01020304-key.bin -> with keys from specified file" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-k, --keys filename of keys" + ], + "usage": "hf mfp ndefformat [-h] [-k ]" }, "hf mfp ndefread": { "command": "hf mfp ndefread", @@ -6477,14 +6382,6 @@ ], "usage": "hf mfu eview [-h] [-e ]" }, - "hf mfu help": { - "command": "hf mfu help", - "description": "help This help keygen Generate 3DES MIFARE diversified keys pwdgen Generate pwd from known algos view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf mfu info": { "command": "hf mfu info", "description": "Get info about MIFARE Ultralight Family styled tag. Sometimes the tags are locked down, and you may need a key to be able to read the information", @@ -6708,14 +6605,6 @@ ], "usage": "hf mfu wrbl [-hl] [-k ] -b -d [--force]" }, - "hf ntag424 help": { - "command": "hf ntag424 help", - "description": "help This help view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf ntag424 info": { "command": "hf ntag424 info", "description": "Get info about NXP NTAG424 DNA Family styled tag.", @@ -6780,14 +6669,6 @@ ], "usage": "hf search [-hv]" }, - "hf seos help": { - "command": "hf seos help", - "description": "help This help list List SEOS history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf seos info": { "command": "hf seos info", "description": "Get info from SEOS tags", @@ -6838,14 +6719,6 @@ ], "usage": "hf sniff [-h] [--sp ] [--st ] [--smode [none|drop|min|max|avg]] [--sratio ]" }, - "hf st25ta help": { - "command": "hf st25ta help", - "description": "help This help list List ISO 14443A/7816 history ndefread read NDEF file on tag", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf st25ta info": { "command": "hf st25ta info", "description": "Get info about ST25TA tag", @@ -6943,14 +6816,6 @@ ], "usage": "hf st25ta sim [-h] -u " }, - "hf tesla help": { - "command": "hf tesla help", - "description": "help This help list List ISO 14443A/7816 history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf tesla info": { "command": "hf tesla info", "description": "Get info about TESLA Key tag", @@ -6984,14 +6849,6 @@ ], "usage": "hf tesla list [-h1crux] [--frame] [-f ]" }, - "hf texkom help": { - "command": "hf texkom help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf texkom reader": { "command": "hf texkom reader", "description": "Read a texkom tag", @@ -7029,14 +6886,6 @@ ], "usage": "hf texkom sim [-hvt] [--raw ] [--id ] [--timeout ]" }, - "hf thinfilm help": { - "command": "hf thinfilm help", - "description": "help This help list List NFC Barcode / Thinfilm history - not correct", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf thinfilm info": { "command": "hf thinfilm info", "description": "Get info from Thinfilm tags", @@ -7098,14 +6947,6 @@ ], "usage": "hf topaz dump [-h] [-f ] [--ns]" }, - "hf topaz help": { - "command": "hf topaz help", - "description": "help This help list List Topaz history view Display content from tag dump file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf topaz info": { "command": "hf topaz info", "description": "Get info from Topaz tags", @@ -7250,14 +7091,6 @@ ], "usage": "hf tune [-h] [-n ] [--bar] [--mix] [--value]" }, - "hf waveshare help": { - "command": "hf waveshare help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf waveshare loadbmp": { "command": "hf waveshare loadbmp", "description": "Load BMP file to Waveshare NFC ePaper.", @@ -7294,14 +7127,6 @@ ], "usage": "hf xerox dump [-hd] [-f ]" }, - "hf xerox help": { - "command": "hf xerox help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hf xerox info": { "command": "hf xerox info", "description": "Tag information for ISO/IEC 14443 type B / XEROX based tags", @@ -7416,14 +7241,6 @@ ], "usage": "hw fpgaoff [-h]" }, - "hw help": { - "command": "hw help", - "description": "------------- ----------------------- Hardware ----------------------- help This help connect Connect Proxmark3 to serial port version Show version information about the client and the connected Proxmark3, if any", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "hw lcd": { "command": "hw lcd", "description": "Send command/data to LCD", @@ -7649,14 +7466,6 @@ ], "usage": "lf awid demod [-h]" }, - "lf awid help": { - "command": "lf awid help", - "description": "help this help demod demodulate an AWID FSK tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf awid reader": { "command": "lf awid reader", "description": "read a AWID Prox tag", @@ -7725,11 +7534,29 @@ }, "lf config": { "command": "lf config", - "description": "Get/Set config for LF sampling, bit/sample, decimation, frequency These changes are temporary, will be reset after a power cycle.", - "notes": [], + "description": "Get/Set config for LF sampling, bit/sample, decimation, frequency These changes are temporary, will be reset after a power cycle. - use `lf read` performs a read (active field) - use `lf sniff` performs a sniff (no active field)", + "notes": [ + "lf config -> shows current config", + "lf config -b 8 --125 -> samples at 125 kHz, 8 bps", + "lf config -b 4 --134 --dec 3 -> samples at 134 kHz, averages three samples into one, stored with a resolution of 4 bits per sample", + "lf config --trig 20 -s 10000 -> trigger sampling when above 20, skip 10 000 first samples after triggered", + "lf config --reset -> reset back to default values" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "--125 125 kHz frequency", + "--134 134 kHz frequency", + "-a, --avg <0|1> averaging - if set, will average the stored sample value when decimating (default 1)", + "-b, --bps <1-8> sets resolution of bits per sample (default 8)", + "--dec <1-8> sets decimation. A value of N saves only 1 in N samples (default 1)", + "--divisor <19-255> Manually set freq divisor. 88 -> 134 kHz, 95 -> 125 kHz", + "-f, --freq <47-600> manually set frequency in kHz", + "-r, --reset reset values to defaults", + "-s, --skip sets a number of samples to skip before capture (default 0)", + "-t, --trig <0-128> sets trigger threshold. 0 means no threshold" + ], + "usage": "lf config [-hr] [--125] [--134] [-a <0|1>] [-b <1-8>] [--dec <1-8>] [--divisor <19-255>] [-f <47-600>] [-s ] [-t <0-128>]" }, "lf cotag demod": { "command": "lf cotag demod", @@ -7743,14 +7570,6 @@ ], "usage": "lf cotag demod [-h]" }, - "lf cotag help": { - "command": "lf cotag help", - "description": "help This help demod demodulate an COTAG tag", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf cotag reader": { "command": "lf cotag reader", "description": "read a COTAG tag, the current support for COTAG is limited.", @@ -7795,14 +7614,6 @@ ], "usage": "lf destron demod [-h]" }, - "lf destron help": { - "command": "lf destron help", - "description": "help This help demod demodulate an Destron tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf destron reader": { "command": "lf destron reader", "description": "read a Destron tag", @@ -7886,14 +7697,6 @@ ], "usage": "lf em 410x demod [-hia] [--clk ] [--err ] [--len ]" }, - "lf em 410x help": { - "command": "lf em 410x help", - "description": "help This help demod demodulate a EM410x tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf em 410x reader": { "command": "lf em 410x reader", "description": "read EM 410x tag", @@ -8020,14 +7823,6 @@ ], "usage": "lf em 4x05 dump [-h] [-p ] [-f ]" }, - "lf em 4x05 help": { - "command": "lf em 4x05 help", - "description": "help This help demod demodulate a EM4x05/EM4x69 tag from the GraphBuffer sniff Attempt to recover em4x05 commands from sample buffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf em 4x05 info": { "command": "lf em 4x05 info", "description": "Tag information EM4205/4305/4469//4569 tags. Tag must be on antenna.", @@ -8217,14 +8012,6 @@ ], "usage": "lf em 4x50 eview [-h]" }, - "lf em 4x50 help": { - "command": "lf em 4x50 help", - "description": "help This help ----------- --------------------- operations --------------------- ----------- --------------------- simulation ---------------------", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf em 4x50 info": { "command": "lf em 4x50 info", "description": "Tag information EM4x50.", @@ -8390,14 +8177,6 @@ ], "usage": "lf em 4x70 brute [-h] [--par] -b --rnd --frn [-s ]" }, - "lf em 4x70 help": { - "command": "lf em 4x70 help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf em 4x70 info": { "command": "lf em 4x70 info", "description": "Tag Information EM4x70 Tag variants include ID48 automotive transponder. ID48 does not use command parity (default). V4070 and EM4170 do require parity bit.", @@ -8472,14 +8251,6 @@ ], "usage": "lf em 4x70 writepin [-h] [--par] -p " }, - "lf em help": { - "command": "lf em help", - "description": "help This help 410x { EM 4102 commands... } 4x05 { EM 4205 / 4305 / 4369 / 4469 commands... } 4x50 { EM 4350 / 4450 commands... } 4x70 { EM 4070 / 4170 commands... }", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf fdxb clone": { "command": "lf fdxb clone", "description": "clone a FDX-B tag to a T55x7, Q5/T5555 or EM4305/4469 tag.", @@ -8513,14 +8284,6 @@ ], "usage": "lf fdxb demod [-h]" }, - "lf fdxb help": { - "command": "lf fdxb help", - "description": "help this help demod demodulate a FDX-B ISO11784/85 tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf fdxb reader": { "command": "lf fdxb reader", "description": "read a FDX-B animal tag Note that the continuous mode is less verbose", @@ -8585,14 +8348,6 @@ ], "usage": "lf gallagher demod [-h]" }, - "lf gallagher help": { - "command": "lf gallagher help", - "description": "help This help demod demodulate an GALLAGHER tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf gallagher reader": { "command": "lf gallagher reader", "description": "read a GALLAGHER tag", @@ -8658,14 +8413,6 @@ ], "usage": "lf gproxii demod [-h] [-r ]" }, - "lf gproxii help": { - "command": "lf gproxii help", - "description": "help this help demod demodulate a G Prox II tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf gproxii reader": { "command": "lf gproxii reader", "description": "read a Guardall tag", @@ -8695,14 +8442,6 @@ ], "usage": "lf gproxii sim [-h] --xor --fmt --fc --cn " }, - "lf help": { - "command": "lf help", - "description": "help This help ----------- -------------- Low Frequency -------------- awid { AWID RFIDs... } cotag { COTAG CHIPs... } destron { FDX-A Destron RFIDs... } em { EM CHIPs & RFIDs... } fdxb { FDX-B RFIDs... } gallagher { GALLAGHER RFIDs... } gproxii { Guardall Prox II RFIDs... } hid { HID Prox RFIDs... } hitag { Hitag CHIPs... } idteck { Idteck RFIDs... } indala { Indala RFIDs... } io { ioProx RFIDs... } jablotron { Jablotron RFIDs... } keri { KERI RFIDs... } motorola { Motorola RFIDs... } nedap { Nedap RFIDs... } nexwatch { NexWatch RFIDs... } noralsy { Noralsy RFIDs... } pac { PAC/Stanley RFIDs... } paradox { Paradox RFIDs... } pcf7931 { PCF7931 CHIPs... } presco { Presco RFIDs... } pyramid { Farpointe/Pyramid RFIDs... } securakey { Securakey RFIDs... } ti { TI CHIPs... } t55xx { T55xx CHIPs... } viking { Viking RFIDs... } visa2000 { Visa2000 RFIDs... } ----------- --------------------- General --------------------- search Read and Search for valid known tag", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf hid brute": { "command": "lf hid brute", "description": "Enables bruteforce of HID readers with specified facility code or card number. This is an attack against the reader. If the field being bruteforced is provided, it starts with it and goes up / down one step while maintaining other supplied values. If the field being bruteforced is not provided, it will iterate through the full range while maintaining other supplied values.", @@ -8767,14 +8506,6 @@ ], "usage": "lf hid demod [-h]" }, - "lf hid help": { - "command": "lf hid help", - "description": "help this help demod demodulate HID Prox tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf hid reader": { "command": "lf hid reader", "description": "read a HID Prox tag", @@ -8868,14 +8599,6 @@ ], "usage": "lf hitag eload [-h12sm] -f " }, - "lf hitag help": { - "command": "lf hitag help", - "description": "help This help list List Hitag trace history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf hitag info": { "command": "lf hitag info", "description": "Hitag2 tag information", @@ -9016,14 +8739,6 @@ ], "usage": "lf idteck demod [-h]" }, - "lf idteck help": { - "command": "lf idteck help", - "description": "help This help demod demodulate an Idteck tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf idteck reader": { "command": "lf idteck reader", "description": "read a Idteck tag", @@ -9088,11 +8803,26 @@ }, "lf indala clone": { "command": "lf indala clone", - "description": "clone Indala UID to T55x7 or Q5/T5555 tag using different known formats", - "notes": [], + "description": "clone Indala UID to T55x7 or Q5/T5555 tag using different known formats Warning, encoding with FC/CN doesn't always work", + "notes": [ + "lf indala clone --heden 888", + "lf indala clone --fc 123 --cn 1337", + "lf indala clone --fc 123 --cn 1337 --4041x", + "lf indala clone -r a0000000a0002021", + "lf indala clone -r 80000001b23523a6c2e31eba3cbee4afb3c6ad1fcf649393928c14e5" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-r, --raw raw bytes", + "--heden Card number for Heden 2L format", + "--fc Facility code (26 bit H10301 format)", + "--cn Card number (26 bit H10301 format)", + "--q5 Optional - specify writing to Q5/T5555 tag", + "--em Optional - specify writing to EM4305/4469 tag", + "--4041x Optional - specify Indala 4041X format, must use with fc and cn" + ], + "usage": "lf indala clone [-h] [-r ] [--heden ] [--fc ] [--cn ] [--q5] [--em] [--4041x]" }, "lf indala demod": { "command": "lf indala demod", @@ -9112,14 +8842,6 @@ ], "usage": "lf indala demod [-hi] [--clock ] [--maxerr ]" }, - "lf indala help": { - "command": "lf indala help", - "description": "help This help demod Demodulate an Indala tag (PSK1) from the GraphBuffer altdemod Alternative method to demodulate samples for Indala 64 bit UID (option '224' for 224 bit)", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf indala reader": { "command": "lf indala reader", "description": "read a Indala tag", @@ -9186,14 +8908,6 @@ ], "usage": "lf io demod [-h]" }, - "lf io help": { - "command": "lf io help", - "description": "help this help demod demodulate an ioProx tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf io reader": { "command": "lf io reader", "description": "read a ioProx tag", @@ -9263,14 +8977,6 @@ ], "usage": "lf jablotron demod [-h]" }, - "lf jablotron help": { - "command": "lf jablotron help", - "description": "help This help demod demodulate an Jablotron tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf jablotron reader": { "command": "lf jablotron reader", "description": "read a jablotron tag", @@ -9327,14 +9033,6 @@ ], "usage": "lf keri demod [-h]" }, - "lf keri help": { - "command": "lf keri help", - "description": "help This help demod demodulate an KERI tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf keri reader": { "command": "lf keri reader", "description": "read a keri tag", @@ -9390,14 +9088,6 @@ ], "usage": "lf motorola demod [-h]" }, - "lf motorola help": { - "command": "lf motorola help", - "description": "help This help demod demodulate an MOTOROLA tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf motorola reader": { "command": "lf motorola reader", "description": "read a Motorola tag", @@ -9453,14 +9143,6 @@ ], "usage": "lf nedap demod [-h]" }, - "lf nedap help": { - "command": "lf nedap help", - "description": "help This help demod demodulate Nedap tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf nedap reader": { "command": "lf nedap reader", "description": "read a Nedap tag", @@ -9527,14 +9209,6 @@ ], "usage": "lf nexwatch demod [-h]" }, - "lf nexwatch help": { - "command": "lf nexwatch help", - "description": "help This help demod demodulate a NexWatch tag (nexkey, quadrakey) from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf nexwatch reader": { "command": "lf nexwatch reader", "description": "read a Nexwatch tag", @@ -9601,14 +9275,6 @@ ], "usage": "lf noralsy demod [-h]" }, - "lf noralsy help": { - "command": "lf noralsy help", - "description": "help This help demod demodulate an Noralsy tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf noralsy reader": { "command": "lf noralsy reader", "description": "read a Noralsy tag", @@ -9668,14 +9334,6 @@ ], "usage": "lf pac demod [-h]" }, - "lf pac help": { - "command": "lf pac help", - "description": "help This help demod demodulate a PAC tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf pac reader": { "command": "lf pac reader", "description": "read a PAC/Stanley tag", @@ -9737,14 +9395,6 @@ ], "usage": "lf paradox demod [-h] [--old]" }, - "lf paradox help": { - "command": "lf paradox help", - "description": "help This help demod demodulate a Paradox FSK tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf paradox reader": { "command": "lf paradox reader", "description": "read a Paradox tag", @@ -9795,14 +9445,6 @@ ], "usage": "lf pcf7931 config [-hr] [-p ] [-d ] [--lw ] [--lp ]" }, - "lf pcf7931 help": { - "command": "lf pcf7931 help", - "description": "help This help config Configure the password, the tags initialization delay and time offsets (optional)", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf pcf7931 reader": { "command": "lf pcf7931 reader", "description": "read a PCF7931 tag", @@ -9861,14 +9503,6 @@ ], "usage": "lf presco demod [-h]" }, - "lf presco help": { - "command": "lf presco help", - "description": "help This help demod demodulate Presco tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf presco reader": { "command": "lf presco reader", "description": "read a presco tag", @@ -9928,14 +9562,6 @@ ], "usage": "lf pyramid demod [-h]" }, - "lf pyramid help": { - "command": "lf pyramid help", - "description": "help this help demod demodulate a Pyramid FSK tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf pyramid reader": { "command": "lf pyramid reader", "description": "read a Farpointe/Pyramid tag", @@ -10028,14 +9654,6 @@ ], "usage": "lf securakey demod [-h]" }, - "lf securakey help": { - "command": "lf securakey help", - "description": "help This help demod demodulate an Securakey tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf securakey reader": { "command": "lf securakey reader", "description": "read a Securakey tag", @@ -10114,11 +9732,27 @@ }, "lf simfsk": { "command": "lf simfsk", - "description": "Simulate FSK tag from DemodBuffer or input. There are about four FSK modulations to know of. FSK1 - where fc/8 = high and fc/5 = low FSK1a - is inverted FSK1, ie: fc/5 = high and fc/8 = low FSK2 - where fc/10 = high and fc/8 = low FSK2a - is inverted FSK2, ie: fc/10 = high and fc/8 = low", - "notes": [], + "description": "Simulate FSK tag from DemodBuffer or input. There are about four FSK modulations to know of. FSK1 - where fc/8 = high and fc/5 = low FSK1a - is inverted FSK1, ie: fc/5 = high and fc/8 = low FSK2 - where fc/10 = high and fc/8 = low FSK2a - is inverted FSK2, ie: fc/10 = high and fc/8 = low NOTE: if you set one clock manually set them all manually", + "notes": [ + "lf simfsk -c 40 --high 8 --low 5 -d 010203 -> FSK1 rf/40 data 010203", + "lf simfsk -c 40 --high 5 --low 8 -d 010203 -> FSK1a rf/40 data 010203", + "lf simfsk -c 64 --high 10 --low 8 -d 010203 -> FSK2 rf/64 data 010203", + "lf simfsk -c 64 --high 8 --low 10 -d 010203 -> FSK2a rf/64 data 010203", + "", + "lf simfsk -c 50 --high 10 --low 8 -d 1D5559555569A9A555A59569 -> simulate HID Prox tag manually", + "lf simfsk -c 50 --high 10 --low 8 --stt -d 011DB2487E8D811111111111 -> simulate AWID tag manually" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-c, --clk manually set clock - can autodetect if using DemodBuffer (default 64)", + "--low manually set larger Field Clock", + "--high manually set smaller Field Clock", + "--stt TBD! - STT to enable a gap between playback repetitions (default: no gap)", + "-d, --data data to sim - omit to use DemodBuffer", + "-v, --verbose verbose output" + ], + "usage": "lf simfsk [-hv] [-c ] [--low ] [--high ] [--stt] [-d ]" }, "lf simpsk": { "command": "lf simpsk", @@ -10144,19 +9778,38 @@ }, "lf sniff": { "command": "lf sniff", - "description": "Sniff low frequency signal. You need to configure the LF part on the Proxmark3 device manually. Usually a trigger and skip samples is a good thing to set before doing a low frequency sniff.", - "notes": [], + "description": "Sniff low frequency signal. You need to configure the LF part on the Proxmark3 device manually. Usually a trigger and skip samples is a good thing to set before doing a low frequency sniff. - use `lf config` to set parameters. - use `data plot` to look at sniff signal. - use `lf search -1` to see if signal can be automatic decoded", + "notes": [ + "lf sniff -v", + "lf sniff -s 3000 -@ -> oscilloscope style" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-s, --samples number of samples to collect", + "-v, --verbose verbose output", + "-@ continuous sniffing mode" + ], + "usage": "lf sniff [-hv@] [-s ]" }, "lf t55xx bruteforce": { "command": "lf t55xx bruteforce", - "description": "This command uses bruteforce to scan a number range. Try reading Page 0, block 7 before.", - "notes": [], + "description": "This command uses bruteforce to scan a number range. Try reading Page 0, block 7 before. WARNING this may brick non-password protected chips!", + "notes": [ + "lf t55xx bruteforce --r2 -s aaaaaa77 -e aaaaaa99" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-s, --start search start password (4 hex bytes)", + "-e, --end search end password (4 hex bytes)", + "--r0 downlink - fixed bit length", + "--r1 downlink - long leading reference", + "--r2 downlink - leading zero", + "--r3 downlink - 1 of 4 coding reference", + "--all try all downlink modes (def)" + ], + "usage": "lf t55xx bruteforce [-h] -s -e [--r0] [--r1] [--r2] [--r3] [--all]" }, "lf t55xx chk": { "command": "lf t55xx chk", @@ -10311,14 +9964,6 @@ ], "usage": "lf t55xx dump [-ho] [-f ] [-p ] [--ns] [--r0] [--r1] [--r2] [--r3]" }, - "lf t55xx help": { - "command": "lf t55xx help", - "description": "----------- ---------------------------- notice ----------------------------- Remember to run `lf t55xx detect` first whenever a new card is placed on the Proxmark3 or the config block changed. help This help ----------- --------------------- operations --------------------- config Set/Get T55XX configuration (modulation, inverted, offset, rate) detect Try detecting the tag modulation from reading the configuration block info Show T55x7 configuration data (page 0/ blk 0) trace Show T55x7 traceability data (page 1/ blk 0-1) ----------- --------------------- recovery --------------------- sniff Attempt to recover T55xx commands from sample buffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf t55xx info": { "command": "lf t55xx info", "description": "Show T55x7 configuration data (page 0/ blk 0) from reading the configuration block from tag. Use `-c` to specify a config block data to be used instead of reading tag.", @@ -10385,19 +10030,45 @@ }, "lf t55xx read": { "command": "lf t55xx read", - "description": "Read T55xx block data. This commands defaults to page 0.", - "notes": [], + "description": "Read T55xx block data. This commands defaults to page 0. * * * WARNING * * * Use of read with password on a tag not configured for a password can damage the tag * * * * * * * * * *", + "notes": [ + "lf t55xx read -b 0 -> read data from block 0", + "lf t55xx read -b 0 --pwd 01020304 -> read data from block 0, pwd 01020304", + "lf t55xx read -b 0 --pwd 01020304 -o -> read data from block 0, pwd 01020304, override" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-b, --blk <0-7> block number to read", + "-p, --pwd password (4 hex bytes)", + "-o, --override override safety check", + "--pg1 read page 1", + "--r0 downlink - fixed bit length (detected def)", + "--r1 downlink - long leading reference", + "--r2 downlink - leading zero", + "--r3 downlink - 1 of 4 coding reference" + ], + "usage": "lf t55xx read [-ho] -b <0-7> [-p ] [--pg1] [--r0] [--r1] [--r2] [--r3]" }, "lf t55xx recoverpw": { "command": "lf t55xx recoverpw", - "description": "This command uses a few tricks to try to recover mangled password. Try reading Page 0, block 7 before.", - "notes": [], + "description": "This command uses a few tricks to try to recover mangled password. Try reading Page 0, block 7 before. WARNING this may brick non-password protected chips!", + "notes": [ + "lf t55xx recoverpw", + "lf t55xx recoverpw -p 11223344", + "lf t55xx recoverpw -p 11223344 --r3" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-p, --pwd password (4 hex bytes)", + "--r0 downlink - fixed bit length", + "--r1 downlink - long leading reference", + "--r2 downlink - leading zero", + "--r3 downlink - 1 of 4 coding reference", + "--all try all downlink modes (def)" + ], + "usage": "lf t55xx recoverpw [-h] [-p ] [--r0] [--r1] [--r2] [--r3] [--all]" }, "lf t55xx resetread": { "command": "lf t55xx resetread", @@ -10553,14 +10224,6 @@ ], "usage": "lf ti demod [-h]" }, - "lf ti help": { - "command": "lf ti help", - "description": "help This help demod Demodulate raw bits for TI LF tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf ti reader": { "command": "lf ti reader", "description": "read a TI tag", @@ -10637,14 +10300,6 @@ ], "usage": "lf viking demod [-h]" }, - "lf viking help": { - "command": "lf viking help", - "description": "help This help demod demodulate a Viking tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf viking reader": { "command": "lf viking reader", "description": "read a Viking AM tag", @@ -10700,14 +10355,6 @@ ], "usage": "lf visa2000 demod [-h]" }, - "lf visa2000 help": { - "command": "lf visa2000 help", - "description": "help This help demod demodulate an VISA2000 tag from the GraphBuffer", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "lf visa2000 reader": { "command": "lf visa2000 reader", "description": "read a visa2000 tag", @@ -10766,14 +10413,6 @@ ], "usage": "mem dump [-hv] [-o ] [-l ] [-f ] [-c ]" }, - "mem help": { - "command": "mem help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "mem info": { "command": "mem info", "description": "Collect signature and verify it from flash memory", @@ -10853,14 +10492,6 @@ ], "usage": "mem spiffs dump [-he] -s [-d ]" }, - "mem spiffs help": { - "command": "mem spiffs help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "mem spiffs info": { "command": "mem spiffs info", "description": "Print file system info and usage statistics", @@ -11014,14 +10645,6 @@ ], "usage": "msleep [-h] [-t ]" }, - "nfc barcode help": { - "command": "nfc barcode help", - "description": "-------- ------------------ NFC Barcode -------------------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc barcode read": { "command": "nfc barcode read", "description": "Get info from Thinfilm tags", @@ -11065,21 +10688,24 @@ ], "usage": "nfc decode [-hv] [-d ] [-f ]" }, - "nfc help": { - "command": "nfc help", - "description": "-------- --------------------- NFC Tags -------------------- type1 { NFC Forum Tag Type 1... } type2 { NFC Forum Tag Type 2... } type4a { NFC Forum Tag Type 4 ISO14443A... } type4b { NFC Forum Tag Type 4 ISO14443B... } mf { NFC Type MIFARE Classic/Plus Tag... } barcode { NFC Barcode Tag... } -------- --------------------- General --------------------- help This help decode Decode NDEF records", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc mf cformat": { "command": "nfc mf cformat", - "description": "format MIFARE Classic Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write.", - "notes": [], + "description": "format MIFARE Classic Tag as a NFC tag with Data Exchange Format (NDEF) If no given, UID will be used as filename. It will try default keys and MAD keys to detect if tag is already formatted in order to write. If not, it will try finding a key file based on your UID. ie, if you ran autopwn before", + "notes": [ + "hf mf ndefformat", + "hf mf ndefformat --1k -> MIFARE Classic 1k", + "hf mf ndefformat --keys hf-mf-01020304-key.bin -> MIFARE 1k with keys from specified file" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help", + "-k, --keys filename of keys", + "--mini MIFARE Classic Mini / S20", + "--1k MIFARE Classic 1k / S50 (def)", + "--2k MIFARE Classic/Plus 2k", + "--4k MIFARE Classic 4k / S70" + ], + "usage": "hf mf ndefformat [-h] [-k ] [--mini] [--1k] [--2k] [--4k]" }, "nfc mf cread": { "command": "nfc mf cread", @@ -11123,14 +10749,6 @@ ], "usage": "hf mf ndefwrite [-hpv] [-d ] [-f ] [--mini] [--1k] [--2k] [--4k]" }, - "nfc mf help": { - "command": "nfc mf help", - "description": "-------- --------- NFC Type MIFARE Classic/Plus Tag -------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc mf pread": { "command": "nfc mf pread", "description": "Prints NFC Data Exchange Format (NDEF)", @@ -11151,14 +10769,6 @@ ], "usage": "hf mfp ndefread [-hvb] [--aid ] [-k ] [-f ]" }, - "nfc type1 help": { - "command": "nfc type1 help", - "description": "-------- -------------- NFC Forum Tag Type 1 --------------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc type1 read": { "command": "nfc type1 read", "description": "Get info from Topaz tags", @@ -11174,14 +10784,6 @@ ], "usage": "hf topaz info [-hv] [-f ]" }, - "nfc type2 help": { - "command": "nfc type2 help", - "description": "-------- -------------- NFC Forum Tag Type 2 --------------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc type2 read": { "command": "nfc type2 read", "description": "Prints NFC Data Exchange Format (NDEF)", @@ -11212,14 +10814,6 @@ ], "usage": "hf 14a ndefformat [-hv]" }, - "nfc type4a help": { - "command": "nfc type4a help", - "description": "-------- --------- NFC Forum Tag Type 4 ISO14443A ---------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc type4a read": { "command": "nfc type4a read", "description": "Read NFC Data Exchange Format (NDEF) file on Type 4 NDEF tag", @@ -11269,14 +10863,6 @@ ], "usage": "hf 14a ndefwrite [-hpv] [-d ] [-f ]" }, - "nfc type4b help": { - "command": "nfc type4b help", - "description": "-------- --------- NFC Forum Tag Type 4 ISO14443B ------------- -------- --------------------- General --------------------- help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "nfc type4b read": { "command": "nfc type4b read", "description": "Print NFC Data Exchange Format (NDEF)", @@ -11333,14 +10919,6 @@ ], "usage": "piv getdata [-hskatw] [--aid ] " }, - "piv help": { - "command": "piv help", - "description": "help This help list List ISO7816 history", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "piv list": { "command": "piv list", "description": "Alias of `trace list -t 7816` 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", @@ -11508,14 +11086,6 @@ ], "usage": "prefs get savepaths [-h]" }, - "prefs help": { - "command": "prefs help", - "description": "help This help get { Get a preference } set { Set a preference } show Show all preferences", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "prefs set barmode": { "command": "prefs set barmode", "description": "Set persistent preference of HF/LF tune command styled output in the client", @@ -11590,14 +11160,6 @@ ], "usage": "prefs set emoji [-h] [--alias] [--emoji] [--alttext] [--none]" }, - "prefs set help": { - "command": "prefs set help", - "description": "help This help barmode Set bar mode clientdebug Set client debug level clientdelay Set client execution delay color Set color support emoji Set emoji display hints Set hint display savepaths ... to be adjusted next ... output Set dump output style plotsliders Set plot slider display", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "prefs set hints": { "command": "prefs set hints", "description": "Set persistent preference of showing hint messages in the client", @@ -11695,13 +11257,17 @@ ], "usage": "rem [-h] []..." }, - "script help": { - "command": "script help", - "description": "This is a feature to run Lua/Cmd scripts. You can place scripts within the luascripts/cmdscripts folders. --------------------------------------------------------------------------------------- script list available offline: yes", - "notes": [], + "script list": { + "command": "script list", + "description": "List available Lua, Cmd and Python scripts", + "notes": [ + "script list" + ], "offline": true, - "options": [], - "usage": "" + "options": [ + "-h, --help This help" + ], + "usage": "script list [-h]" }, "script run": { "command": "script run", @@ -11730,14 +11296,6 @@ ], "usage": "smart brute [-ht]" }, - "smart help": { - "command": "smart help", - "description": "help This help list List ISO 7816 history upgrade Upgrade sim module firmware", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "smart info": { "command": "smart info", "description": "Extract more detailed information from smart card.", @@ -11822,14 +11380,6 @@ ], "usage": "smart setclock [-h] [--16mhz] [--8mhz] [--4mhz]" }, - "smart upgrade": { - "command": "smart upgrade", - "description": "[=] ------------------------------------------------------------------- [!] WARNING - sim module firmware upgrade [!] A dangerous command, do wrong and you could brick the sim module [=] -------------------------------------------------------------------", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "trace extract": { "command": "trace extract", "description": "Extracts protocol authentication challenges from trace buffer", @@ -11844,14 +11394,6 @@ ], "usage": "trace extract [-h1]" }, - "trace help": { - "command": "trace help", - "description": "help This help extract Extract authentication challenges found in trace list List protocol data in trace buffer load Load trace from file save Save trace buffer to file", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "trace list": { "command": "trace list", "description": "Annotate trace buffer with selected protocol data You can load a trace from file (see `trace load -h`) or it be downloaded from device by default", @@ -11924,11 +11466,15 @@ }, "usart btfactory": { "command": "usart btfactory", - "description": "Reset BT add-on to factory settings This requires 1) BTpower to be turned ON 2) BT add-on to NOT be connected => the add-on blue LED must blink", - "notes": [], + "description": "Reset BT add-on to factory settings This requires 1) BTpower to be turned ON 2) BT add-on to NOT be connected => the add-on blue LED must blink WARNING: process only if strictly needed!", + "notes": [ + "usart btfactory" + ], "offline": false, - "options": [], - "usage": "" + "options": [ + "-h, --help This help" + ], + "usage": "usart btfactory [-h]" }, "usart btpin": { "command": "usart btpin", @@ -11961,14 +11507,6 @@ ], "usage": "usart config [-hNEO] [-b ]" }, - "usart help": { - "command": "usart help", - "description": "help This help", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "usart rx": { "command": "usart rx", "description": "Receive string over USART. WARNING: it will have side-effects if used in USART HOST mode!", @@ -12070,14 +11608,6 @@ ], "usage": "wiegand encode [-h] [--fc ] --cn [--issue ] [--oem ] [-w ] [--pre]" }, - "wiegand help": { - "command": "wiegand help", - "description": "help This help list List available wiegand formats encode Encode to wiegand raw hex (currently for HID Prox) decode Convert raw hex to decoded wiegand format (currently for HID Prox)", - "notes": [], - "offline": true, - "options": [], - "usage": "" - }, "wiegand list": { "command": "wiegand list", "description": "List available wiegand formats", @@ -12092,8 +11622,8 @@ } }, "metadata": { - "commands_extracted": 759, + "commands_extracted": 675, "extracted_by": "PM3Help2JSON v1.00", - "extracted_on": "2023-06-25T20:42:06" + "extracted_on": "2023-06-27T13:20:13" } } \ No newline at end of file