diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 1e1b844cf..96ba18729 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -2182,7 +2182,7 @@ static void PacketReceived(PacketCommandNG *packet) { uint8_t *buff = BigBuf_malloc(size); if (buff == NULL) { - if (g_dbglevel >= DBG_DEBUG) Dbprintf ("Could not allocate buffer"); + if (g_dbglevel >= DBG_DEBUG) Dbprintf("Could not allocate buffer"); // Trigger a finish downloading signal with an PM3_EMALLOC reply_ng(CMD_SPIFFS_DOWNLOAD, PM3_EMALLOC, NULL, 0); } else { @@ -2199,7 +2199,7 @@ static void PacketReceived(PacketCommandNG *packet) { } // Trigger a finish downloading signal with an ACK frame reply_ng(CMD_SPIFFS_DOWNLOAD, PM3_SUCCESS, NULL, 0); - BigBuf_free (); + BigBuf_free(); } LED_B_OFF(); break; diff --git a/armsrc/flashmem.c b/armsrc/flashmem.c index fd5a95c97..426540143 100644 --- a/armsrc/flashmem.c +++ b/armsrc/flashmem.c @@ -452,7 +452,7 @@ bool Flash_WipeMemoryPage(uint8_t page) { FlashStop(); // let spiffs check and update its info post flash erase - rdv40_spiffs_check (); + rdv40_spiffs_check(); return true; } // Wipes flash memory completely, fills with 0xFF diff --git a/armsrc/spiffs.c b/armsrc/spiffs.c index ef7ca3174..cea6946d3 100644 --- a/armsrc/spiffs.c +++ b/armsrc/spiffs.c @@ -102,7 +102,7 @@ static s32_t rdv40_spiffs_llerase(u32_t addr, u32_t size) { FlashStop(); // iceman: SPIFFS_OK expands to 0, erased is bool from Flash_Erase4k, which returns TRUE if ok. - // so this return logic looks wrong. + // so this return logic looks wrong. return (SPIFFS_OK == erased); } @@ -152,15 +152,15 @@ int rdv40_spiffs_mount(void) { // int ret = SPIFFS_mount(&fs, &cfg, spiffs_work_buf, spiffs_fds, // sizeof(spiffs_fds), 0, 0, 0); cached version, experimental int ret = SPIFFS_mount( - &fs, - &cfg, - spiffs_work_buf, - spiffs_fds, - sizeof(spiffs_fds), - spiffs_cache_buf, - sizeof(spiffs_cache_buf), - 0 - ); + &fs, + &cfg, + spiffs_work_buf, + spiffs_fds, + sizeof(spiffs_fds), + spiffs_cache_buf, + sizeof(spiffs_cache_buf), + 0 + ); if (ret == SPIFFS_OK) { RDV40_SPIFFS_MOUNT_STATUS = RDV40_SPIFFS_MOUNTED; @@ -437,23 +437,23 @@ int rdv40_spiffs_lazy_mount_rollback(int changed) { int rdv40_spiffs_write(const char *filename, uint8_t *src, uint32_t size, RDV40SpiFFSSafetyLevel level) { RDV40_SPIFFS_SAFE_FUNCTION( uint32_t idx; - if (size <= SPIFFS_WRITE_CHUNK_SIZE) { - // write small file - write_to_spiffs(filename, src, size); - size = 0; - } else { // - // write first SPIFFS_WRITE_CHUNK_SIZE bytes - // need to write the first chuck of data, then append - write_to_spiffs(filename, src, SPIFFS_WRITE_CHUNK_SIZE); - } - // append remaing SPIFFS_WRITE_CHUNK_SIZE byte chuncks - for (idx = 1; idx < (size / SPIFFS_WRITE_CHUNK_SIZE); idx++) { - append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], SPIFFS_WRITE_CHUNK_SIZE); - } - // append remaing bytes - if (((int64_t)size - (SPIFFS_WRITE_CHUNK_SIZE * idx)) > 0) { - append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], size - (SPIFFS_WRITE_CHUNK_SIZE * idx)); - } + if (size <= SPIFFS_WRITE_CHUNK_SIZE) { + // write small file + write_to_spiffs(filename, src, size); + size = 0; + } else { // + // write first SPIFFS_WRITE_CHUNK_SIZE bytes + // need to write the first chuck of data, then append + write_to_spiffs(filename, src, SPIFFS_WRITE_CHUNK_SIZE); + } + // append remaing SPIFFS_WRITE_CHUNK_SIZE byte chuncks + for (idx = 1; idx < (size / SPIFFS_WRITE_CHUNK_SIZE); idx++) { + append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], SPIFFS_WRITE_CHUNK_SIZE); + } + // append remaing bytes + if (((int64_t)size - (SPIFFS_WRITE_CHUNK_SIZE * idx)) > 0) { + append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], size - (SPIFFS_WRITE_CHUNK_SIZE * idx)); + } ) } @@ -461,13 +461,13 @@ int rdv40_spiffs_append(const char *filename, uint8_t *src, uint32_t size, RDV40 RDV40_SPIFFS_SAFE_FUNCTION( uint32_t idx; // Append any SPIFFS_WRITE_CHUNK_SIZE byte chunks - for (idx = 0; idx < (size/SPIFFS_WRITE_CHUNK_SIZE); idx++) { - append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], SPIFFS_WRITE_CHUNK_SIZE); - } - // Append remain bytes - if (((int64_t)size - (SPIFFS_WRITE_CHUNK_SIZE * idx)) > 0) { - append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], size - (SPIFFS_WRITE_CHUNK_SIZE * idx)); - } + for (idx = 0; idx < (size / SPIFFS_WRITE_CHUNK_SIZE); idx++) { + append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], SPIFFS_WRITE_CHUNK_SIZE); + } + // Append remain bytes + if (((int64_t)size - (SPIFFS_WRITE_CHUNK_SIZE * idx)) > 0) { + append_to_spiffs(filename, &src[SPIFFS_WRITE_CHUNK_SIZE * idx], size - (SPIFFS_WRITE_CHUNK_SIZE * idx)); + } ) } @@ -547,7 +547,7 @@ int rdv40_spiffs_read_as_symlink(char *filename, uint8_t *dst, uint32_t size, RD read_from_spiffs((char *)linkdest, (uint8_t *)dst, size); ) -} + } // BEWARE ! This function is DESTRUCTIVE as it will UPDATE an existing symlink // Since it creates a .lnk extension file it may be minor to mistake the order of arguments diff --git a/armsrc/spiffs.h b/armsrc/spiffs.h index 6af4fbac8..5958e559b 100644 --- a/armsrc/spiffs.h +++ b/armsrc/spiffs.h @@ -25,8 +25,8 @@ extern "C" { #include "spiffs_config.h" typedef enum spiffs_safety_level { - RDV40_SPIFFS_SAFETY_NORMAL, - RDV40_SPIFFS_SAFETY_LAZY, + RDV40_SPIFFS_SAFETY_NORMAL, + RDV40_SPIFFS_SAFETY_LAZY, RDV40_SPIFFS_SAFETY_SAFE } RDV40SpiFFSSafetyLevel; diff --git a/client/src/cmddata.c b/client/src/cmddata.c index 8020b7220..6b2793df0 100644 --- a/client/src/cmddata.c +++ b/client/src/cmddata.c @@ -2770,7 +2770,7 @@ static int try_detect_modulation(void) { #define LF_NUM_OF_TESTS 6 lf_modulation_t tests[LF_NUM_OF_TESTS]; - for (int i=0; i< ARRAYLEN(tests); i++) { + for (int i = 0; i < ARRAYLEN(tests); i++) { memset(&tests[i], 0, sizeof(lf_modulation_t)); } diff --git a/client/src/cmdhf14b.c b/client/src/cmdhf14b.c index 1f6d62523..8bac70d15 100644 --- a/client/src/cmdhf14b.c +++ b/client/src/cmdhf14b.c @@ -789,8 +789,8 @@ static void print_ct_blocks(uint8_t *data, size_t len) { static void print_sr_blocks(uint8_t *data, size_t len, const uint8_t *uid) { - size_t blocks = (len / ST25TB_SR_BLOCK_SIZE) -1 ; - uint8_t * systemblock = data + blocks * ST25TB_SR_BLOCK_SIZE ; + size_t blocks = (len / ST25TB_SR_BLOCK_SIZE) - 1 ; + uint8_t *systemblock = data + blocks * ST25TB_SR_BLOCK_SIZE ; uint8_t chipid = get_st_chipid(uid); PrintAndLogEx(SUCCESS, _GREEN_("%s") " tag", get_st_chip_model(chipid)); @@ -1486,7 +1486,7 @@ static int CmdHF14BDump(const char *Cmd) { // last read if (blocknum == 0xFF) { // we reserved space for this block after 0x0F and 0x7F, ie 0x10, 0x80 - memcpy(data + ((lastblock+1) * ST25TB_SR_BLOCK_SIZE), recv, ST25TB_SR_BLOCK_SIZE); + memcpy(data + ((lastblock + 1) * ST25TB_SR_BLOCK_SIZE), recv, ST25TB_SR_BLOCK_SIZE); break; } memcpy(data + (blocknum * ST25TB_SR_BLOCK_SIZE), recv, ST25TB_SR_BLOCK_SIZE); @@ -2105,25 +2105,26 @@ out: /* extract uid from filename * filename must match '^hf-14b-[0-9A-F]{16}' - */ -uint8_t * get_uid_from_filename(const char *filename) { + */ +uint8_t *get_uid_from_filename(const char *filename) { static uint8_t uid[8] ; memset(uid, 0, 8) ; char uidinhex[17] ; - if (strlen(filename)<23 || strncmp(filename, "hf-14b-", 7)) { + if (strlen(filename) < 23 || strncmp(filename, "hf-14b-", 7)) { PrintAndLogEx(ERR, "can't get uid from filename '%s'. Expected format is hf-14b-...", filename); return uid ; } - // extract uid part from filename - strncpy(uidinhex, filename+7, 16) ; uidinhex[16]='\0' ; - int len=hex_to_bytes(uidinhex, uid, 8); + // extract uid part from filename + strncpy(uidinhex, filename + 7, 16) ; + uidinhex[16] = '\0' ; + int len = hex_to_bytes(uidinhex, uid, 8); if (len == 8) - return SwapEndian64(uid , 8, 8); + return SwapEndian64(uid, 8, 8); else { PrintAndLogEx(ERR, "get_uid_from_filename failed: hex_to_bytes returned %d", len); memset(uid, 0, 8); } - return uid ; + return uid ; } static int CmdHF14BView(const char *Cmd) { diff --git a/client/src/cmdhf14b.h b/client/src/cmdhf14b.h index 06cd637b9..e66f5d19b 100644 --- a/client/src/cmdhf14b.h +++ b/client/src/cmdhf14b.h @@ -25,7 +25,7 @@ int CmdHF14B(const char *Cmd); int CmdHF14BNdefRead(const char *Cmd); -uint8_t * get_uid_from_filename(const char *filename); +uint8_t *get_uid_from_filename(const char *filename); int exchange_14b_apdu(uint8_t *datain, int datainlen, bool activate_field, bool leave_signal_on, uint8_t *dataout, int maxdataoutlen, int *dataoutlen, int user_timeout); int select_card_14443b_4(bool disconnect, iso14b_card_select_t *card); diff --git a/client/src/cmdhf15.c b/client/src/cmdhf15.c index bc8dc8928..45040d7f2 100644 --- a/client/src/cmdhf15.c +++ b/client/src/cmdhf15.c @@ -1147,7 +1147,7 @@ static int CmdHF15ESave(const char *Cmd) { static void print_hrule(int blocksize) { char dashes[] = "------------------------------------------------------------"; - PrintAndLogEx(INFO, "-----+%.*s-+-%.*s-", 3*blocksize, dashes, blocksize, dashes); + PrintAndLogEx(INFO, "-----+%.*s-+-%.*s-", 3 * blocksize, dashes, blocksize, dashes); } static void print_blocks_15693(uint8_t *data, uint16_t bytes, int blocksize) { @@ -1155,7 +1155,7 @@ static void print_blocks_15693(uint8_t *data, uint16_t bytes, int blocksize) { PrintAndLogEx(NORMAL, ""); print_hrule(blocksize); char spaces[] = " "; - PrintAndLogEx(INFO, " blk | data %.*s| ascii", MAX(0, 3*blocksize - 5), spaces); + PrintAndLogEx(INFO, " blk | data %.*s| ascii", MAX(0, 3 * blocksize - 5), spaces); print_hrule(blocksize); for (int i = 0; i < blocks; i++) { PrintAndLogEx(INFO, "%4d | %s ", i, sprint_hex_ascii(data + (i * blocksize), blocksize)); diff --git a/client/src/cmdhfmf.c b/client/src/cmdhfmf.c index 620eff3ea..3604c9686 100644 --- a/client/src/cmdhfmf.c +++ b/client/src/cmdhfmf.c @@ -5706,7 +5706,7 @@ int CmdHFMFNDEFFormat(const char *Cmd) { "hf mf ndefformat --2k --> MIFARE 2k\n" "hf mf ndefformat --4k --> MIFARE 4k\n" "hf mf ndefformat --keys hf-mf-066C8B78-key.bin --> MIFARE 1k with keys from specified file\n" - ); + ); void *argtable[] = { arg_param_begin, @@ -5774,9 +5774,9 @@ int CmdHFMFNDEFFormat(const char *Cmd) { // init keys to default key uint8_t keyA[MIFARE_4K_MAXSECTOR][MFKEY_SIZE]; - uint8_t keyB[MIFARE_4K_MAXSECTOR][MFKEY_SIZE]; - - for (uint8_t i = 0; i < MIFARE_4K_MAXSECTOR; i++ ) { + uint8_t keyB[MIFARE_4K_MAXSECTOR][MFKEY_SIZE]; + + for (uint8_t i = 0; i < MIFARE_4K_MAXSECTOR; i++) { memcpy(keyA[i], g_mifare_default_key, sizeof(g_mifare_default_key)); memcpy(keyB[i], g_mifare_default_key, sizeof(g_mifare_default_key)); } @@ -5785,15 +5785,15 @@ int CmdHFMFNDEFFormat(const char *Cmd) { uint64_t key64 = 0; // check if we can authenticate to sector - if (mfCheckKeys(0, MF_KEY_A, true, 1, (uint8_t*)g_mifare_mad_key, &key64) == PM3_SUCCESS) { + if (mfCheckKeys(0, MF_KEY_A, true, 1, (uint8_t *)g_mifare_mad_key, &key64) == PM3_SUCCESS) { // if used, assume KEY A is MAD/NDEF set. memcpy(keyA[0], g_mifare_mad_key, sizeof(g_mifare_mad_key)); memcpy(keyB[0], g_mifare_mad_key_b, sizeof(g_mifare_mad_key_b)); - for (uint8_t i = 1; i < MIFARE_4K_MAXSECTOR; i++ ) { - memcpy(keyA[i], g_mifare_ndef_key, sizeof(g_mifare_ndef_key)); + for (uint8_t i = 1; i < MIFARE_4K_MAXSECTOR; i++) { + memcpy(keyA[i], g_mifare_ndef_key, sizeof(g_mifare_ndef_key)); } - } + } // Do we have a keyfile based from UID? if (strlen(keyFilename) == 0) { @@ -5850,7 +5850,7 @@ skipfile: { 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7, 0x7F, 0x07, 0x88, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7, 0x7F, 0x07, 0x88, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, }; // main loop @@ -5860,7 +5860,7 @@ skipfile: uint8_t b = (mfFirstBlockOfSector(i) + j); uint8_t block[16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - switch(b) { + switch (b) { case 0: continue; case 1: @@ -5873,7 +5873,7 @@ skipfile: memcpy(block, firstblocks[b], MFBLOCK_SIZE); break; default: { - if (mfIsSectorTrailer(j) ) { + if (mfIsSectorTrailer(j)) { // ST NDEF memcpy(block, firstblocks[7], MFBLOCK_SIZE); } diff --git a/client/src/pm3line_vocabulory.h b/client/src/pm3line_vocabulory.h index 88557d416..cbf89bde8 100644 --- a/client/src/pm3line_vocabulory.h +++ b/client/src/pm3line_vocabulory.h @@ -31,711 +31,728 @@ typedef struct vocabulory_s { } vocabulory_t; const static vocabulory_t vocabulory[] = { - { 1, "help" }, - { 0, "auto" }, - { 1, "clear" }, - { 1, "hints" }, - { 1, "msleep" }, - { 1, "rem" }, - { 1, "quit" }, - { 1, "exit" }, - { 1, "prefs help" }, - { 1, "prefs show" }, - { 1, "prefs get barmode" }, - { 1, "prefs get clientdebug" }, - { 1, "prefs get clientdelay" }, - { 1, "prefs get color" }, - { 1, "prefs get savepaths" }, - { 1, "prefs get emoji" }, - { 1, "prefs get hints" }, - { 1, "prefs get output" }, - { 1, "prefs get plotsliders" }, - { 1, "prefs set help" }, - { 1, "prefs set barmode" }, - { 1, "prefs set clientdebug" }, - { 1, "prefs set clientdelay" }, - { 1, "prefs set color" }, - { 1, "prefs set emoji" }, - { 1, "prefs set hints" }, - { 1, "prefs set savepaths" }, - { 1, "prefs set output" }, - { 1, "prefs set plotsliders" }, - { 1, "analyse help" }, - { 1, "analyse lcr" }, - { 1, "analyse crc" }, - { 1, "analyse chksum" }, - { 1, "analyse dates" }, - { 1, "analyse lfsr" }, - { 1, "analyse a" }, - { 1, "analyse nuid" }, - { 1, "analyse demodbuff" }, - { 1, "analyse freq" }, - { 1, "analyse foo" }, - { 1, "analyse units" }, - { 1, "data help" }, - { 1, "data biphaserawdecode" }, - { 1, "data detectclock" }, - { 1, "data fsktonrz" }, - { 1, "data manrawdecode" }, - { 1, "data modulation" }, - { 1, "data rawdemod" }, - { 1, "data askedgedetect" }, - { 1, "data autocorr" }, - { 1, "data dirthreshold" }, - { 1, "data decimate" }, - { 1, "data undecimate" }, - { 1, "data hide" }, - { 1, "data hpf" }, - { 1, "data iir" }, - { 1, "data grid" }, - { 1, "data ltrim" }, - { 1, "data mtrim" }, - { 1, "data norm" }, - { 1, "data plot" }, - { 1, "data rtrim" }, - { 1, "data setgraphmarkers" }, - { 1, "data shiftgraphzero" }, - { 1, "data timescale" }, - { 1, "data zerocrossings" }, - { 1, "data convertbitstream" }, - { 1, "data getbitstream" }, - { 1, "data asn1" }, - { 1, "data bin2hex" }, - { 0, "data bitsamples" }, - { 1, "data clear" }, - { 1, "data diff" }, - { 0, "data hexsamples" }, - { 1, "data hex2bin" }, - { 1, "data load" }, - { 1, "data print" }, - { 0, "data samples" }, - { 1, "data save" }, - { 1, "data setdebugmode" }, - { 0, "data tune" }, - { 1, "emv help" }, - { 0, "emv exec" }, - { 0, "emv pse" }, - { 0, "emv search" }, - { 0, "emv select" }, - { 0, "emv gpo" }, - { 0, "emv readrec" }, - { 0, "emv genac" }, - { 0, "emv challenge" }, - { 0, "emv intauth" }, - { 0, "emv scan" }, - { 1, "emv test" }, - { 1, "emv list" }, - { 0, "emv roca" }, - { 1, "hf help" }, - { 1, "hf list" }, - { 0, "hf plot" }, - { 0, "hf tune" }, - { 1, "hf search" }, - { 0, "hf sniff" }, - { 1, "hf 14a help" }, - { 1, "hf 14a list" }, - { 0, "hf 14a info" }, - { 0, "hf 14a reader" }, - { 0, "hf 14a ndefread" }, - { 0, "hf 14a cuids" }, - { 0, "hf 14a sim" }, - { 0, "hf 14a sniff" }, - { 0, "hf 14a apdu" }, - { 0, "hf 14a chaining" }, - { 0, "hf 14a raw" }, - { 0, "hf 14a antifuzz" }, - { 0, "hf 14a config" }, - { 0, "hf 14a apdufind" }, - { 1, "hf 14b help" }, - { 0, "hf 14b apdu" }, - { 0, "hf 14b dump" }, - { 0, "hf 14b info" }, - { 1, "hf 14b list" }, - { 0, "hf 14b ndefread" }, - { 0, "hf 14b raw" }, - { 0, "hf 14b reader" }, - { 0, "hf 14b sim" }, - { 0, "hf 14b sniff" }, - { 0, "hf 14b rdbl" }, - { 0, "hf 14b sriwrite" }, - { 1, "hf 14b view" }, - { 1, "hf 15 help" }, - { 1, "hf 15 list" }, - { 1, "hf 15 demod" }, - { 0, "hf 15 dump" }, - { 0, "hf 15 info" }, - { 0, "hf 15 sniff" }, - { 0, "hf 15 raw" }, - { 0, "hf 15 rdbl" }, - { 0, "hf 15 rdmulti" }, - { 0, "hf 15 reader" }, - { 0, "hf 15 restore" }, - { 0, "hf 15 samples" }, - { 0, "hf 15 sim" }, - { 0, "hf 15 slixdisable" }, - { 0, "hf 15 wrbl" }, - { 0, "hf 15 findafi" }, - { 0, "hf 15 writeafi" }, - { 0, "hf 15 writedsfid" }, - { 0, "hf 15 csetuid" }, - { 1, "hf cipurse help" }, - { 0, "hf cipurse info" }, - { 0, "hf cipurse select" }, - { 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 updkey" }, - { 0, "hf cipurse updakey" }, - { 0, "hf cipurse default" }, - { 1, "hf cipurse test" }, - { 1, "hf epa help" }, - { 0, "hf epa cnonces" }, - { 0, "hf epa preplay" }, - { 1, "hf emrtd help" }, - { 0, "hf emrtd dump" }, - { 1, "hf emrtd info" }, - { 1, "hf emrtd list" }, - { 1, "hf felica help" }, - { 1, "hf felica list" }, - { 0, "hf felica reader" }, - { 0, "hf felica info" }, - { 0, "hf felica sniff" }, - { 0, "hf felica raw" }, - { 0, "hf felica rdbl" }, - { 0, "hf felica wrbl" }, - { 0, "hf felica rqservice" }, - { 0, "hf felica rqresponse" }, - { 0, "hf felica scsvcode" }, - { 0, "hf felica rqsyscode" }, - { 0, "hf felica auth1" }, - { 0, "hf felica auth2" }, - { 0, "hf felica rqspecver" }, - { 0, "hf felica resetmode" }, - { 0, "hf felica litesim" }, - { 0, "hf felica litedump" }, - { 1, "hf fido help" }, - { 1, "hf fido list" }, - { 0, "hf fido info" }, - { 0, "hf fido reg" }, - { 0, "hf fido auth" }, - { 0, "hf fido make" }, - { 0, "hf fido assert" }, - { 1, "hf gallagher help" }, - { 0, "hf gallagher reader" }, - { 0, "hf gallagher clone" }, - { 0, "hf gallagher delete" }, - { 1, "hf gallagher diversifykey" }, - { 1, "hf ksx6924 help" }, - { 0, "hf ksx6924 balance" }, - { 0, "hf ksx6924 info" }, - { 0, "hf ksx6924 initialize" }, - { 0, "hf ksx6924 prec" }, - { 0, "hf ksx6924 select" }, - { 1, "hf jooki help" }, - { 0, "hf jooki clone" }, - { 1, "hf jooki decode" }, - { 1, "hf jooki encode" }, - { 0, "hf jooki sim" }, - { 1, "hf iclass help" }, - { 0, "hf iclass dump" }, - { 1, "hf iclass info" }, - { 1, "hf iclass list" }, - { 0, "hf iclass rdbl" }, - { 0, "hf iclass reader" }, - { 0, "hf iclass restore" }, - { 0, "hf iclass sniff" }, - { 0, "hf iclass wrbl" }, - { 0, "hf iclass chk" }, - { 1, "hf iclass loclass" }, - { 1, "hf iclass lookup" }, - { 0, "hf iclass sim" }, - { 0, "hf iclass eload" }, - { 0, "hf iclass esave" }, - { 0, "hf iclass eview" }, - { 1, "hf iclass configcard" }, - { 1, "hf iclass calcnewkey" }, - { 1, "hf iclass encode" }, - { 1, "hf iclass encrypt" }, - { 1, "hf iclass decrypt" }, - { 1, "hf iclass managekeys" }, - { 1, "hf iclass permutekey" }, - { 1, "hf iclass view" }, - { 1, "hf legic help" }, - { 0, "hf legic dump" }, - { 0, "hf legic info" }, - { 1, "hf legic list" }, - { 0, "hf legic rdbl" }, - { 0, "hf legic reader" }, - { 0, "hf legic restore" }, - { 0, "hf legic wipe" }, - { 0, "hf legic wrbl" }, - { 0, "hf legic sim" }, - { 0, "hf legic eload" }, - { 0, "hf legic esave" }, - { 0, "hf legic eview" }, - { 1, "hf legic crc" }, - { 1, "hf legic view" }, - { 1, "hf lto help" }, - { 0, "hf lto dump" }, - { 0, "hf lto restore" }, - { 0, "hf lto info" }, - { 0, "hf lto rdbl" }, - { 0, "hf lto wrbl" }, - { 1, "hf lto list" }, - { 1, "hf mf help" }, - { 1, "hf mf list" }, - { 0, "hf mf darkside" }, - { 0, "hf mf nested" }, - { 1, "hf mf hardnested" }, - { 0, "hf mf staticnested" }, - { 0, "hf mf autopwn" }, - { 0, "hf mf nack" }, - { 0, "hf mf chk" }, - { 0, "hf mf fchk" }, - { 1, "hf mf decrypt" }, - { 0, "hf mf supercard" }, - { 0, "hf mf auth4" }, - { 1, "hf mf acl" }, - { 0, "hf mf dump" }, - { 0, "hf mf mad" }, - { 0, "hf mf ndefread" }, - { 0, "hf mf personalize" }, - { 0, "hf mf rdbl" }, - { 0, "hf mf rdsc" }, - { 0, "hf mf restore" }, - { 0, "hf mf setmod" }, - { 1, "hf mf value" }, - { 1, "hf mf view" }, - { 0, "hf mf wipe" }, - { 0, "hf mf wrbl" }, - { 0, "hf mf sim" }, - { 0, "hf mf ecfill" }, - { 0, "hf mf eclr" }, - { 0, "hf mf egetblk" }, - { 0, "hf mf egetsc" }, - { 0, "hf mf ekeyprn" }, - { 0, "hf mf eload" }, - { 0, "hf mf esave" }, - { 0, "hf mf esetblk" }, - { 0, "hf mf eview" }, - { 0, "hf mf cgetblk" }, - { 0, "hf mf cgetsc" }, - { 0, "hf mf cload" }, - { 0, "hf mf csave" }, - { 0, "hf mf csetblk" }, - { 0, "hf mf csetuid" }, - { 0, "hf mf cview" }, - { 0, "hf mf cwipe" }, - { 0, "hf mf gen3uid" }, - { 0, "hf mf gen3blk" }, - { 0, "hf mf gen3freeze" }, - { 0, "hf mf gview" }, - { 1, "hf mfp help" }, - { 0, "hf mfp info" }, - { 0, "hf mfp wrp" }, - { 0, "hf mfp initp" }, - { 0, "hf mfp commitp" }, - { 0, "hf mfp auth" }, - { 0, "hf mfp rdbl" }, - { 0, "hf mfp rdsc" }, - { 0, "hf mfp wrbl" }, - { 0, "hf mfp chk" }, - { 0, "hf mfp mad" }, - { 0, "hf mfp ndefread" }, - { 1, "hf mfu help" }, - { 1, "hf mfu keygen" }, - { 1, "hf mfu pwdgen" }, - { 0, "hf mfu otptear" }, - { 0, "hf mfu cauth" }, - { 0, "hf mfu dump" }, - { 0, "hf mfu info" }, - { 0, "hf mfu ndefread" }, - { 0, "hf mfu rdbl" }, - { 0, "hf mfu restore" }, - { 1, "hf mfu view" }, - { 0, "hf mfu wrbl" }, - { 0, "hf mfu eload" }, - { 0, "hf mfu eview" }, - { 0, "hf mfu sim" }, - { 0, "hf mfu setpwd" }, - { 0, "hf mfu setuid" }, - { 1, "hf mfdes help" }, - { 0, "hf mfdes info" }, - { 0, "hf mfdes getuid" }, - { 0, "hf mfdes default" }, - { 0, "hf mfdes auth" }, - { 0, "hf mfdes chk" }, - { 0, "hf mfdes detect" }, - { 0, "hf mfdes freemem" }, - { 0, "hf mfdes setconfig" }, - { 0, "hf mfdes formatpicc" }, - { 1, "hf mfdes list" }, - { 0, "hf mfdes mad" }, - { 0, "hf mfdes lsapp" }, - { 0, "hf mfdes getaids" }, - { 0, "hf mfdes getappnames" }, - { 0, "hf mfdes bruteaid" }, - { 0, "hf mfdes createapp" }, - { 0, "hf mfdes deleteapp" }, - { 0, "hf mfdes selectapp" }, - { 0, "hf mfdes changekey" }, - { 0, "hf mfdes chkeysettings" }, - { 0, "hf mfdes getkeysettings" }, - { 0, "hf mfdes getkeyversions" }, - { 0, "hf mfdes getfileids" }, - { 0, "hf mfdes getfileisoids" }, - { 0, "hf mfdes lsfiles" }, - { 0, "hf mfdes dump" }, - { 0, "hf mfdes createfile" }, - { 0, "hf mfdes createvaluefile" }, - { 0, "hf mfdes createrecordfile" }, - { 0, "hf mfdes createmacfile" }, - { 0, "hf mfdes deletefile" }, - { 0, "hf mfdes getfilesettings" }, - { 0, "hf mfdes chfilesettings" }, - { 0, "hf mfdes read" }, - { 0, "hf mfdes write" }, - { 0, "hf mfdes value" }, - { 0, "hf mfdes clearrecfile" }, - { 1, "hf mfdes test" }, - { 1, "hf ntag424 help" }, - { 0, "hf ntag424 info" }, - { 0, "hf ntag424 sdm" }, - { 1, "hf ntag424 view" }, - { 1, "hf seos help" }, - { 0, "hf seos info" }, - { 1, "hf seos list" }, - { 1, "hf st25ta help" }, - { 0, "hf st25ta info" }, - { 1, "hf st25ta list" }, - { 1, "hf st25ta ndefread" }, - { 0, "hf st25ta protect" }, - { 0, "hf st25ta pwd" }, - { 0, "hf st25ta sim" }, - { 1, "hf thinfilm help" }, - { 0, "hf thinfilm info" }, - { 1, "hf thinfilm list" }, - { 0, "hf thinfilm sim" }, - { 1, "hf topaz help" }, - { 1, "hf topaz list" }, - { 0, "hf topaz info" }, - { 0, "hf topaz reader" }, - { 0, "hf topaz sim" }, - { 0, "hf topaz sniff" }, - { 0, "hf topaz raw" }, - { 1, "hf texkom help" }, - { 0, "hf texkom reader" }, - { 0, "hf texkom sim" }, - { 1, "hf xerox help" }, - { 0, "hf xerox info" }, - { 0, "hf xerox reader" }, - { 0, "hf xerox dump" }, - { 1, "hf waveshare help" }, - { 0, "hf waveshare loadbmp" }, - { 1, "hw help" }, - { 0, "hw break" }, - { 1, "hw connect" }, - { 0, "hw dbg" }, - { 0, "hw detectreader" }, - { 0, "hw fpgaoff" }, - { 0, "hw lcd" }, - { 0, "hw lcdreset" }, - { 0, "hw ping" }, - { 0, "hw readmem" }, - { 0, "hw reset" }, - { 0, "hw setlfdivisor" }, - { 0, "hw setmux" }, - { 0, "hw standalone" }, - { 0, "hw status" }, - { 0, "hw tearoff" }, - { 0, "hw tia" }, - { 0, "hw tune" }, - { 1, "hw version" }, - { 1, "lf help" }, - { 0, "lf config" }, - { 0, "lf cmdread" }, - { 0, "lf read" }, - { 1, "lf search" }, - { 0, "lf sim" }, - { 0, "lf simask" }, - { 0, "lf simfsk" }, - { 0, "lf simpsk" }, - { 0, "lf simbidir" }, - { 0, "lf sniff" }, - { 0, "lf tune" }, - { 1, "lf awid help" }, - { 1, "lf awid demod" }, - { 0, "lf awid reader" }, - { 0, "lf awid clone" }, - { 0, "lf awid sim" }, - { 0, "lf awid brute" }, - { 0, "lf awid watch" }, - { 1, "lf cotag help" }, - { 1, "lf cotag demod" }, - { 0, "lf cotag reader" }, - { 1, "lf destron help" }, - { 1, "lf destron demod" }, - { 0, "lf destron reader" }, - { 0, "lf destron clone" }, - { 0, "lf destron sim" }, - { 1, "lf em help" }, - { 1, "lf em 410x help" }, - { 1, "lf em 410x demod" }, - { 0, "lf em 410x reader" }, - { 0, "lf em 410x sim" }, - { 0, "lf em 410x brute" }, - { 0, "lf em 410x watch" }, - { 0, "lf em 410x spoof" }, - { 0, "lf em 410x clone" }, - { 1, "lf em 4x05 help" }, - { 0, "lf em 4x05 brute" }, - { 0, "lf em 4x05 chk" }, - { 1, "lf em 4x05 demod" }, - { 0, "lf em 4x05 dump" }, - { 0, "lf em 4x05 info" }, - { 0, "lf em 4x05 read" }, - { 1, "lf em 4x05 sniff" }, - { 0, "lf em 4x05 unlock" }, - { 0, "lf em 4x05 wipe" }, - { 0, "lf em 4x05 write" }, - { 1, "lf em 4x50 help" }, - { 0, "lf em 4x50 brute" }, - { 0, "lf em 4x50 chk" }, - { 0, "lf em 4x50 dump" }, - { 0, "lf em 4x50 info" }, - { 0, "lf em 4x50 login" }, - { 0, "lf em 4x50 rdbl" }, - { 0, "lf em 4x50 reader" }, - { 0, "lf em 4x50 restore" }, - { 0, "lf em 4x50 wrbl" }, - { 0, "lf em 4x50 wrpwd" }, - { 0, "lf em 4x50 wipe" }, - { 0, "lf em 4x50 eload" }, - { 0, "lf em 4x50 esave" }, - { 0, "lf em 4x50 eview" }, - { 0, "lf em 4x50 sim" }, - { 1, "lf em 4x70 help" }, - { 0, "lf em 4x70 info" }, - { 0, "lf em 4x70 write" }, - { 0, "lf em 4x70 unlock" }, - { 0, "lf em 4x70 auth" }, - { 0, "lf em 4x70 writepin" }, - { 0, "lf em 4x70 writekey" }, - { 1, "lf fdxb help" }, - { 1, "lf fdxb demod" }, - { 0, "lf fdxb reader" }, - { 0, "lf fdxb clone" }, - { 0, "lf fdxb sim" }, - { 1, "lf gallagher help" }, - { 1, "lf gallagher demod" }, - { 0, "lf gallagher reader" }, - { 0, "lf gallagher clone" }, - { 0, "lf gallagher sim" }, - { 1, "lf gproxii help" }, - { 1, "lf gproxii demod" }, - { 0, "lf gproxii reader" }, - { 0, "lf gproxii clone" }, - { 0, "lf gproxii sim" }, - { 1, "lf hid help" }, - { 1, "lf hid demod" }, - { 0, "lf hid reader" }, - { 0, "lf hid clone" }, - { 0, "lf hid sim" }, - { 0, "lf hid brute" }, - { 0, "lf hid watch" }, - { 1, "lf hitag help" }, - { 0, "lf hitag eload" }, - { 1, "lf hitag list" }, - { 0, "lf hitag info" }, - { 0, "lf hitag reader" }, - { 0, "lf hitag sim" }, - { 0, "lf hitag sniff" }, - { 0, "lf hitag writer" }, - { 0, "lf hitag dump" }, - { 0, "lf hitag cc" }, - { 1, "lf idteck help" }, - { 1, "lf idteck demod" }, - { 0, "lf idteck reader" }, - { 0, "lf idteck clone" }, - { 0, "lf idteck sim" }, - { 1, "lf indala help" }, - { 1, "lf indala demod" }, - { 1, "lf indala altdemod" }, - { 0, "lf indala reader" }, - { 0, "lf indala clone" }, - { 0, "lf indala sim" }, - { 1, "lf io help" }, - { 1, "lf io demod" }, - { 0, "lf io reader" }, - { 0, "lf io clone" }, - { 0, "lf io sim" }, - { 0, "lf io watch" }, - { 1, "lf jablotron help" }, - { 1, "lf jablotron demod" }, - { 0, "lf jablotron reader" }, - { 0, "lf jablotron clone" }, - { 0, "lf jablotron sim" }, - { 1, "lf keri help" }, - { 1, "lf keri demod" }, - { 0, "lf keri reader" }, - { 0, "lf keri clone" }, - { 0, "lf keri sim" }, - { 1, "lf motorola help" }, - { 1, "lf motorola demod" }, - { 0, "lf motorola reader" }, - { 0, "lf motorola clone" }, - { 0, "lf motorola sim" }, - { 1, "lf nedap help" }, - { 1, "lf nedap demod" }, - { 0, "lf nedap reader" }, - { 0, "lf nedap clone" }, - { 0, "lf nedap sim" }, - { 1, "lf nexwatch help" }, - { 1, "lf nexwatch demod" }, - { 0, "lf nexwatch reader" }, - { 0, "lf nexwatch clone" }, - { 0, "lf nexwatch sim" }, - { 1, "lf noralsy help" }, - { 1, "lf noralsy demod" }, - { 0, "lf noralsy reader" }, - { 0, "lf noralsy clone" }, - { 0, "lf noralsy sim" }, - { 1, "lf pac help" }, - { 1, "lf pac demod" }, - { 0, "lf pac reader" }, - { 0, "lf pac clone" }, - { 0, "lf pac sim" }, - { 1, "lf paradox help" }, - { 1, "lf paradox demod" }, - { 0, "lf paradox reader" }, - { 0, "lf paradox clone" }, - { 0, "lf paradox sim" }, - { 1, "lf pcf7931 help" }, - { 0, "lf pcf7931 reader" }, - { 0, "lf pcf7931 write" }, - { 1, "lf pcf7931 config" }, - { 1, "lf presco help" }, - { 1, "lf presco demod" }, - { 0, "lf presco reader" }, - { 0, "lf presco clone" }, - { 0, "lf presco sim" }, - { 1, "lf pyramid help" }, - { 1, "lf pyramid demod" }, - { 0, "lf pyramid reader" }, - { 0, "lf pyramid clone" }, - { 0, "lf pyramid sim" }, - { 1, "lf securakey help" }, - { 1, "lf securakey demod" }, - { 0, "lf securakey reader" }, - { 0, "lf securakey clone" }, - { 0, "lf securakey sim" }, - { 1, "lf ti help" }, - { 1, "lf ti demod" }, - { 0, "lf ti reader" }, - { 0, "lf ti write" }, - { 1, "lf t55xx help" }, - { 0, "lf t55xx clonehelp" }, - { 1, "lf t55xx config" }, - { 0, "lf t55xx dangerraw" }, - { 1, "lf t55xx detect" }, - { 0, "lf t55xx deviceconfig" }, - { 0, "lf t55xx dump" }, - { 1, "lf t55xx info" }, - { 0, "lf t55xx p1detect" }, - { 0, "lf t55xx read" }, - { 0, "lf t55xx resetread" }, - { 0, "lf t55xx restore" }, - { 1, "lf t55xx trace" }, - { 0, "lf t55xx wakeup" }, - { 0, "lf t55xx write" }, - { 0, "lf t55xx bruteforce" }, - { 0, "lf t55xx chk" }, - { 0, "lf t55xx protect" }, - { 0, "lf t55xx recoverpw" }, - { 1, "lf t55xx sniff" }, - { 0, "lf t55xx special" }, - { 0, "lf t55xx wipe" }, - { 1, "lf viking help" }, - { 1, "lf viking demod" }, - { 0, "lf viking reader" }, - { 0, "lf viking clone" }, - { 0, "lf viking sim" }, - { 1, "lf visa2000 help" }, - { 1, "lf visa2000 demod" }, - { 0, "lf visa2000 reader" }, - { 0, "lf visa2000 clone" }, - { 0, "lf visa2000 sim" }, - { 1, "mem help" }, - { 0, "mem baudrate" }, - { 0, "mem dump" }, - { 0, "mem info" }, - { 0, "mem load" }, - { 0, "mem wipe" }, - { 1, "mem spiffs help" }, - { 0, "mem spiffs copy" }, - { 0, "mem spiffs check" }, - { 0, "mem spiffs dump" }, - { 0, "mem spiffs info" }, - { 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" }, - { 0, "mem spiffs view" }, - { 0, "mem spiffs wipe" }, - { 1, "nfc help" }, - { 1, "nfc decode" }, - { 0, "nfc type1 read" }, - { 1, "nfc type1 help" }, - { 0, "nfc type2 read" }, - { 1, "nfc type2 help" }, - { 0, "nfc type4a read" }, - { 0, "nfc type4a st25taread" }, - { 1, "nfc type4a help" }, - { 0, "nfc type4b read" }, - { 1, "nfc type4b help" }, - { 0, "nfc mf cread" }, - { 0, "nfc mf pread" }, - { 1, "nfc mf help" }, - { 0, "nfc barcode read" }, - { 0, "nfc barcode sim" }, - { 1, "nfc barcode help" }, - { 1, "smart help" }, - { 1, "smart list" }, - { 0, "smart info" }, - { 0, "smart reader" }, - { 0, "smart raw" }, - { 1, "smart upgrade" }, - { 0, "smart setclock" }, - { 0, "smart brute" }, - { 1, "script help" }, - { 1, "script list" }, - { 1, "script run" }, - { 1, "trace help" }, - { 1, "trace extract" }, - { 1, "trace list" }, - { 1, "trace load" }, - { 1, "trace save" }, - { 1, "usart help" }, - { 0, "usart btpin" }, - { 0, "usart btfactory" }, - { 0, "usart tx" }, - { 0, "usart rx" }, - { 0, "usart txrx" }, - { 0, "usart txhex" }, - { 0, "usart rxhex" }, - { 0, "usart config" }, - { 1, "wiegand help" }, - { 1, "wiegand list" }, - { 1, "wiegand encode" }, - { 1, "wiegand decode" }, + { 1, "help" }, + { 0, "auto" }, + { 1, "clear" }, + { 1, "hints" }, + { 1, "msleep" }, + { 1, "rem" }, + { 1, "quit" }, + { 1, "exit" }, + { 1, "prefs help" }, + { 1, "prefs show" }, + { 1, "prefs get barmode" }, + { 1, "prefs get clientdebug" }, + { 1, "prefs get clientdelay" }, + { 1, "prefs get color" }, + { 1, "prefs get savepaths" }, + { 1, "prefs get emoji" }, + { 1, "prefs get hints" }, + { 1, "prefs get output" }, + { 1, "prefs get plotsliders" }, + { 1, "prefs set help" }, + { 1, "prefs set barmode" }, + { 1, "prefs set clientdebug" }, + { 1, "prefs set clientdelay" }, + { 1, "prefs set color" }, + { 1, "prefs set emoji" }, + { 1, "prefs set hints" }, + { 1, "prefs set savepaths" }, + { 1, "prefs set output" }, + { 1, "prefs set plotsliders" }, + { 1, "analyse help" }, + { 1, "analyse lcr" }, + { 1, "analyse crc" }, + { 1, "analyse chksum" }, + { 1, "analyse dates" }, + { 1, "analyse lfsr" }, + { 1, "analyse a" }, + { 1, "analyse nuid" }, + { 1, "analyse demodbuff" }, + { 1, "analyse freq" }, + { 1, "analyse foo" }, + { 1, "analyse units" }, + { 1, "data help" }, + { 1, "data biphaserawdecode" }, + { 1, "data detectclock" }, + { 1, "data fsktonrz" }, + { 1, "data manrawdecode" }, + { 1, "data modulation" }, + { 1, "data rawdemod" }, + { 1, "data askedgedetect" }, + { 1, "data autocorr" }, + { 1, "data dirthreshold" }, + { 1, "data decimate" }, + { 1, "data undecimate" }, + { 1, "data hide" }, + { 1, "data hpf" }, + { 1, "data iir" }, + { 1, "data grid" }, + { 1, "data ltrim" }, + { 1, "data mtrim" }, + { 1, "data norm" }, + { 1, "data plot" }, + { 1, "data rtrim" }, + { 1, "data setgraphmarkers" }, + { 1, "data shiftgraphzero" }, + { 1, "data timescale" }, + { 1, "data zerocrossings" }, + { 1, "data convertbitstream" }, + { 1, "data getbitstream" }, + { 1, "data asn1" }, + { 1, "data bin2hex" }, + { 0, "data bitsamples" }, + { 1, "data clear" }, + { 1, "data diff" }, + { 0, "data hexsamples" }, + { 1, "data hex2bin" }, + { 1, "data load" }, + { 1, "data print" }, + { 0, "data samples" }, + { 1, "data save" }, + { 1, "data setdebugmode" }, + { 0, "data tune" }, + { 1, "emv help" }, + { 0, "emv exec" }, + { 0, "emv pse" }, + { 0, "emv search" }, + { 0, "emv select" }, + { 0, "emv gpo" }, + { 0, "emv readrec" }, + { 0, "emv genac" }, + { 0, "emv challenge" }, + { 0, "emv intauth" }, + { 0, "emv scan" }, + { 1, "emv test" }, + { 1, "emv list" }, + { 0, "emv roca" }, + { 1, "hf help" }, + { 1, "hf list" }, + { 0, "hf plot" }, + { 0, "hf tune" }, + { 1, "hf search" }, + { 0, "hf sniff" }, + { 1, "hf 14a help" }, + { 1, "hf 14a list" }, + { 0, "hf 14a info" }, + { 0, "hf 14a reader" }, + { 0, "hf 14a ndefread" }, + { 0, "hf 14a cuids" }, + { 0, "hf 14a sim" }, + { 0, "hf 14a sniff" }, + { 0, "hf 14a apdu" }, + { 0, "hf 14a chaining" }, + { 0, "hf 14a raw" }, + { 0, "hf 14a antifuzz" }, + { 0, "hf 14a config" }, + { 0, "hf 14a apdufind" }, + { 1, "hf 14b help" }, + { 0, "hf 14b apdu" }, + { 0, "hf 14b dump" }, + { 0, "hf 14b info" }, + { 1, "hf 14b list" }, + { 0, "hf 14b ndefread" }, + { 0, "hf 14b raw" }, + { 0, "hf 14b reader" }, + { 0, "hf 14b sim" }, + { 0, "hf 14b sniff" }, + { 0, "hf 14b rdbl" }, + { 0, "hf 14b sriwrite" }, + { 1, "hf 14b view" }, + { 1, "hf 15 help" }, + { 1, "hf 15 list" }, + { 1, "hf 15 demod" }, + { 0, "hf 15 dump" }, + { 0, "hf 15 info" }, + { 0, "hf 15 sniff" }, + { 0, "hf 15 raw" }, + { 0, "hf 15 rdbl" }, + { 0, "hf 15 rdmulti" }, + { 0, "hf 15 reader" }, + { 0, "hf 15 restore" }, + { 0, "hf 15 samples" }, + { 0, "hf 15 eload" }, + { 0, "hf 15 esave" }, + { 0, "hf 15 eview" }, + { 0, "hf 15 sim" }, + { 0, "hf 15 slixdisable" }, + { 0, "hf 15 wrbl" }, + { 0, "hf 15 findafi" }, + { 0, "hf 15 writeafi" }, + { 0, "hf 15 writedsfid" }, + { 0, "hf 15 csetuid" }, + { 1, "hf cipurse help" }, + { 0, "hf cipurse info" }, + { 0, "hf cipurse select" }, + { 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 updkey" }, + { 0, "hf cipurse updakey" }, + { 0, "hf cipurse default" }, + { 1, "hf cipurse test" }, + { 1, "hf epa help" }, + { 0, "hf epa cnonces" }, + { 0, "hf epa preplay" }, + { 1, "hf emrtd help" }, + { 0, "hf emrtd dump" }, + { 1, "hf emrtd info" }, + { 1, "hf emrtd list" }, + { 1, "hf felica help" }, + { 1, "hf felica list" }, + { 0, "hf felica reader" }, + { 0, "hf felica info" }, + { 0, "hf felica sniff" }, + { 0, "hf felica raw" }, + { 0, "hf felica rdbl" }, + { 0, "hf felica wrbl" }, + { 0, "hf felica rqservice" }, + { 0, "hf felica rqresponse" }, + { 0, "hf felica scsvcode" }, + { 0, "hf felica rqsyscode" }, + { 0, "hf felica auth1" }, + { 0, "hf felica auth2" }, + { 0, "hf felica rqspecver" }, + { 0, "hf felica resetmode" }, + { 0, "hf felica litesim" }, + { 0, "hf felica litedump" }, + { 1, "hf fido help" }, + { 1, "hf fido list" }, + { 0, "hf fido info" }, + { 0, "hf fido reg" }, + { 0, "hf fido auth" }, + { 0, "hf fido make" }, + { 0, "hf fido assert" }, + { 1, "hf fudan help" }, + { 0, "hf fudan reader" }, + { 0, "hf fudan dump" }, + { 0, "hf fudan rdbl" }, + { 1, "hf fudan view" }, + { 0, "hf fudan wrbl" }, + { 1, "hf gallagher help" }, + { 0, "hf gallagher reader" }, + { 0, "hf gallagher clone" }, + { 0, "hf gallagher delete" }, + { 1, "hf gallagher diversifykey" }, + { 1, "hf gallagher decode" }, + { 1, "hf ksx6924 help" }, + { 0, "hf ksx6924 balance" }, + { 0, "hf ksx6924 info" }, + { 0, "hf ksx6924 initialize" }, + { 0, "hf ksx6924 prec" }, + { 0, "hf ksx6924 select" }, + { 1, "hf jooki help" }, + { 0, "hf jooki clone" }, + { 1, "hf jooki decode" }, + { 1, "hf jooki encode" }, + { 0, "hf jooki sim" }, + { 1, "hf iclass help" }, + { 0, "hf iclass dump" }, + { 1, "hf iclass info" }, + { 1, "hf iclass list" }, + { 0, "hf iclass rdbl" }, + { 0, "hf iclass reader" }, + { 0, "hf iclass restore" }, + { 0, "hf iclass sniff" }, + { 0, "hf iclass wrbl" }, + { 0, "hf iclass chk" }, + { 1, "hf iclass loclass" }, + { 1, "hf iclass lookup" }, + { 0, "hf iclass sim" }, + { 0, "hf iclass eload" }, + { 0, "hf iclass esave" }, + { 0, "hf iclass eview" }, + { 1, "hf iclass configcard" }, + { 1, "hf iclass calcnewkey" }, + { 1, "hf iclass encode" }, + { 1, "hf iclass encrypt" }, + { 1, "hf iclass decrypt" }, + { 1, "hf iclass managekeys" }, + { 1, "hf iclass permutekey" }, + { 1, "hf iclass view" }, + { 1, "hf legic help" }, + { 0, "hf legic dump" }, + { 0, "hf legic info" }, + { 1, "hf legic list" }, + { 0, "hf legic rdbl" }, + { 0, "hf legic reader" }, + { 0, "hf legic restore" }, + { 0, "hf legic wipe" }, + { 0, "hf legic wrbl" }, + { 0, "hf legic sim" }, + { 0, "hf legic eload" }, + { 0, "hf legic esave" }, + { 0, "hf legic eview" }, + { 1, "hf legic crc" }, + { 1, "hf legic view" }, + { 1, "hf lto help" }, + { 0, "hf lto dump" }, + { 0, "hf lto info" }, + { 1, "hf lto list" }, + { 0, "hf lto rdbl" }, + { 0, "hf lto reader" }, + { 0, "hf lto restore" }, + { 0, "hf lto wrbl" }, + { 1, "hf mf help" }, + { 1, "hf mf list" }, + { 0, "hf mf darkside" }, + { 0, "hf mf nested" }, + { 1, "hf mf hardnested" }, + { 0, "hf mf staticnested" }, + { 0, "hf mf autopwn" }, + { 0, "hf mf nack" }, + { 0, "hf mf chk" }, + { 0, "hf mf fchk" }, + { 1, "hf mf decrypt" }, + { 0, "hf mf supercard" }, + { 0, "hf mf auth4" }, + { 1, "hf mf acl" }, + { 0, "hf mf dump" }, + { 1, "hf mf mad" }, + { 0, "hf mf personalize" }, + { 0, "hf mf rdbl" }, + { 0, "hf mf rdsc" }, + { 0, "hf mf restore" }, + { 0, "hf mf setmod" }, + { 1, "hf mf value" }, + { 1, "hf mf view" }, + { 0, "hf mf wipe" }, + { 0, "hf mf wrbl" }, + { 0, "hf mf sim" }, + { 0, "hf mf ecfill" }, + { 0, "hf mf eclr" }, + { 0, "hf mf egetblk" }, + { 0, "hf mf egetsc" }, + { 0, "hf mf ekeyprn" }, + { 0, "hf mf eload" }, + { 0, "hf mf esave" }, + { 0, "hf mf esetblk" }, + { 0, "hf mf eview" }, + { 0, "hf mf cgetblk" }, + { 0, "hf mf cgetsc" }, + { 0, "hf mf cload" }, + { 0, "hf mf csave" }, + { 0, "hf mf csetblk" }, + { 0, "hf mf csetuid" }, + { 0, "hf mf cview" }, + { 0, "hf mf cwipe" }, + { 0, "hf mf gen3uid" }, + { 0, "hf mf gen3blk" }, + { 0, "hf mf gen3freeze" }, + { 0, "hf mf gview" }, + { 0, "hf mf ndefformat" }, + { 0, "hf mf ndefread" }, + { 1, "hf mfp help" }, + { 0, "hf mfp info" }, + { 0, "hf mfp wrp" }, + { 0, "hf mfp initp" }, + { 0, "hf mfp commitp" }, + { 0, "hf mfp auth" }, + { 0, "hf mfp rdbl" }, + { 0, "hf mfp rdsc" }, + { 0, "hf mfp wrbl" }, + { 0, "hf mfp chk" }, + { 0, "hf mfp mad" }, + { 0, "hf mfp ndefread" }, + { 1, "hf mfu help" }, + { 1, "hf mfu keygen" }, + { 1, "hf mfu pwdgen" }, + { 0, "hf mfu otptear" }, + { 0, "hf mfu cauth" }, + { 0, "hf mfu dump" }, + { 0, "hf mfu info" }, + { 0, "hf mfu ndefread" }, + { 0, "hf mfu rdbl" }, + { 0, "hf mfu restore" }, + { 1, "hf mfu view" }, + { 0, "hf mfu wrbl" }, + { 0, "hf mfu eload" }, + { 0, "hf mfu eview" }, + { 0, "hf mfu sim" }, + { 0, "hf mfu setpwd" }, + { 0, "hf mfu setuid" }, + { 1, "hf mfdes help" }, + { 0, "hf mfdes info" }, + { 0, "hf mfdes getuid" }, + { 0, "hf mfdes default" }, + { 0, "hf mfdes auth" }, + { 0, "hf mfdes chk" }, + { 0, "hf mfdes detect" }, + { 0, "hf mfdes freemem" }, + { 0, "hf mfdes setconfig" }, + { 0, "hf mfdes formatpicc" }, + { 1, "hf mfdes list" }, + { 0, "hf mfdes mad" }, + { 0, "hf mfdes lsapp" }, + { 0, "hf mfdes getaids" }, + { 0, "hf mfdes getappnames" }, + { 0, "hf mfdes bruteaid" }, + { 0, "hf mfdes createapp" }, + { 0, "hf mfdes deleteapp" }, + { 0, "hf mfdes selectapp" }, + { 0, "hf mfdes changekey" }, + { 0, "hf mfdes chkeysettings" }, + { 0, "hf mfdes getkeysettings" }, + { 0, "hf mfdes getkeyversions" }, + { 0, "hf mfdes getfileids" }, + { 0, "hf mfdes getfileisoids" }, + { 0, "hf mfdes lsfiles" }, + { 0, "hf mfdes dump" }, + { 0, "hf mfdes createfile" }, + { 0, "hf mfdes createvaluefile" }, + { 0, "hf mfdes createrecordfile" }, + { 0, "hf mfdes createmacfile" }, + { 0, "hf mfdes deletefile" }, + { 0, "hf mfdes getfilesettings" }, + { 0, "hf mfdes chfilesettings" }, + { 0, "hf mfdes read" }, + { 0, "hf mfdes write" }, + { 0, "hf mfdes value" }, + { 0, "hf mfdes clearrecfile" }, + { 1, "hf mfdes test" }, + { 1, "hf ntag424 help" }, + { 0, "hf ntag424 info" }, + { 0, "hf ntag424 sdm" }, + { 1, "hf ntag424 view" }, + { 1, "hf seos help" }, + { 0, "hf seos info" }, + { 1, "hf seos list" }, + { 1, "hf st25ta help" }, + { 0, "hf st25ta info" }, + { 1, "hf st25ta list" }, + { 1, "hf st25ta ndefread" }, + { 0, "hf st25ta protect" }, + { 0, "hf st25ta pwd" }, + { 0, "hf st25ta sim" }, + { 1, "hf thinfilm help" }, + { 0, "hf thinfilm info" }, + { 1, "hf thinfilm list" }, + { 0, "hf thinfilm sim" }, + { 1, "hf topaz help" }, + { 0, "hf topaz dump" }, + { 1, "hf topaz list" }, + { 0, "hf topaz info" }, + { 0, "hf topaz reader" }, + { 0, "hf topaz sim" }, + { 0, "hf topaz sniff" }, + { 0, "hf topaz raw" }, + { 0, "hf topaz rdbl" }, + { 1, "hf topaz view" }, + { 0, "hf topaz wrbl" }, + { 1, "hf texkom help" }, + { 0, "hf texkom reader" }, + { 0, "hf texkom sim" }, + { 1, "hf xerox help" }, + { 0, "hf xerox info" }, + { 0, "hf xerox reader" }, + { 0, "hf xerox dump" }, + { 1, "hf waveshare help" }, + { 0, "hf waveshare loadbmp" }, + { 1, "hw help" }, + { 0, "hw break" }, + { 1, "hw connect" }, + { 0, "hw dbg" }, + { 0, "hw detectreader" }, + { 0, "hw fpgaoff" }, + { 0, "hw lcd" }, + { 0, "hw lcdreset" }, + { 0, "hw ping" }, + { 0, "hw readmem" }, + { 0, "hw reset" }, + { 0, "hw setlfdivisor" }, + { 0, "hw setmux" }, + { 0, "hw standalone" }, + { 0, "hw status" }, + { 0, "hw tearoff" }, + { 0, "hw tia" }, + { 0, "hw tune" }, + { 1, "hw version" }, + { 1, "lf help" }, + { 0, "lf config" }, + { 0, "lf cmdread" }, + { 0, "lf read" }, + { 1, "lf search" }, + { 0, "lf sim" }, + { 0, "lf simask" }, + { 0, "lf simfsk" }, + { 0, "lf simpsk" }, + { 0, "lf simbidir" }, + { 0, "lf sniff" }, + { 0, "lf tune" }, + { 1, "lf awid help" }, + { 1, "lf awid demod" }, + { 0, "lf awid reader" }, + { 0, "lf awid clone" }, + { 0, "lf awid sim" }, + { 0, "lf awid brute" }, + { 0, "lf awid watch" }, + { 1, "lf cotag help" }, + { 1, "lf cotag demod" }, + { 0, "lf cotag reader" }, + { 1, "lf destron help" }, + { 1, "lf destron demod" }, + { 0, "lf destron reader" }, + { 0, "lf destron clone" }, + { 0, "lf destron sim" }, + { 1, "lf em help" }, + { 1, "lf em 410x help" }, + { 1, "lf em 410x demod" }, + { 0, "lf em 410x reader" }, + { 0, "lf em 410x sim" }, + { 0, "lf em 410x brute" }, + { 0, "lf em 410x watch" }, + { 0, "lf em 410x spoof" }, + { 0, "lf em 410x clone" }, + { 1, "lf em 4x05 help" }, + { 0, "lf em 4x05 brute" }, + { 0, "lf em 4x05 chk" }, + { 1, "lf em 4x05 demod" }, + { 0, "lf em 4x05 dump" }, + { 0, "lf em 4x05 info" }, + { 0, "lf em 4x05 read" }, + { 1, "lf em 4x05 sniff" }, + { 0, "lf em 4x05 unlock" }, + { 0, "lf em 4x05 wipe" }, + { 0, "lf em 4x05 write" }, + { 1, "lf em 4x50 help" }, + { 0, "lf em 4x50 brute" }, + { 0, "lf em 4x50 chk" }, + { 0, "lf em 4x50 dump" }, + { 0, "lf em 4x50 info" }, + { 0, "lf em 4x50 login" }, + { 0, "lf em 4x50 rdbl" }, + { 0, "lf em 4x50 reader" }, + { 0, "lf em 4x50 restore" }, + { 0, "lf em 4x50 wrbl" }, + { 0, "lf em 4x50 wrpwd" }, + { 0, "lf em 4x50 wipe" }, + { 0, "lf em 4x50 eload" }, + { 0, "lf em 4x50 esave" }, + { 0, "lf em 4x50 eview" }, + { 0, "lf em 4x50 sim" }, + { 1, "lf em 4x70 help" }, + { 0, "lf em 4x70 info" }, + { 0, "lf em 4x70 write" }, + { 0, "lf em 4x70 unlock" }, + { 0, "lf em 4x70 auth" }, + { 0, "lf em 4x70 writepin" }, + { 0, "lf em 4x70 writekey" }, + { 1, "lf fdxb help" }, + { 1, "lf fdxb demod" }, + { 0, "lf fdxb reader" }, + { 0, "lf fdxb clone" }, + { 0, "lf fdxb sim" }, + { 1, "lf gallagher help" }, + { 1, "lf gallagher demod" }, + { 0, "lf gallagher reader" }, + { 0, "lf gallagher clone" }, + { 0, "lf gallagher sim" }, + { 1, "lf gproxii help" }, + { 1, "lf gproxii demod" }, + { 0, "lf gproxii reader" }, + { 0, "lf gproxii clone" }, + { 0, "lf gproxii sim" }, + { 1, "lf hid help" }, + { 1, "lf hid demod" }, + { 0, "lf hid reader" }, + { 0, "lf hid clone" }, + { 0, "lf hid sim" }, + { 0, "lf hid brute" }, + { 0, "lf hid watch" }, + { 1, "lf hitag help" }, + { 0, "lf hitag eload" }, + { 1, "lf hitag list" }, + { 0, "lf hitag info" }, + { 0, "lf hitag reader" }, + { 0, "lf hitag sim" }, + { 0, "lf hitag sniff" }, + { 0, "lf hitag writer" }, + { 0, "lf hitag dump" }, + { 0, "lf hitag cc" }, + { 1, "lf idteck help" }, + { 1, "lf idteck demod" }, + { 0, "lf idteck reader" }, + { 0, "lf idteck clone" }, + { 0, "lf idteck sim" }, + { 1, "lf indala help" }, + { 1, "lf indala demod" }, + { 1, "lf indala altdemod" }, + { 0, "lf indala reader" }, + { 0, "lf indala clone" }, + { 0, "lf indala sim" }, + { 1, "lf io help" }, + { 1, "lf io demod" }, + { 0, "lf io reader" }, + { 0, "lf io clone" }, + { 0, "lf io sim" }, + { 0, "lf io watch" }, + { 1, "lf jablotron help" }, + { 1, "lf jablotron demod" }, + { 0, "lf jablotron reader" }, + { 0, "lf jablotron clone" }, + { 0, "lf jablotron sim" }, + { 1, "lf keri help" }, + { 1, "lf keri demod" }, + { 0, "lf keri reader" }, + { 0, "lf keri clone" }, + { 0, "lf keri sim" }, + { 1, "lf motorola help" }, + { 1, "lf motorola demod" }, + { 0, "lf motorola reader" }, + { 0, "lf motorola clone" }, + { 0, "lf motorola sim" }, + { 1, "lf nedap help" }, + { 1, "lf nedap demod" }, + { 0, "lf nedap reader" }, + { 0, "lf nedap clone" }, + { 0, "lf nedap sim" }, + { 1, "lf nexwatch help" }, + { 1, "lf nexwatch demod" }, + { 0, "lf nexwatch reader" }, + { 0, "lf nexwatch clone" }, + { 0, "lf nexwatch sim" }, + { 1, "lf noralsy help" }, + { 1, "lf noralsy demod" }, + { 0, "lf noralsy reader" }, + { 0, "lf noralsy clone" }, + { 0, "lf noralsy sim" }, + { 1, "lf pac help" }, + { 1, "lf pac demod" }, + { 0, "lf pac reader" }, + { 0, "lf pac clone" }, + { 0, "lf pac sim" }, + { 1, "lf paradox help" }, + { 1, "lf paradox demod" }, + { 0, "lf paradox reader" }, + { 0, "lf paradox clone" }, + { 0, "lf paradox sim" }, + { 1, "lf pcf7931 help" }, + { 0, "lf pcf7931 reader" }, + { 0, "lf pcf7931 write" }, + { 1, "lf pcf7931 config" }, + { 1, "lf presco help" }, + { 1, "lf presco demod" }, + { 0, "lf presco reader" }, + { 0, "lf presco clone" }, + { 0, "lf presco sim" }, + { 1, "lf pyramid help" }, + { 1, "lf pyramid demod" }, + { 0, "lf pyramid reader" }, + { 0, "lf pyramid clone" }, + { 0, "lf pyramid sim" }, + { 1, "lf securakey help" }, + { 1, "lf securakey demod" }, + { 0, "lf securakey reader" }, + { 0, "lf securakey clone" }, + { 0, "lf securakey sim" }, + { 1, "lf ti help" }, + { 1, "lf ti demod" }, + { 0, "lf ti reader" }, + { 0, "lf ti write" }, + { 1, "lf t55xx help" }, + { 0, "lf t55xx clonehelp" }, + { 1, "lf t55xx config" }, + { 0, "lf t55xx dangerraw" }, + { 1, "lf t55xx detect" }, + { 0, "lf t55xx deviceconfig" }, + { 0, "lf t55xx dump" }, + { 1, "lf t55xx info" }, + { 0, "lf t55xx p1detect" }, + { 0, "lf t55xx read" }, + { 0, "lf t55xx resetread" }, + { 0, "lf t55xx restore" }, + { 1, "lf t55xx trace" }, + { 0, "lf t55xx wakeup" }, + { 0, "lf t55xx write" }, + { 0, "lf t55xx bruteforce" }, + { 0, "lf t55xx chk" }, + { 0, "lf t55xx protect" }, + { 0, "lf t55xx recoverpw" }, + { 1, "lf t55xx sniff" }, + { 0, "lf t55xx special" }, + { 0, "lf t55xx wipe" }, + { 1, "lf viking help" }, + { 1, "lf viking demod" }, + { 0, "lf viking reader" }, + { 0, "lf viking clone" }, + { 0, "lf viking sim" }, + { 1, "lf visa2000 help" }, + { 1, "lf visa2000 demod" }, + { 0, "lf visa2000 reader" }, + { 0, "lf visa2000 clone" }, + { 0, "lf visa2000 sim" }, + { 1, "mem help" }, + { 0, "mem baudrate" }, + { 0, "mem dump" }, + { 0, "mem info" }, + { 0, "mem load" }, + { 0, "mem wipe" }, + { 1, "mem spiffs help" }, + { 0, "mem spiffs copy" }, + { 0, "mem spiffs check" }, + { 0, "mem spiffs dump" }, + { 0, "mem spiffs info" }, + { 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" }, + { 0, "mem spiffs view" }, + { 0, "mem spiffs wipe" }, + { 1, "nfc help" }, + { 1, "nfc decode" }, + { 0, "nfc type1 read" }, + { 1, "nfc type1 help" }, + { 0, "nfc type2 read" }, + { 1, "nfc type2 help" }, + { 0, "nfc type4a read" }, + { 0, "nfc type4a st25taread" }, + { 1, "nfc type4a help" }, + { 0, "nfc type4b read" }, + { 1, "nfc type4b help" }, + { 0, "nfc mf cread" }, + { 0, "nfc mf cformat" }, + { 0, "nfc mf pread" }, + { 1, "nfc mf help" }, + { 0, "nfc barcode read" }, + { 0, "nfc barcode sim" }, + { 1, "nfc barcode help" }, + { 1, "smart help" }, + { 1, "smart list" }, + { 0, "smart info" }, + { 0, "smart reader" }, + { 0, "smart raw" }, + { 1, "smart upgrade" }, + { 0, "smart setclock" }, + { 0, "smart brute" }, + { 1, "script help" }, + { 1, "script list" }, + { 1, "script run" }, + { 1, "trace help" }, + { 1, "trace extract" }, + { 1, "trace list" }, + { 1, "trace load" }, + { 1, "trace save" }, + { 1, "usart help" }, + { 0, "usart btpin" }, + { 0, "usart btfactory" }, + { 0, "usart tx" }, + { 0, "usart rx" }, + { 0, "usart txrx" }, + { 0, "usart txhex" }, + { 0, "usart rxhex" }, + { 0, "usart config" }, + { 1, "wiegand help" }, + { 1, "wiegand list" }, + { 1, "wiegand encode" }, + { 1, "wiegand decode" }, {0, NULL} }; @@ -743,4 +760,4 @@ const static vocabulory_t vocabulory[] = { } #endif -#endif +#endif \ No newline at end of file diff --git a/doc/commands.json b/doc/commands.json index 7b0472464..27eb64235 100644 --- a/doc/commands.json +++ b/doc/commands.json @@ -484,9 +484,11 @@ "offline": true, "options": [ "-h, --help This help", - "-f, --file file to load" + "-f, --file file to load", + "-b, --bin binary file", + "-n, --no-fix Load data from file without any transformations" ], - "usage": "data load [-h] -f " + "usage": "data load [-hbn] -f " }, "data ltrim": { "command": "data ltrim", @@ -631,7 +633,7 @@ "options": [ "-h, --help This help", "-n num of samples (512 - 40000)", - "-v, --verbose verbose" + "-v, --verbose verbose output" ], "usage": "data samples [-hv] [-n ]" }, @@ -1223,7 +1225,7 @@ "hf 14a sim -t 4 -> ISO/IEC 14443-4", "hf 14a sim -t 5 -> MIFARE Tnp3xxx", "hf 14a sim -t 6 -> MIFARE Mini", - "hf 14a sim -t 7 -> AMIIBO (NTAG 215), pack 0x8080", + "hf 14a sim -t 7 -> Amiibo (NTAG 215), pack 0x8080", "hf 14a sim -t 8 -> MIFARE Classic 4k", "hf 14a sim -t 9 -> FM11RF005SH Shanghai Metro", "hf 14a sim -t 10 -> ST25TA IKEA Rothult" @@ -1232,7 +1234,7 @@ "options": [ "-h, --help This help", "-t, --type <1-10> Simulation type to use", - "-u, --uid 4, 7 or 10 byte UID", + "-u, --uid <4|7|10> hex bytes UID", "-n, --num Exit simulation after blocks have been read by reader. 0 = infinite", "-x Performs the 'reader attack', nr/ar attack against a reader", "--sk Fill simulator keys from found keys", @@ -1311,7 +1313,7 @@ "options": [ "-h, --help This help", "-s, --aidsearch checks if AIDs from aidlist.json is present on the card and prints information about found AIDs", - "-v, --verbose verbose" + "-v, --verbose verbose output" ], "usage": "hf 14b info [-hsv]" }, @@ -1369,7 +1371,7 @@ "-c, --crc calculate and append CRC", "-r do not read response from card", "-t, --timeout timeout in ms", - "-v, --verbose verbose", + "-v, --verbose verbose output", "-d, --data data, bytes to send" ], "usage": "hf 14b raw [-hkscrv] [--sr] [--cts] [--xrx] [-t ] [-d ]" @@ -1391,15 +1393,16 @@ "command": "hf 14b reader", "description": "Act as a 14443B reader to identify a tag", "notes": [ - "hf 14b reader" + "hf 14b reader", + "hf 14b reader -@ -> continuous reader mode" ], "offline": false, "options": [ "-h, --help This help", - "-s, --silent silent (no messages)", + "-v, --verbose verbose output", "-@ optional - continuous reader mode" ], - "usage": "hf 14b reader [-hs@]" + "usage": "hf 14b reader [-hv@]" }, "hf 14b sim": { "command": "hf 14b sim", @@ -1505,6 +1508,49 @@ ], "usage": "hf 15 dump [-h*2o] [-u ] [--ua] [-f ]" }, + "hf 15 eload": { + "command": "hf 15 eload", + "description": "Load memory image from file to be used with 'hf 15 sim'", + "notes": [ + "hf 15 eload -f hf-15-01020304.bin" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-f, --file filename of image" + ], + "usage": "hf 15 eload [-h] -f " + }, + "hf 15 esave": { + "command": "hf 15 esave", + "description": "Save emulator memory into three files (BIN/EML/JSON)", + "notes": [ + "hf 15 esave -f hf-15-01020304hf 15 esave -b 8 -c 42 -f hf-15-01020304" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-f, --file filename of dump", + "-b, --blocksize block size, defaults to 4", + "-c, --count number of blocks to export, defaults to all" + ], + "usage": "hf 15 esave [-h] -f [-b ] [-c ]" + }, + "hf 15 eview": { + "command": "hf 15 eview", + "description": "It displays emulator memory", + "notes": [ + "hf 15 eview", + "hf 15 eview -b 8 -c 60" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-b, --blocksize block size, defaults to 4", + "-c, --count number of blocks to display, defaults to all" + ], + "usage": "hf 15 eview [-h] [-b ] [-c ]" + }, "hf 15 findafi": { "command": "hf 15 findafi", "description": "This command attempts to brute force AFI of an ISO-15693 tag Estimated execution time is around 2 minutes", @@ -1680,9 +1726,10 @@ "offline": false, "options": [ "-h, --help This help", - "-u, --uid <8b hex> UID eg E011223344556677" + "-u, --uid <8b hex> UID eg E011223344556677", + "-b, --blocksize block size, defaults to 4" ], - "usage": "hf 15 sim [-h] -u <8b hex>" + "usage": "hf 15 sim [-h] -u <8b hex> [-b ]" }, "hf 15 slixdisable": { "command": "hf 15 slixdisable", @@ -2133,9 +2180,10 @@ "-d, --dateofbirth date of birth in YYMMDD format", "-e, --expiry expiry in YYMMDD format", "-m, --mrz <[0-9A-Z<]> 2nd line of MRZ, 44 chars (passports only)", - "--path display info from offline dump stored in dirpath" + "--path display info from offline dump stored in dirpath", + "-i, --images show images" ], - "usage": "hf emrtd info [-h] [-n ] [-d ] [-e ] [-m <[0-9A-Z<]>] [--path ]" + "usage": "hf emrtd info [-hi] [-n ] [-d ] [-e ] [-m <[0-9A-Z<]>] [--path ]" }, "hf emrtd list": { "command": "hf emrtd list", @@ -2215,7 +2263,7 @@ "--sn number of service, 1 byte", "--scl service code list, 2 bytes", "-k, --key 3des key, 16 bytes", - "-v, --verbose verbose helptext" + "-v, --verbose verbose output" ], "usage": "hf felica auth1 [-hv] [--an ] [--acl ] [-i ] [--sn ] [--scl ] [-k ]" }, @@ -2232,7 +2280,7 @@ "-i set custom IDm", "-c, --cc M3c card challenge, 8 bytes", "-k, --key 3des M3c decryption key, 16 bytes", - "-v, --verbose verbose helptext" + "-v, --verbose verbose output" ], "usage": "hf felica auth2 [-hv] [-i ] [-c ] [-k ]" }, @@ -2357,7 +2405,7 @@ "-h, --help This help", "-i set custom IDm", "-r set custom reserve", - "-v, --verbose verbose helptext" + "-v, --verbose verbose output" ], "usage": "hf felica resetmode [-hv] [-i ] [-r ]" }, @@ -2405,7 +2453,7 @@ "-h, --help This help", "-i set custom IDm", "-r set custom reserve", - "-v, --verbose verbose helptext" + "-v, --verbose verbose output" ], "usage": "hf felica rqspecver [-hv] [-i ] [-r ]" }, @@ -2586,6 +2634,86 @@ ], "usage": "hf fido reg [-havt] [-f ] [--cp ] [--ap ] [--cpx ] [--apx ]" }, + "hf fudan dump": { + "command": "hf fudan dump", + "description": "Dump FUDAN tag to binary file If no given, UID will be used as filename", + "notes": [ + "hf fudan dump -f mydump -> dump using filename" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-f, --file filename of dump" + ], + "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", + "notes": [ + "hf fudan rdbl --blk 0 -k FFFFFFFFFFFF", + "hf fudan rdbl --blk 3 -v" + ], + "offline": false, + "options": [ + "-h, --help This help", + "--blk block number", + "-k, --key key, 6 hex bytes", + "-v, --verbose verbose output" + ], + "usage": "hf fudan rdbl [-hv] --blk [-k ]" + }, + "hf fudan reader": { + "command": "hf fudan reader", + "description": "Read a fudan tag", + "notes": [ + "hf fudan reader", + "hf fudan reader -@ -> continuous reader mode" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-v, --verbose verbose output", + "-@ optional - continuous reader mode" + ], + "usage": "hf fudan reader [-hv@]" + }, + "hf fudan view": { + "command": "hf fudan view", + "description": "Print a FUDAN dump file (bin/eml/json)", + "notes": [ + "hf fudan view -f hf-fudan-01020304-dump.bin" + ], + "offline": true, + "options": [ + "-h, --help This help", + "-f, --file filename of dump" + ], + "usage": "hf fudan view [-h] -f " + }, + "hf fudan wrbl": { + "command": "hf fudan wrbl", + "description": "Write fudan block with 4 hex bytes of data", + "notes": [ + "hf mf wrbl --blk 1 -k FFFFFFFFFFFF -d 01020304" + ], + "offline": false, + "options": [ + "-h, --help This help", + "--blk block number", + "-k, --key key, 6 hex bytes", + "-d, --data bytes to write, 4 hex bytes" + ], + "usage": "hf fudan wrbl [-h] --blk [-k ] [-d ]" + }, "hf gallagher clone": { "command": "hf gallagher clone", "description": "Clone Gallagher credentials to a writable DESFire card Specify site key is required if using non-default key Key, lengths for the different crypto: DES 8 bytes 2TDEA or AES 16 bytes 3TDEA 24 bytes AID, default finds lowest available in range 0x??81F4, where ?? >= 0x20.", @@ -2612,6 +2740,19 @@ ], "usage": "hf gallagher clone [-hv] [-n ] [-t ] [-k ] --rc --fc --cn --il [--aid ] [--sitekey ] [--cadkey ] [--nocadupdate] [--noappcreate] [--apdu]" }, + "hf gallagher decode": { + "command": "hf gallagher decode", + "description": "Decode Gallagher credential block Credential block can be specified with or without the bitwise inverse.", + "notes": [ + "hf gallagher decode --data A3B4B0C151B0A31B" + ], + "offline": true, + "options": [ + "-h, --help This help", + "--data Credential block (8 or 16 bytes)" + ], + "usage": "hf gallagher decode [-h] --data " + }, "hf gallagher delete": { "command": "hf gallagher delete", "description": "Delete Gallagher application from a DESFire card Specify site key is required if using non-default key", @@ -2650,7 +2791,7 @@ }, "hf gallagher help": { "command": "hf gallagher help", - "description": "help This help diversifykey Diversify Gallagher key", + "description": "help This help diversifykey Diversify Gallagher key decode Decode Gallagher credential block", "notes": [], "offline": true, "options": [], @@ -2676,7 +2817,7 @@ }, "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... } 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... } thinfilm { Thinfilm RFIDs... } topaz { TOPAZ (NFC Type 1) RFIDs... } texkom { Texkom 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", + "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... } thinfilm { Thinfilm RFIDs... } topaz { TOPAZ (NFC Type 1) RFIDs... } texkom { Texkom 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": [], @@ -2768,9 +2909,10 @@ "--ci credit key index to select key from memory 'hf iclass managekeys'", "--elite elite computations applied to key", "--raw raw, the key is interpreted as raw block 3/4", - "--nr replay of NR/MAC" + "--nr replay of NR/MAC", + "-z, --dense dense dump output style" ], - "usage": "hf iclass dump [-h] [-f ] [-k ] [--ki ] [--credit ] [--ci ] [--elite] [--raw] [--nr]" + "usage": "hf iclass dump [-hz] [-f ] [-k ] [--ki ] [--credit ] [--ci ] [--elite] [--raw] [--nr]" }, "hf iclass eload": { "command": "hf iclass eload", @@ -2853,9 +2995,10 @@ "options": [ "-h, --help This help", "-s, --size <256|2048> number of bytes to save (default 256)", - "-v, --verbose verbose output" + "-v, --verbose verbose output", + "-z, --dense dense dump output style" ], - "usage": "hf iclass eview [-hv] [-s <256|2048>]" + "usage": "hf iclass eview [-hvz] [-s <256|2048>]" }, "hf iclass help": { "command": "hf iclass help", @@ -3072,9 +3215,10 @@ "-f, --file filename of dump (bin/eml/json)", "--first Begin printing from this block (default block 6)", "--last End printing at this block (default 0, ALL)", - "-v, --verbose verbose output" + "-v, --verbose verbose output", + "-z, --dense dense dump output style" ], - "usage": "hf iclass view [-hv] -f [--first ] [--last ]" + "usage": "hf iclass view [-hvz] -f [--first ] [--last ]" }, "hf iclass wrbl": { "command": "hf iclass wrbl", @@ -3091,13 +3235,14 @@ "--ki Key index to select key from memory 'hf iclass managekeys'", "-b, --block The block number to read", "-d, --data data to write as 8 hex bytes", + "-m, --mac replay mac data (4 hex bytes)", "--credit key is assumed to be the credit key", "--elite elite computations applied to key", "--raw no computations applied to key", "--nr replay of NR/MAC", "-v, --verbose verbose output" ], - "usage": "hf iclass wrbl [-hv] [-k ] [--ki ] -b -d [--credit] [--elite] [--raw] [--nr]" + "usage": "hf iclass wrbl [-hv] [-k ] [--ki ] -b -d [-m ] [--credit] [--elite] [--raw] [--nr]" }, "hf jooki clone": { "command": "hf jooki clone", @@ -3575,6 +3720,19 @@ ], "usage": "hf lto rdbl [-h] [--first ] [--last ]" }, + "hf lto reader": { + "command": "hf lto reader", + "description": "Act as a LTO-CM reader. Look for LTO-CM tags until Enter or the pm3 button is pressed", + "notes": [ + "hf lto reader -@ -> continuous reader mode" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-@ optional - continuous reader mode" + ], + "usage": "hf lto reader [-h@]" + }, "hf lto restore": { "command": "hf lto restore", "description": "Restore data from dumpfile to LTO tag", @@ -3646,7 +3804,7 @@ "-a Input key A (def)", "-b Input key B", "-f, --file filename of dictionary", - "-s, --slow Slower acquisition (required by some non standard cards)", + "--slow Slower acquisition (required by some non standard cards)", "-l, --legacy legacy mode (use the slow `hf mf chk`)", "-v, --verbose verbose output (statistics)", "--mini MIFARE Classic Mini / S20", @@ -3660,7 +3818,7 @@ "--i2 AVX2", "--i5 AVX512" ], - "usage": "hf mf autopwn [-habslv] [-k ] [-s ] [-f ] [--mini] [--1k] [--2k] [--4k] [--in] [--im] [--is] [--ia] [--i2] [--i5]" + "usage": "hf mf autopwn [-hablv] [-k ] [-s ] [-f ] [--slow] [--mini] [--1k] [--2k] [--4k] [--in] [--im] [--is] [--ia] [--i2] [--i5]" }, "hf mf cgetblk": { "command": "hf mf cgetblk", @@ -4143,7 +4301,7 @@ }, "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 value Value blocks view Display content from tag dump file", + "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": [], @@ -4178,7 +4336,7 @@ "hf mf mad --aid e103 -k ffffffffffff -b -> shows NDEF data if exists. read card with custom key and key B", "hf mf mad --dch -k ffffffffffff -> decode CardHolder information" ], - "offline": false, + "offline": true, "options": [ "-h, --help This help", "-v, --verbose show technical data", @@ -4204,6 +4362,27 @@ ], "usage": "hf mf nack [-hv]" }, + "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", + "notes": [ + "hf mf ndefformat --mini -> MIFARE Mini", + "hf mf ndefformat --1k -> MIFARE Classic 1k", + "hf mf ndefformat --2k -> MIFARE 2k", + "hf mf ndefformat --4k -> MIFARE 4k", + "hf mf ndefformat --keys hf-mf-066C8B78-key.bin -> MIFARE 1k with keys from specified file" + ], + "offline": false, + "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", "description": "Prints NFC Data Exchange Format (NDEF)", @@ -4337,7 +4516,7 @@ }, "hf mf sim": { "command": "hf mf sim", - "description": "Simulate MIFARE Classic card", + "description": "Simulate MIFARE Classic family type based upon ISO/IEC 14443 type A tag with 4,7 or 10 byte UID from emulator memory. See `hf mf eload` first. The UID from emulator memory will be used if not specified.", "notes": [ "hf mf sim --mini -> MIFARE Mini", "hf mf sim --1k -> MIFARE Classic 1k (default)", @@ -4350,7 +4529,7 @@ "offline": false, "options": [ "-h, --help This help", - "-u, --uid UID 4,7 or 10bytes. If not specified, the UID 4b/7b from emulator memory will be used", + "-u, --uid <4|7|10> hex bytes UID", "--mini MIFARE Classic Mini / S20", "--1k MIFARE Classic 1k / S50", "--2k MIFARE Classic/Plus 2k", @@ -5347,9 +5526,10 @@ }, "hf mfdes lsfiles": { "command": "hf mfdes lsfiles", - "description": "Show file list. Master key needs to be provided or flag --no-auth set (depend on cards settings).", + "description": "This commands List files inside application AID / ISOID. Master key needs to be provided or flag --no-auth set (depend on cards settings).", "notes": [ - "hf mfdes lsfiles --aid 123456 -> show file list for: app=123456 with defaults from `default` commandhf mfdes lsfiles --isoid df01 --no-auth -> show files from desfire light" + "hf mfdes lsfiles --aid 123456 -> AID 123456, list files using `default` command creds", + "hf mfdes lsfiles --isoid df01 --no-auth -> list files for DESFire light" ], "offline": false, "options": [ @@ -5567,7 +5747,7 @@ "notes": [ "In the mode with CommitReaderID to decode previous reader id command needs to read transaction counter via dump/read command and specify --trkey", "", - "hf mfdes write --aid 123456 --fid 01 -d 01020304 -> write file: app=123456, file=01, offset=0, get file type from card. use default channel settings from `default` command", + "hf mfdes write --aid 123456 --fid 01 -d 01020304 -> AID 123456, file=01, offset=0, get file type from card. use default channel settings from `default` command", "hf mfdes write --aid 123456 --fid 01 --type data -d 01020304 --0ffset 000100 -> write data to std file with offset 0x100", "hf mfdes write --aid 123456 --fid 01 --type data -d 01020304 --commit -> write data to backup file with commit", "hf mfdes write --aid 123456 --fid 01 --type value -d 00000001 -> increment value file", @@ -5805,7 +5985,7 @@ "offline": false, "options": [ "-h, --help This help", - "-v, --verbose Verbose mode", + "-v, --verbose Verbose output", "--ki Key number, 2 hex bytes", "--key Key, 16 hex bytes" ], @@ -6037,10 +6217,11 @@ }, "hf mfu sim": { "command": "hf mfu sim", - "description": "Simulate MIFARE Ultralight family type based upon ISO/IEC 14443 type A tag with 4,7 or 10 byte UID from emulator memory. See `hf mfu eload` first. See `hf 14a sim -h` to see available types. You want 2 or 7 usually.", + "description": "Simulate MIFARE Ultralight family type based upon ISO/IEC 14443 type A tag with 4,7 or 10 byte UID from emulator memory. See `hf mfu eload` first. The UID from emulator memory will be used if not specified. See `hf 14a sim -h` to see available types. You want 2 or 7 usually.", "notes": [ "hf mfu sim -t 2 --uid 11223344556677 -> MIFARE Ultralight", - "hf mfu sim -t 7 --uid 11223344556677 -n 5 -> AMIIBO (NTAG 215), pack 0x8080" + "hf mfu sim -t 7 --uid 11223344556677 -n 5 -> Amiibo (NTAG 215), pack 0x8080", + "hf mfu sim -t 7 -> Amiibo (NTAG 215), pack 0x8080" ], "offline": false, "options": [ @@ -6209,9 +6390,11 @@ "options": [ "-h, --help This help", "--sp skip sample pairs", - "--st skip number of triggers" + "--st skip number of triggers", + "--smode [none|drop|min|max|avg] Skip mode. It switches on the function that applies to several samples before they saved to memory", + "--sratio Skip ratio. It applied the function above to (ratio * 2) samples. For ratio = 1 it 2 samples." ], - "usage": "hf sniff [-h] [--sp ] [--st ]" + "usage": "hf sniff [-h] [--sp ] [--st ] [--smode [none|drop|min|max|avg]] [--sratio ]" }, "hf st25ta help": { "command": "hf st25ta help", @@ -6335,17 +6518,17 @@ "offline": false, "options": [ "-h, --help This help", + "-1 Use data from Graphbuffer", "-v, --verbose Verbose scan and output", "-@ optional - continuous reader mode" ], - "usage": "hf texkom reader [-hv@]" + "usage": "hf texkom reader [-h1v@]" }, "hf texkom sim": { "command": "hf texkom sim", "description": "Simulate a texkom tag", "notes": [ "hf texkom sim", - "", "hf texkom sim --raw FFFF638C7DC45553 -> simulate TK13 tag with id 8C7DC455", "hf texkom sim --tk17 --raw FFFFCA17F31EC512 -> simulate TK17 tag with id 17F31EC5", "hf texkom sim --id 8C7DC455 -> simulate TK13 tag with id 8C7DC455", @@ -6417,9 +6600,22 @@ ], "usage": "hf thinfilm sim [-h] -d [--raw]" }, + "hf topaz dump": { + "command": "hf topaz dump", + "description": "Dump TOPAZ tag to binary file If no given, UID will be used as filename", + "notes": [ + "hf topaz dump" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-f, --file filename of dump" + ], + "usage": "hf topaz dump [-h] [-f ]" + }, "hf topaz help": { "command": "hf topaz help", - "description": "help This help list List Topaz history", + "description": "help This help list List Topaz history view Display content from tag dump file", "notes": [], "offline": true, "options": [], @@ -6465,7 +6661,7 @@ "command": "hf topaz raw", "description": "Send raw hex data to Topaz tags", "notes": [ - "hf topaz raw -> Not yet implemented" + "hf topaz raw" ], "offline": false, "options": [ @@ -6473,18 +6669,33 @@ ], "usage": "hf topaz raw [-h]" }, - "hf topaz reader": { - "command": "hf topaz reader", - "description": "Read UID from Topaz tags", + "hf topaz rdbl": { + "command": "hf topaz rdbl", + "description": "Read a block", "notes": [ - "hf topaz reader" + "hf topaz rdbl -b 7" ], "offline": false, "options": [ "-h, --help This help", - "-v, --verbose verbose output" + "-b, --block Block number to write" ], - "usage": "hf topaz reader [-hv]" + "usage": "hf topaz rdbl [-h] -b " + }, + "hf topaz reader": { + "command": "hf topaz reader", + "description": "Read UID from Topaz tags", + "notes": [ + "hf topaz reader", + "hf topaz reader -@ -> Continuous mode" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-v, --verbose verbose output", + "-@ optional - continuous reader mode" + ], + "usage": "hf topaz reader [-hv@]" }, "hf topaz sim": { "command": "hf topaz sim", @@ -6510,6 +6721,33 @@ ], "usage": "hf topaz sniff [-h]" }, + "hf topaz view": { + "command": "hf topaz view", + "description": "Print a Topaz tag dump file (bin/eml/json)", + "notes": [ + "hf topaz view -f hf-topaz-04010203-dump.bin" + ], + "offline": true, + "options": [ + "-h, --help This help", + "-f, --file filename of dump (bin/eml/json)" + ], + "usage": "hf topaz view [-h] -f " + }, + "hf topaz wrbl": { + "command": "hf topaz wrbl", + "description": "Write a block", + "notes": [ + "hf topaz wrbl -b 7 -d 1122334455667788" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-b, --block Block number to write", + "-d, --data Block data (8 hex bytes)" + ], + "usage": "hf topaz wrbl [-h] -b -d " + }, "hf tune": { "command": "hf tune", "description": "Continuously measure HF antenna tuning. Press button or to interrupt.", @@ -6581,7 +6819,7 @@ }, "hf xerox info": { "command": "hf xerox info", - "description": "Act as a reader.", + "description": "Tag information for ISO/IEC 14443 type B / XEROX based tags", "notes": [ "hf xerox info" ], @@ -6592,6 +6830,21 @@ ], "usage": "hf xerox info [-hv]" }, + "hf xerox reader": { + "command": "hf xerox reader", + "description": "Act as a 14443B reader to identify a tag", + "notes": [ + "hf xerox reader", + "hf xerox reader -@" + ], + "offline": false, + "options": [ + "-h, --help This help", + "-v, --verbose verbose output", + "-@ optional - continuous reader mode" + ], + "usage": "hf xerox reader [-hv@]" + }, "hints": { "command": "hints", "description": "Turn on/off hints", @@ -6623,8 +6876,8 @@ "command": "hw connect", "description": "Connects to a Proxmark3 device via specified serial port. Baudrate here is only for physical UART or UART-BT, NOT for USB-CDC or blue shark add-on", "notes": [ - "hw connect -p /dev/ttyacm0", - "hw connect -p /dev/ttyacm0 -b 115200" + "hw connect -p /dev/ttyACM0", + "hw connect -p /dev/ttyACM0 -b 115200" ], "offline": true, "options": [ @@ -6875,7 +7128,7 @@ "--fc 8|16bit value facility code", "--cn optional - card number to start with, max 65535", "--delay optional - delay betweens attempts in ms. Default 1000ms", - "-v, --verbose verbose logging, show all tries" + "-v, --verbose verbose output" ], "usage": "lf awid brute [-hv] --fmt --fc [--cn ] [--delay ]" }, @@ -7495,7 +7748,7 @@ "options": [ "-h, --help This help", "-p, --pwd password, 4 hex bytes, lsb", - "-v, --verbose additional output of data section" + "-v, --verbose verbose output" ], "usage": "lf em 4x50 info [-hv] [-p ]" }, @@ -7954,7 +8207,7 @@ "offline": false, "options": [ "-h, --help This help", - "-v, --verbose verbose logging, show all tries", + "-v, --verbose verbose output", "-w, --wiegand see `wiegand list` for available formats", "--fc facility code", "--cn card number to start with", @@ -10274,6 +10527,27 @@ "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", + "notes": [ + "hf mf ndefformat --mini -> MIFARE Mini", + "hf mf ndefformat --1k -> MIFARE Classic 1k", + "hf mf ndefformat --2k -> MIFARE 2k", + "hf mf ndefformat --4k -> MIFARE 4k", + "hf mf ndefformat --keys hf-mf-066C8B78-key.bin -> MIFARE 1k with keys from specified file" + ], + "offline": false, + "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", "description": "Prints NFC Data Exchange Format (NDEF)", @@ -10500,6 +10774,18 @@ ], "usage": "prefs get hints [-h]" }, + "prefs get output": { + "command": "prefs get output", + "description": "Get preference of dump output style", + "notes": [ + "prefs get output" + ], + "offline": true, + "options": [ + "-h, --help This help" + ], + "usage": "prefs get output [-h]" + }, "prefs get plotsliders": { "command": "prefs get plotsliders", "description": "Get preference of showing the plotslider control in the client", @@ -10608,7 +10894,7 @@ }, "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 ... plotsliders Set plot slider display", + "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": [], @@ -10628,6 +10914,21 @@ ], "usage": "prefs set hints [-h] [--off] [--on]" }, + "prefs set output": { + "command": "prefs set output", + "description": "Set dump output style to condense consecutive repeated data", + "notes": [ + "prefs set output --normal -> sets the output style to normal", + "prefs set output --dense -> sets the output style to dense" + ], + "offline": true, + "options": [ + "-h, --help This help", + "--normal normal output", + "--dense dense output" + ], + "usage": "prefs set output [-h] [--normal] [--dense]" + }, "prefs set plotsliders": { "command": "prefs set plotsliders", "description": "Set persistent preference of showing the plotslider control in the client", @@ -10748,7 +11049,7 @@ "offline": false, "options": [ "-h, --help This help", - "-v, --verbose verbose" + "-v, --verbose verbose output" ], "usage": "smart info [-hv]" }, @@ -10803,7 +11104,7 @@ "offline": false, "options": [ "-h, --help This help", - "-v, --verbose verbose" + "-v, --verbose verbose output" ], "usage": "smart reader [-hv]" }, @@ -11093,8 +11394,8 @@ } }, "metadata": { - "commands_extracted": 700, + "commands_extracted": 720, "extracted_by": "PM3Help2JSON v1.00", - "extracted_on": "2022-07-07T21:17:54" + "extracted_on": "2022-10-16T15:53:13" } } \ No newline at end of file diff --git a/doc/commands.md b/doc/commands.md index 1bb282715..ab64b022f 100644 --- a/doc/commands.md +++ b/doc/commands.md @@ -230,6 +230,9 @@ Check column "offline" for their availability. |`hf 15 reader `|N |`Act like an ISO-15693 reader` |`hf 15 restore `|N |`Restore from file to all memory pages of an ISO-15693 tag` |`hf 15 samples `|N |`Acquire samples as reader (enables carrier, sends inquiry)` +|`hf 15 eload `|N |`Load image file into emulator to be used by 'sim' command` +|`hf 15 esave `|N |`Save emulator memory into image file` +|`hf 15 eview `|N |`View emulator memory` |`hf 15 sim `|N |`Fake an ISO-15693 tag` |`hf 15 slixdisable `|N |`Disable privacy mode on SLIX ISO-15693 tag` |`hf 15 wrbl `|N |`Write a block` @@ -326,6 +329,20 @@ Check column "offline" for their availability. |`hf fido assert `|N |`FIDO2 GetAssertion command.` +### hf fudan + + { Fudan RFIDs... } + +|command |offline |description +|------- |------- |----------- +|`hf fudan help `|Y |`This help` +|`hf fudan reader `|N |`Act like a fudan reader` +|`hf fudan dump `|N |`Dump FUDAN tag to binary file` +|`hf fudan rdbl `|N |`Read a fudan tag` +|`hf fudan view `|Y |`Display content from tag dump file` +|`hf fudan wrbl `|N |`Write a fudan tag` + + ### hf gallagher { Gallagher DESFire RFIDs... } @@ -430,11 +447,12 @@ Check column "offline" for their availability. |------- |------- |----------- |`hf lto help `|Y |`This help` |`hf lto dump `|N |`Dump LTO-CM tag to file` -|`hf lto restore `|N |`Restore dump file to LTO-CM tag` |`hf lto info `|N |`Tag information` -|`hf lto rdbl `|N |`Read block` -|`hf lto wrbl `|N |`Write block` |`hf lto list `|Y |`List LTO-CM history` +|`hf lto rdbl `|N |`Read block` +|`hf lto reader `|N |`Act like a LTO-CM reader` +|`hf lto restore `|N |`Restore dump file to LTO-CM tag` +|`hf lto wrbl `|N |`Write block` ### hf mf @@ -458,12 +476,11 @@ 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 mad `|N |`Checks and prints MAD` -|`hf mf ndefread `|N |`Prints NDEF records from card` +|`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` |`hf mf rdsc `|N |`Read MIFARE Classic sector` -|`hf mf restore `|N |`Restore MIFARE Classic binary file to BLANK tag` +|`hf mf restore `|N |`Restore MIFARE Classic binary file to tag` |`hf mf setmod `|N |`Set MIFARE Classic EV1 load modulation strength` |`hf mf value `|Y |`Value blocks` |`hf mf view `|Y |`Display content from tag dump file` @@ -491,6 +508,8 @@ Check column "offline" for their availability. |`hf mf gen3blk `|N |`Overwrite manufacturer block` |`hf mf gen3freeze `|N |`Perma lock UID changes. irreversible` |`hf mf gview `|N |`View card` +|`hf mf ndefformat `|N |`Format MIFARE Classic Tag as NFC Tag` +|`hf mf ndefread `|N |`Prints NDEF records from card` ### hf mfp @@ -642,12 +661,16 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`hf topaz help `|Y |`This help` +|`hf topaz dump `|N |`Dump TOPAZ family tag to file` |`hf topaz list `|Y |`List Topaz history` |`hf topaz info `|N |`Tag information` |`hf topaz reader `|N |`Act like a Topaz reader` -|`hf topaz sim `|N |` -- Simulate Topaz tag` +|`hf topaz sim `|N |`Simulate Topaz tag` |`hf topaz sniff `|N |`Sniff Topaz reader-tag communication` |`hf topaz raw `|N |`Send raw hex data to tag` +|`hf topaz rdbl `|N |`Read block` +|`hf topaz view `|Y |`Display content from tag dump file` +|`hf topaz wrbl `|N |`Write block` ### hf texkom @@ -1282,6 +1305,7 @@ Check column "offline" for their availability. |command |offline |description |------- |------- |----------- |`nfc mf cread `|N |`read NFC Type MIFARE Classic Tag` +|`nfc mf cformat `|N |`format MIFARE Classic Tag as NFC Tag` |`nfc mf pread `|N |`read NFC Type MIFARE Plus Tag` |`nfc mf help `|Y |`This help`