diff --git a/armsrc/iclass.c b/armsrc/iclass.c index f37480432..2f66143b9 100644 --- a/armsrc/iclass.c +++ b/armsrc/iclass.c @@ -607,13 +607,13 @@ int do_iclass_simulation(int simulationMode, uint8_t *reader_mac_buf) { trace_data = ff_data; trace_data_size = sizeof(ff_data); } else { // use data from emulator memory - if (simulationMode == ICLASS_SIM_MODE_FULL_GLITCH){ + if (simulationMode == ICLASS_SIM_MODE_FULL_GLITCH) { //Jam the read based on the last SIO block - if (memcmp(emulator + (current_page * page_size) + (5 * 8), ff_data, PICOPASS_BLOCK_SIZE) == 0){ //SR card - if (block == 16){ //SR cards use a standard legth SIO + if (memcmp(emulator + (current_page * page_size) + (5 * 8), ff_data, PICOPASS_BLOCK_SIZE) == 0) { //SR card + if (block == 16) { //SR cards use a standard legth SIO goto send; } - }else{ //For SE cards we have to account for different SIO lengths depending if a standard or custom key is used + } else { //For SE cards we have to account for different SIO lengths depending if a standard or custom key is used uint8_t *sio = emulator + (current_page * page_size) + (6 * 8); if (block == (5 + ((sio[1] + 12) / 8))) { goto send; @@ -730,7 +730,7 @@ int do_iclass_simulation(int simulationMode, uint8_t *reader_mac_buf) { chip_state = HALTED; goto send; - } else if ((simulationMode == ICLASS_SIM_MODE_FULL || simulationMode == ICLASS_SIM_MODE_FULL_GLITCH)&& cmd == ICLASS_CMD_READ4 && len == 4) { // 0x06 + } else if ((simulationMode == ICLASS_SIM_MODE_FULL || simulationMode == ICLASS_SIM_MODE_FULL_GLITCH) && cmd == ICLASS_CMD_READ4 && len == 4) { // 0x06 if (chip_state != SELECTED) { goto send; @@ -803,16 +803,16 @@ int do_iclass_simulation(int simulationMode, uint8_t *reader_mac_buf) { memcpy(emulator + (current_page * page_size) + (8 * block), receivedCmd + 2, 8); } - if (simulationMode == ICLASS_SIM_MODE_FULL_GLITCH){ + if (simulationMode == ICLASS_SIM_MODE_FULL_GLITCH) { //Jam the read based on the last SIO block uint8_t *sr_or_sio = emulator + (current_page * page_size) + (6 * 8); - if (memcmp(emulator + (current_page * page_size) + (5 * 8), ff_data, PICOPASS_BLOCK_SIZE) == 0){ //SR card - if (block == 16){ //SR cards use a standard legth SIO + if (memcmp(emulator + (current_page * page_size) + (5 * 8), ff_data, PICOPASS_BLOCK_SIZE) == 0) { //SR card + if (block == 16) { //SR cards use a standard legth SIO //update block 6 byte 1 from 03 to A3 sr_or_sio[0] |= 0xA0; goto send; } - }else{ //For SE cards we have to account for different SIO lengths depending if a standard or custom key is used + } else { //For SE cards we have to account for different SIO lengths depending if a standard or custom key is used if (block == (5 + ((sr_or_sio[1] + 12) / 8))) { goto send; } @@ -838,7 +838,7 @@ int do_iclass_simulation(int simulationMode, uint8_t *reader_mac_buf) { goto send; } - if ((simulationMode == ICLASS_SIM_MODE_FULL || simulationMode == ICLASS_SIM_MODE_FULL_GLITCH)&& max_page > 0) { + if ((simulationMode == ICLASS_SIM_MODE_FULL || simulationMode == ICLASS_SIM_MODE_FULL_GLITCH) && max_page > 0) { // if on 2k, always ignore 3msb, & 0x1F) uint8_t page = receivedCmd[1] & 0x1F; diff --git a/client/src/proxmark3.c b/client/src/proxmark3.c index 11df8328f..01c3fc279 100644 --- a/client/src/proxmark3.c +++ b/client/src/proxmark3.c @@ -125,17 +125,18 @@ static uint8_t detect_current_lang(void) { static const char *get_quote(void) { const char *quotes_en[] = { - "E Pluribus Unum", - "Carpe Diem", - "Ad astra per aspera", - "Fortes fortuna adiuvat", - "Non ducor, duco", - "Veni, vidi, vici", - "Audentes fortuna iuvat", - "Virtus in actione consistit", - "Dum spiro, spero", - "Non scholae, sed vitae discimus", - "Faber est suae quisque fortunae" + "too many secrets", + "It’s not that simple", + "I have received a coded signal", + "I await your instructions", + "And so I watch, I wait", + "Listen to the Domain", + "ghost.713", + "Local node X.XX.713", + "Beggar after knowledge", + "343 Gulity Spark: offline", + "I serve the Builders!", + "This is rather distressing" }; const char *quotes_fr[] = { diff --git a/doc/commands.json b/doc/commands.json index 585f455f4..af1995257 100644 --- a/doc/commands.json +++ b/doc/commands.json @@ -3694,7 +3694,8 @@ "hf iclass sim -t 1 -> simulate with default CSN", "hf iclass sim -t 2 -> execute loclass attack online part", "hf iclass sim -t 3 -> simulate full iCLASS 2k tag", - "hf iclass sim -t 4 -> Reader-attack, adapted for KeyRoll mode, gather reader responses to extract elite key" + "hf iclass sim -t 4 -> Reader-attack, adapted for KeyRoll mode, gather reader responses to extract elite key", + "hf iclass sim -t 6 -> simulate full iCLASS 2k tag that doesn't respond to r/w requests to the last SIO block" ], "offline": false, "options": [ @@ -13374,6 +13375,6 @@ "metadata": { "commands_extracted": 768, "extracted_by": "PM3Help2JSON v1.00", - "extracted_on": "2025-06-06T16:58:34" + "extracted_on": "2025-06-07T09:11:06" } }