This commit is contained in:
Philippe Teuwen 2025-06-15 12:53:33 +02:00
commit a5d02c6ba2
12 changed files with 1643 additions and 1655 deletions

View file

@ -349,7 +349,7 @@ int sam_get_serial_number(void) {
} }
Dbprintf(_YELLOW_("Serial Number: ")); Dbprintf(_YELLOW_("Serial Number: "));
Dbhexdump(sam_response_an[1],sam_serial_an, false); Dbhexdump(sam_response_an[1], sam_serial_an, false);
goto out; goto out;
} }

View file

@ -356,7 +356,7 @@ int sam_picopass_get_pacs(PacketCommandNG *c) {
// step 1: ping SAM // step 1: ping SAM
sam_get_version(info); sam_get_version(info);
if(info){ if (info) {
sam_get_serial_number(); sam_get_serial_number();
goto out; goto out;
} }

File diff suppressed because it is too large Load diff

View file

@ -1921,7 +1921,7 @@ int detect_nxp_card(uint8_t sak, uint16_t atqa, uint64_t select_status,
// if ((sak & 0x01) == 0x01) { // SAK b2=0 b4=0 b5=1 b1=1, SAK=0x11 // if ((sak & 0x01) == 0x01) { // SAK b2=0 b4=0 b5=1 b1=1, SAK=0x11
// } else { // SAK b2=0 b4=0 b5=1 b1=0, SAK=0x10 // } else { // SAK b2=0 b4=0 b5=1 b1=0, SAK=0x10
// } // }
type |= MTPLUS; type |= MTPLUS;
} else { // SAK b2=0 b4=0 b5=0 } else { // SAK b2=0 b4=0 b5=0

View file

@ -327,7 +327,7 @@ static const iclass_config_card_item_t *get_config_card_item(int idx) {
static void print_config_cards(void) { static void print_config_cards(void) {
PrintAndLogEx(INFO, "---- " _CYAN_("Config cards options") " ------------"); PrintAndLogEx(INFO, "---- " _CYAN_("Config cards options") " ------------");
for (int i = 0; i < ARRAYLEN(iclass_config_options) ; ++i) { for (int i = 0; i < ARRAYLEN(iclass_config_options) ; ++i) {
switch (i){ switch (i) {
case 0: case 0:
PrintAndLogEx(INFO, _YELLOW_("---- LED Operations ----")); PrintAndLogEx(INFO, _YELLOW_("---- LED Operations ----"));
break; break;

View file

@ -3682,9 +3682,10 @@
"--break stop tag interaction on nr-mac", "--break stop tag interaction on nr-mac",
"-p, --prevent fake epurse update", "-p, --prevent fake epurse update",
"--shallow shallow mod", "--shallow shallow mod",
"-d, --data <hex> DER encoded command to send to SAM" "-d, --data <hex> DER encoded command to send to SAM",
"--info get SAM infos (version, serial number)"
], ],
"usage": "hf iclass sam [-hvkntp] [--break] [--shallow] [-d <hex>]..." "usage": "hf iclass sam [-hvkntp] [--break] [--shallow] [-d <hex>]... [--info]"
}, },
"hf iclass sim": { "hf iclass sim": {
"command": "hf iclass sim", "command": "hf iclass sim",
@ -7084,7 +7085,7 @@
}, },
"hf mfu aesauth": { "hf mfu aesauth": {
"command": "hf mfu aesauth", "command": "hf mfu aesauth",
"description": "Tests AES key on Mifare Ultralight AES tags. If no key is specified, null key will be tried. Key index 0: DataProtKey (default) Key index 1: UIDRetrKey Key index 2: OriginalityKey", "description": "Tests AES key on Mifare Ultralight AES tags. If no key is specified, null key will be tried. Key index 0... DataProtKey (default) Key index 1... UIDRetrKey Key index 2... OriginalityKey",
"notes": [ "notes": [
"hf mfu aesauth", "hf mfu aesauth",
"hf mfu aesauth --key <16 hex bytes> --index <0..2>" "hf mfu aesauth --key <16 hex bytes> --index <0..2>"
@ -9397,11 +9398,10 @@
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"--rnd <hex> Random 56-bit", "--rnd <hex> Random 56-bit",
"--frn <hex> F(RN) 28-bit as 4 hex bytes" "--frn <hex> F(RN) 28-bit as 4 hex bytes"
], ],
"usage": "lf em 4x70 auth [-h] [--par] --rnd <hex> --frn <hex>" "usage": "lf em 4x70 auth [-h] --rnd <hex> --frn <hex>"
}, },
"lf em 4x70 autorecover": { "lf em 4x70 autorecover": {
"command": "lf em 4x70 autorecover", "command": "lf em 4x70 autorecover",
@ -9414,12 +9414,11 @@
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"--rnd <hex> Random 56-bit from known-good authentication", "--rnd <hex> Random 56-bit from known-good authentication",
"--frn <hex> F(RN) 28-bit as 4 hex bytes from known-good authentication", "--frn <hex> F(RN) 28-bit as 4 hex bytes from known-good authentication",
"--grn <hex> G(RN) 20-bit as 3 hex bytes from known-good authentication" "--grn <hex> G(RN) 20-bit as 3 hex bytes from known-good authentication"
], ],
"usage": "lf em 4x70 autorecover [-h] [--par] --rnd <hex> --frn <hex> --grn <hex>" "usage": "lf em 4x70 autorecover [-h] --rnd <hex> --frn <hex> --grn <hex>"
}, },
"lf em 4x70 calc": { "lf em 4x70 calc": {
"command": "lf em 4x70 calc", "command": "lf em 4x70 calc",
@ -9448,27 +9447,24 @@
"offline": true, "offline": true,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-b, --block <dec> block/word address, dec", "-b, --block <dec> block/word address, dec",
"--rnd <hex> Random 56-bit", "--rnd <hex> Random 56-bit",
"--frn <hex> F(RN) 28-bit as 4 hex bytes", "--frn <hex> F(RN) 28-bit as 4 hex bytes",
"-s, --start <hex> Start bruteforce enumeration from this key value" "-s, --start <hex> Start bruteforce enumeration from this key value"
], ],
"usage": "lf em 4x70 brute [-h] [--par] -b <dec> --rnd <hex> --frn <hex> [-s <hex>]" "usage": "lf em 4x70 brute [-h] -b <dec> --rnd <hex> --frn <hex> [-s <hex>]"
}, },
"lf em 4x70 info": { "lf em 4x70 info": {
"command": "lf em 4x70 info", "command": "lf em 4x70 info",
"description": "Tag Information EM4x70 Tag variants include ID48 automotive transponder. ID48 does not use command parity (default). V4070 and EM4170 do require parity bit.", "description": "Tag Information EM4x70 Tag variants include ID48 automotive transponder. ID48 does not use command parity (default). V4070 and EM4170 do require parity bit.",
"notes": [ "notes": [
"lf em 4x70 info", "lf em 4x70 info"
"lf em 4x70 info --par -> adds parity bit to command"
], ],
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help"
"--par Add parity bit when sending commands"
], ],
"usage": "lf em 4x70 info [-h] [--par]" "usage": "lf em 4x70 info [-h]"
}, },
"lf em 4x70 recover": { "lf em 4x70 recover": {
"command": "lf em 4x70 recover", "command": "lf em 4x70 recover",
@ -9481,13 +9477,12 @@
"offline": true, "offline": true,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-k, --key <hex> Key as 6 hex bytes", "-k, --key <hex> Key as 6 hex bytes",
"--rnd <hex> Random 56-bit", "--rnd <hex> Random 56-bit",
"--frn <hex> F(RN) 28-bit as 4 hex bytes", "--frn <hex> F(RN) 28-bit as 4 hex bytes",
"--grn <hex> G(RN) 20-bit as 3 hex bytes" "--grn <hex> G(RN) 20-bit as 3 hex bytes"
], ],
"usage": "lf em 4x70 recover [-h] [--par] -k <hex> --rnd <hex> --frn <hex> --grn <hex>" "usage": "lf em 4x70 recover [-h] -k <hex> --rnd <hex> --frn <hex> --grn <hex>"
}, },
"lf em 4x70 setkey": { "lf em 4x70 setkey": {
"command": "lf em 4x70 setkey", "command": "lf em 4x70 setkey",
@ -9500,56 +9495,49 @@
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-k, --key <hex> Key as 12 hex bytes" "-k, --key <hex> Key as 12 hex bytes"
], ],
"usage": "lf em 4x70 setkey [-h] [--par] -k <hex>" "usage": "lf em 4x70 setkey [-h] -k <hex>"
}, },
"lf em 4x70 setpin": { "lf em 4x70 setpin": {
"command": "lf em 4x70 setpin", "command": "lf em 4x70 setpin",
"description": "Write new PIN", "description": "Write new PIN",
"notes": [ "notes": [
"lf em 4x70 setpin -p 11223344 -> Write new PIN", "lf em 4x70 setpin -p 11223344 -> Write new PIN"
"lf em 4x70 setpin -p 11223344 --par -> Write new PIN using parity commands"
], ],
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-p, --pin <hex> pin, 4 bytes" "-p, --pin <hex> pin, 4 bytes"
], ],
"usage": "lf em 4x70 setpin [-h] [--par] -p <hex>" "usage": "lf em 4x70 setpin [-h] -p <hex>"
}, },
"lf em 4x70 unlock": { "lf em 4x70 unlock": {
"command": "lf em 4x70 unlock", "command": "lf em 4x70 unlock",
"description": "Unlock EM4x70 by sending PIN Default pin may be: AAAAAAAA 00000000", "description": "Unlock EM4x70 by sending PIN Default pin may be: AAAAAAAA 00000000",
"notes": [ "notes": [
"lf em 4x70 unlock -p 11223344 -> Unlock with PIN", "lf em 4x70 unlock -p 11223344 -> Unlock with PIN"
"lf em 4x70 unlock -p 11223344 --par -> Unlock with PIN using parity commands"
], ],
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-p, --pin <hex> pin, 4 bytes" "-p, --pin <hex> pin, 4 bytes"
], ],
"usage": "lf em 4x70 unlock [-h] [--par] -p <hex>" "usage": "lf em 4x70 unlock [-h] -p <hex>"
}, },
"lf em 4x70 write": { "lf em 4x70 write": {
"command": "lf em 4x70 write", "command": "lf em 4x70 write",
"description": "Write EM4x70", "description": "Write EM4x70",
"notes": [ "notes": [
"lf em 4x70 write -b 15 -d c0de -> write 'c0de' to block 15", "lf em 4x70 write -b 15 -d c0de -> write 'c0de' to block 15"
"lf em 4x70 write -b 15 -d c0de --par -> adds parity bit to commands"
], ],
"offline": false, "offline": false,
"options": [ "options": [
"-h, --help This help", "-h, --help This help",
"--par Add parity bit when sending commands",
"-b, --block <dec> block/word address, dec", "-b, --block <dec> block/word address, dec",
"-d, --data <hex> data, 2 bytes" "-d, --data <hex> data, 2 bytes"
], ],
"usage": "lf em 4x70 write [-h] [--par] -b <dec> -d <hex>" "usage": "lf em 4x70 write [-h] -b <dec> -d <hex>"
}, },
"lf em help": { "lf em help": {
"command": "lf em help", "command": "lf em help",
@ -13377,6 +13365,6 @@
"metadata": { "metadata": {
"commands_extracted": 768, "commands_extracted": 768,
"extracted_by": "PM3Help2JSON v1.00", "extracted_by": "PM3Help2JSON v1.00",
"extracted_on": "2025-06-09T12:58:22" "extracted_on": "2025-06-15T10:52:29"
} }
} }