diff --git a/client/src/pm3line_vocabulary.h b/client/src/pm3line_vocabulary.h index 50a6d5aa4..09bcd3ef5 100644 --- a/client/src/pm3line_vocabulary.h +++ b/client/src/pm3line_vocabulary.h @@ -183,6 +183,8 @@ const static vocabulary_t vocabulary[] = { { 0, "hf 14b tearoff" }, { 1, "hf 14b view" }, { 1, "hf 14b valid" }, + { 0, "hf 14b ctdump" }, + { 0, "hf 14b ctrdbl" }, { 0, "hf 14b setuid" }, { 1, "hf 15 help" }, { 1, "hf 15 list" }, @@ -225,20 +227,20 @@ const static vocabulary_t vocabulary[] = { { 0, "hf calypso probecmdcompat" }, { 1, "hf calypso list" }, { 1, "hf cipurse help" }, - { 0, "hf cipurse info" }, - { 0, "hf cipurse select" }, + { 1, "hf cipurse test" }, { 0, "hf cipurse auth" }, - { 0, "hf cipurse read" }, - { 0, "hf cipurse write" }, { 0, "hf cipurse aread" }, { 0, "hf cipurse awrite" }, - { 0, "hf cipurse formatall" }, { 0, "hf cipurse create" }, { 0, "hf cipurse delete" }, + { 0, "hf cipurse default" }, + { 0, "hf cipurse formatall" }, + { 0, "hf cipurse info" }, + { 0, "hf cipurse read" }, + { 0, "hf cipurse select" }, { 0, "hf cipurse updkey" }, { 0, "hf cipurse updakey" }, - { 0, "hf cipurse default" }, - { 1, "hf cipurse test" }, + { 0, "hf cipurse write" }, { 1, "hf epa help" }, { 0, "hf epa cnonces" }, { 0, "hf epa replay" }, @@ -318,13 +320,13 @@ const static vocabulary_t vocabulary[] = { { 1, "hf fudan view" }, { 0, "hf fudan wrbl" }, { 1, "hf gallagher help" }, - { 0, "hf gallagher reader" }, + { 1, "hf gallagher test" }, { 0, "hf gallagher clone" }, { 0, "hf gallagher delete" }, { 1, "hf gallagher diversifykey" }, { 1, "hf gallagher decode" }, { 1, "hf gallagher encode" }, - { 1, "hf gallagher test" }, + { 0, "hf gallagher reader" }, { 1, "hf gst help" }, { 1, "hf gst list" }, { 1, "hf gst test" }, @@ -526,6 +528,7 @@ const static vocabulary_t vocabulary[] = { { 0, "hf mfu eload" }, { 0, "hf mfu esave" }, { 0, "hf mfu eview" }, + { 0, "hf mfu esetblk" }, { 0, "hf mfu sim" }, { 0, "hf mfu setuid" }, { 0, "hf mfu amiibo" }, @@ -590,16 +593,16 @@ const static vocabulary_t vocabulary[] = { { 0, "hf ntag424 changefs" }, { 0, "hf ntag424 changekey" }, { 1, "hf saflok help" }, - { 0, "hf saflok read" }, - { 0, "hf saflok provision" }, + { 1, "hf saflok test" }, + { 0, "hf saflok cksum" }, { 1, "hf saflok encode" }, - { 1, "hf saflok decode" }, - { 1, "hf saflok modify" }, { 1, "hf saflok encrypt" }, + { 1, "hf saflok decode" }, { 1, "hf saflok decrypt" }, { 0, "hf saflok interrogate" }, - { 0, "hf saflok cksum" }, - { 1, "hf saflok selftest" }, + { 0, "hf saflok provision" }, + { 1, "hf saflok modify" }, + { 0, "hf saflok read" }, { 1, "hf seos help" }, { 1, "hf seos list" }, { 0, "hf seos sam" }, @@ -936,6 +939,7 @@ const static vocabulary_t vocabulary[] = { { 0, "mem load" }, { 0, "mem wipe" }, { 1, "mem spiffs help" }, + { 0, "mem spiffs test" }, { 0, "mem spiffs copy" }, { 0, "mem spiffs check" }, { 0, "mem spiffs dump" }, @@ -943,7 +947,6 @@ const static vocabulary_t vocabulary[] = { { 0, "mem spiffs mount" }, { 0, "mem spiffs remove" }, { 0, "mem spiffs rename" }, - { 0, "mem spiffs test" }, { 0, "mem spiffs tree" }, { 0, "mem spiffs unmount" }, { 0, "mem spiffs upload" }, diff --git a/doc/commands.json b/doc/commands.json index d5a87a64f..85a87a5a8 100644 --- a/doc/commands.json +++ b/doc/commands.json @@ -1503,6 +1503,35 @@ ], "usage": "hf 14b apdu [-hskte] [--decode] [-m ] [-l ] -d [--timeout ]" }, + "hf 14b ctdump": { + "command": "hf 14b ctdump", + "description": "Read and print ASK CTS / C-ticket memory blocks", + "notes": [ + "hf 14b ctdump", + "hf 14b ctdump -v" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-v, --verbose verbose output" + ], + "usage": "hf 14b ctdump [-hv]" + }, + "hf 14b ctrdbl": { + "command": "hf 14b ctrdbl", + "description": "Read an ASK CTS / C-ticket block", + "notes": [ + "hf 14b ctrdbl -b 6", + "hf 14b ctrdbl --block 15 -v" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-b, --block block number", + "-v, --verbose verbose output" + ], + "usage": "hf 14b ctrdbl [-hv] -b " + }, "hf 14b dump": { "command": "hf 14b dump", "description": "This command dumps the contents of a ISO-14443-B tag and save it to file Tries to autodetect cardtype, memory size defaults to SRI4K", @@ -2539,11 +2568,23 @@ }, "hf cipurse help": { "command": "hf cipurse help", - "description": "help This help. test Regression tests --------------------------------------------------------------------------------------- hf cipurse info available offline: no Get info from CIPURSE tags", + "description": "help This help. test Regression self tests --------------------------------------------------------------------------------------- hf cipurse test available offline: yes Regression tests", + "notes": [ + "hf cipurse test" + ], + "offline": true, + "options": [ + "-h, --help This help" + ], + "usage": "hf cipurse test [-h]" + }, + "hf cipurse info": { + "command": "hf cipurse info", + "description": "Get info from CIPURSE tags", "notes": [ "hf cipurse info" ], - "offline": true, + "offline": false, "options": [ "-h, --help This help" ], @@ -2595,18 +2636,6 @@ ], "usage": "hf cipurse select [-havt] [--aid ] [--fid ] [--mfd] [--chfid ]" }, - "hf cipurse test": { - "command": "hf cipurse test", - "description": "Regression tests", - "notes": [ - "hf cipurse test" - ], - "offline": true, - "options": [ - "-h, --help This help" - ], - "usage": "hf cipurse test [-h]" - }, "hf cipurse updakey": { "command": "hf cipurse updakey", "description": "Update key attributes. Factory default - 0x02. b0 - Update right - 1 self b1 - Change key and rights - 0 frozen b2 - Use as key encryption key - 1 blocked b8 - Key validity - 0 valid", @@ -4067,13 +4096,25 @@ }, "hf gallagher help": { "command": "hf gallagher help", - "description": "help This help diversifykey Diversify Gallagher key decode Decode Gallagher credential block encode Encode Gallagher credential block test Test the function of Gallagher Mifare Core --------------------------------------------------------------------------------------- hf gallagher reader available offline: no Read a Gallagher tag from the Card Application Directory, CAD Specify site key is required if using non-default key", + "description": "----------- ----------------------- General ----------------------- help This help test Test the function of Gallagher Mifare Core ----------- ----------------------- Operations ----------------------- diversifykey Diversify Gallagher key decode Decode Gallagher credential block encode Encode Gallagher credential block --------------------------------------------------------------------------------------- hf gallagher test available offline: yes Test the function of Gallagher Mifare Core", + "notes": [ + "hf gallagher test" + ], + "offline": true, + "options": [ + "-h, --help This help" + ], + "usage": "hf gallagher test [-h]" + }, + "hf gallagher reader": { + "command": "hf gallagher reader", + "description": "Read a Gallagher tag from the Card Application Directory, CAD Specify site key is required if using non-default key", "notes": [ "hf gallagher reader -@ -> DESFIRE(default): continuous reader mode", "hf gallagher reader -c -@ -> CLASSIC: continuous reader mode", "hf gallagher reader --aid 2081f4 --sitekey 00112233445566778899aabbccddeeff -> DESFIRE: skip CAD" ], - "offline": true, + "offline": false, "options": [ "-h, --help This help", "--aid Application ID to read (3 bytes). If specified, the CAD is not used", @@ -4085,18 +4126,6 @@ ], "usage": "hf gallagher reader [-h@vc] [--aid ] [--sitekey ] [--apdu]" }, - "hf gallagher test": { - "command": "hf gallagher test", - "description": "Test the function of Gallagher Mifare Core", - "notes": [ - "hf gallagher test" - ], - "offline": true, - "options": [ - "-h, --help This help" - ], - "usage": "hf gallagher test [-h]" - }, "hf gst help": { "command": "hf gst help", "description": "----------- ----------------------- General ----------------------- help This help list List ISO 14443A/7816 history test Perform self tests --------------------------------------------------------------------------------------- hf gst list available offline: yes 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", @@ -8695,9 +8724,9 @@ "offline": false, "options": [ "-h, --help This help", - "-v, --verbose Verbose output", "-a, --adr Address, 2 hex bytes", - "-d, --data Data, 16 hex bytes" + "-d, --data Data, 16 hex bytes", + "-v, --verbose Verbose output" ], "usage": "hf mfp wrp [-hv] -a [-d ]" }, @@ -8854,7 +8883,9 @@ "hf mfu dump -k AABBCCDD -> dump whole tag using pwd AABBCCDD", "hf mfu dump -p 10 -> start at page 10 and dump rest of blocks", "hf mfu dump -p 10 -q 2 -> start at page 10 and dump two blocks", - "hf mfu dump --key 00112233445566778899AABBCCDDEEFF" + "hf mfu dump --key 00112233445566778899AABBCCDDEEFF", + "", + "Note: Dumping a NTAG/UL tag to a UMC will likely result in incorrect PWD and PACK" ], "offline": false, "options": [ @@ -8902,6 +8933,21 @@ ], "usage": "hf mfu esave [-h] [-e ] [-f ]" }, + "hf mfu esetblk": { + "command": "hf mfu esetblk", + "description": "Set emulator memory page(s). One page = 4 bytes; pass multiple whole pages of data to set consecutive pages from --blk.", + "notes": [ + "hf mfu esetblk --blk 4 -d 04E10CDA", + "hf mfu esetblk --blk 4 -d 04E10CDA993C8048 -> sets pages 4-5" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-b, --blk page number to start at", + "-d, --data bytes to write, whole pages (multiple of 4 bytes)" + ], + "usage": "hf mfu esetblk [-h] -b [-d ]" + }, "hf mfu eview": { "command": "hf mfu eview", "description": "Displays emulator memory By default number of pages shown depends on defined tag type. You can override this with option --end.", @@ -9074,7 +9120,9 @@ "notes": [ "hf mfu restore -f myfile -s -> special write", "hf mfu restore -f myfile -k AABBCCDD -s -> special write, use key", - "hf mfu restore -f myfile -k AABBCCDD -ser -> special write, use key, write dump pwd, ..." + "hf mfu restore -f myfile -k AABBCCDD -ser -> special write, use key, write dump pwd, ...", + "", + "Note: Restoring a NTAG/UL dump to a UMC will likely result in incorrect PWD and PACK" ], "offline": false, "options": [ @@ -9445,15 +9493,15 @@ }, "hf saflok help": { "command": "hf saflok help", - "description": "help This help encode Encode Saflok card data decode Decode Saflok card data modify Modify Saflok card data encrypt Encrypt 17-byte decrypted block decrypt Decrypt 17-byte encrypted block selftest Run self-test --------------------------------------------------------------------------------------- hf saflok read available offline: no Read Saflok card (MIFARE Classic only)", + "description": "help This help -------- ------------- General --------------- test Perform self-test -------- ------------- Operations --------------- encode Encode Saflok card data encrypt Encrypt 17-byte decrypted block decode Decode Saflok card data decrypt Decrypt 17-byte encrypted block modify Modify Saflok card data --------------------------------------------------------------------------------------- hf saflok test available offline: yes Validate internal functionality of Saflok routines", "notes": [ - "hf saflok read" + "hf saflok test" ], "offline": true, "options": [ "-h, --help This help" ], - "usage": "hf saflok read [-h]" + "usage": "hf saflok test [-h]" }, "hf saflok interrogate": { "command": "hf saflok interrogate", @@ -9505,17 +9553,17 @@ ], "usage": "hf saflok provision [-h] -d data" }, - "hf saflok selftest": { - "command": "hf saflok selftest", - "description": "Validate internal functionality of Saflok routines", + "hf saflok read": { + "command": "hf saflok read", + "description": "Read Saflok card (MIFARE Classic only)", "notes": [ - "hf saflok selftest" + "hf saflok read" ], - "offline": true, + "offline": false, "options": [ "-h, --help This help" ], - "usage": "hf saflok selftest [-h]" + "usage": "hf saflok read [-h]" }, "hf search": { "command": "hf search", @@ -14173,7 +14221,7 @@ }, "mad help": { "command": "mad help", - "description": "help This help -------- --------------- MAD ----------------- -------- ------------- General --------------- decode Decode MAD byte array encode Encode MAD byte array from AID mappings test Run MAD regression tests --------------------------------------------------------------------------------------- mad read available offline: no Read application data from sectors matching a MAD AID", + "description": "-------- ------------- General --------------- help This help -------- --------------- MAD ----------------- -------- ------------- Operations --------------- decode Decode MAD byte array encode Encode MAD byte array from AID mappings test Perform MAD regression self-tests --------------------------------------------------------------------------------------- mad read available offline: no Read application data from sectors matching a MAD AID", "notes": [ "mad read --aid e103 -> read NDEF data", "mad read --aid e103 -k ffffffffffff -b -> Classic, key B", @@ -14340,6 +14388,20 @@ ], "usage": "mem spiffs check [-h]" }, + "mem spiffs copy": { + "command": "mem spiffs copy", + "description": "Copy a file to another (destructively) in SPIFFS file system", + "notes": [ + "mem spiffs copy -s aaa.bin -d aaa_cpy.bin" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-s, --src source file name", + "-d, --dest destination file name" + ], + "usage": "mem spiffs copy [-h] -s -d " + }, "mem spiffs dump": { "command": "mem spiffs dump", "description": "Dumps device SPIFFS file to a local file Size is handled by first sending a STAT command against file to verify existence", @@ -14359,17 +14421,15 @@ }, "mem spiffs help": { "command": "mem spiffs help", - "description": "help This help --------------------------------------------------------------------------------------- mem spiffs copy available offline: no Copy a file to another (destructively) in SPIFFS file system", + "description": "help This help --------------------------------------------------------------------------------------- mem spiffs test available offline: no Test SPIFFS Operations, require wiping pages 0 and 1", "notes": [ - "mem spiffs copy -s aaa.bin -d aaa_cpy.bin" + "mem spiffs test" ], "offline": true, "options": [ - "-h, --help This help", - "-s, --src source file name", - "-d, --dest destination file name" + "-h, --help This help" ], - "usage": "mem spiffs copy [-h] -s -d " + "usage": "mem spiffs test [-h]" }, "mem spiffs info": { "command": "mem spiffs info", @@ -14422,18 +14482,6 @@ ], "usage": "mem spiffs rename [-h] -s -d " }, - "mem spiffs test": { - "command": "mem spiffs test", - "description": "Test SPIFFS Operations, require wiping pages 0 and 1", - "notes": [ - "mem spiffs test" - ], - "offline": false, - "options": [ - "-h, --help This help" - ], - "usage": "mem spiffs test [-h]" - }, "mem spiffs tree": { "command": "mem spiffs tree", "description": "Print the Flash memory file system tree", @@ -15658,8 +15706,8 @@ } }, "metadata": { - "commands_extracted": 878, + "commands_extracted": 881, "extracted_by": "PM3Help2JSON v1.00", - "extracted_on": "2026-06-29T21:47:47+00:00" + "extracted_on": "2026-07-07T20:45:30+00:00" } } diff --git a/doc/commands.md b/doc/commands.md index d0134df29..80e08d6e8 100644 --- a/doc/commands.md +++ b/doc/commands.md @@ -234,6 +234,8 @@ Check column "offline" for their availability. |`hf 14b tearoff `|N |`Tear-off attack on ST25TB/SRx counter blocks` |`hf 14b view `|Y |`Display content from tag dump file` |`hf 14b valid `|Y |`SRIX4 checksum test` +|`hf 14b ctdump `|N |`Dump ASK CTS/C-ticket` +|`hf 14b ctrdbl `|N |`Read ASK CTS/C-ticket block` |`hf 14b setuid `|N |`Set UID for magic card` @@ -308,20 +310,20 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`hf cipurse help `|Y |`This help.` -|`hf cipurse info `|N |`Tag information` -|`hf cipurse select `|N |`Select CIPURSE application or file` +|`hf cipurse test `|Y |`Regression self tests` |`hf cipurse auth `|N |`Authenticate CIPURSE tag` -|`hf cipurse read `|N |`Read binary file` -|`hf cipurse write `|N |`Write binary file` |`hf cipurse aread `|N |`Read file attributes` |`hf cipurse awrite `|N |`Write file attributes` -|`hf cipurse formatall `|N |`Erase all the data from chip` |`hf cipurse create `|N |`Create file, application, key via DGI record` |`hf cipurse delete `|N |`Delete file` +|`hf cipurse default `|N |`Set default key and file id for all the other commands` +|`hf cipurse formatall `|N |`Erase all the data from chip` +|`hf cipurse info `|N |`Tag information` +|`hf cipurse read `|N |`Read binary file` +|`hf cipurse select `|N |`Select CIPURSE application or file` |`hf cipurse updkey `|N |`Update key` |`hf cipurse updakey `|N |`Update key attributes` -|`hf cipurse default `|N |`Set default key and file id for all the other commands` -|`hf cipurse test `|Y |`Regression tests` +|`hf cipurse write `|N |`Write binary file` ### hf epa @@ -457,13 +459,13 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`hf gallagher help `|Y |`This help` -|`hf gallagher reader `|N |`Read & decode all Gallagher credentials on a DESFire or Classic card` +|`hf gallagher test `|Y |`Test the function of Gallagher Mifare Core` |`hf gallagher clone `|N |`Clone Gallagher credentials to a DESFire or Classic card` |`hf gallagher delete `|N |`Delete Gallagher credentials from a DESFire card` |`hf gallagher diversifykey`|Y |`Diversify Gallagher key` |`hf gallagher decode `|Y |`Decode Gallagher credential block` |`hf gallagher encode `|Y |`Encode Gallagher credential block` -|`hf gallagher test `|Y |`Test the function of Gallagher Mifare Core` +|`hf gallagher reader `|N |`Read & decode all Gallagher credentials on a DESFire or Classic card` ### hf gst @@ -753,6 +755,7 @@ Check column "offline" for their availability. |`hf mfu eload `|N |`Upload file into emulator memory` |`hf mfu esave `|N |`Save emulator memory to file` |`hf mfu eview `|N |`View emulator memory` +|`hf mfu esetblk `|N |`Set emulator memory block` |`hf mfu sim `|N |`Simulate MIFARE Ultralight from emulator memory` |`hf mfu setuid `|N |`Set UID - MAGIC tags only` |`hf mfu amiibo `|N |`Amiibo tag operations` @@ -841,16 +844,16 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`hf saflok help `|Y |`This help` -|`hf saflok read `|N |`Read Saflok card` -|`hf saflok provision `|N |`Provision Saflok card` +|`hf saflok test `|Y |`Perform self-test` +|`hf saflok cksum `|N |`Generate checksum for data block` |`hf saflok encode `|Y |`Encode Saflok card data` -|`hf saflok decode `|Y |`Decode Saflok card data` -|`hf saflok modify `|Y |`Modify Saflok card data` |`hf saflok encrypt `|Y |`Encrypt 17-byte decrypted block` +|`hf saflok decode `|Y |`Decode Saflok card data` |`hf saflok decrypt `|Y |`Decrypt 17-byte encrypted block` |`hf saflok interrogate `|N |`Interrogate saflok card` -|`hf saflok cksum `|N |`Generate checksum for data block` -|`hf saflok selftest `|Y |`Run self-test` +|`hf saflok provision `|N |`Provision Saflok card` +|`hf saflok modify `|Y |`Modify Saflok card data` +|`hf saflok read `|N |`Read Saflok card` ### hf seos @@ -1548,7 +1551,7 @@ Check column "offline" for their availability. |`mad verify `|N |`Verify data in MAD AID sectors` |`mad decode `|Y |`Decode MAD byte array` |`mad encode `|Y |`Encode MAD byte array from AID mappings` -|`mad test `|Y |`Run MAD regression tests` +|`mad test `|Y |`Perform MAD regression self-tests` ### mem @@ -1572,6 +1575,7 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`mem spiffs help `|Y |`This help` +|`mem spiffs test `|N |`Perform SPIFFS Operations tests` |`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` @@ -1579,7 +1583,6 @@ Check column "offline" for their availability. |`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` -|`mem spiffs test `|N |`Test SPIFFS Operations` |`mem spiffs tree `|N |`Print the Flash memory file system tree` |`mem spiffs unmount `|N |`Un-mount the SPIFFS file system` |`mem spiffs upload `|N |`Upload file into SPIFFS file system`