Files
proxmark3/client/src
iceman1001andClaude Opus 5 (1M context) 6341f40b4c hf mf hardnested: fix the nonce reply length, 9 bytes per pair not 4 per nonce
Thanks @TheArchitect0880 for pointing it out and suggested a first fix.

MifareAcquireEncryptedNonces packs two 4 byte encrypted nonces plus one
byte holding both their encrypted parity nibbles into every entry, but
the reply declared num_nonces * 4 bytes. The client walks that buffer 9
bytes at a time, so on RDV4 it read 612 bytes out of a 544 byte payload
and handed roughly 15 of every 136 nonces to add_nonce() from stale
packet buffer content. Those fake nonces went into the .bin nonce file
too.

Count pairs instead of bytes. num_nonces now reports whole pairs only,
so a button abort or a static nonce bailout part way through a pair
drops the dangling nonce rather than shipping a half built entry whose
parity nibble was never filled in.

MFC_NONCE_PAIR_SIZE and MFC_MAX_NONCE_PAIRS document the layout next to
mf_nonces_resp_t so the 9 vs 4 confusion cannot come back, and the
client now refuses a reply too short for the nonce count it carries.

Both acquisition functions collect straight into the reply buffer rather
than a second PM3_CMD_DATA_SIZE stack array, which halves the stack used
per call. MifareAcquireNonces also returned isOK = 2 on button press,
which is not a PM3_* status; that is PM3_EOPABORTED now.

Co-Authored-By: Claude Opus 5 (1M context)
2026-09-12 10:44:00 +02:00
..
2024-04-22 09:21:55 +02:00
2026-06-29 22:42:37 +02:00
2026-08-27 14:25:40 +02:00
2026-08-29 17:42:29 +02:00
2026-09-03 02:08:30 -04:00
2026-07-15 16:39:15 +02:00
2026-07-28 15:53:20 +02:00
2025-09-20 12:32:03 +02:00
2026-06-30 02:29:57 +02:00
2026-03-24 20:21:51 +02:00
…
2025-07-13 11:29:29 +02:00
2026-09-01 17:57:31 +02:00
add
2026-07-30 17:06:36 +02:00
2026-08-29 17:42:29 +02:00
2026-08-29 13:50:49 +02:00
2025-06-30 14:28:24 +02:00
2026-08-31 19:43:38 +02:00
2026-02-27 20:26:50 +02:00
2026-08-29 17:42:29 +02:00
2026-08-29 17:42:29 +02:00
2026-05-25 20:52:51 +08:00
2026-05-24 19:12:12 +08:00
2026-08-29 16:42:01 +02:00
2026-03-14 17:34:58 +02:00
2025-02-18 18:41:09 +01:00
2026-08-29 13:50:49 +02:00
2024-02-01 10:05:04 +01:00
2026-09-04 10:16:34 +02:00
2026-08-29 13:50:49 +02:00
2025-08-28 04:06:57 -04:00
2026-09-11 15:17:52 +02:00
2026-03-29 09:39:42 +07:00
2026-05-24 03:33:38 -04:00
2026-08-29 13:50:49 +02:00
2026-05-29 12:36:50 +03:00
2026-05-24 03:33:38 -04:00
2026-09-05 05:40:45 +08:00
2026-07-15 16:39:15 +02:00
2026-08-29 13:50:49 +02:00
2025-08-28 04:06:57 -04:00
2026-07-15 16:39:15 +02:00
2026-03-30 22:58:52 +08:00
2024-05-14 10:04:28 +02:00
…
2025-07-10 11:52:39 +02:00
2025-05-24 22:49:46 +02:00
2026-08-29 13:50:49 +02:00
2026-09-01 17:57:31 +02:00
2026-08-29 16:42:01 +02:00
…
2025-07-08 21:15:09 +02:00
2025-07-10 11:52:39 +02:00
2026-06-29 01:57:19 +02:00
…
…
2025-07-10 11:52:39 +02:00
2025-07-08 21:15:09 +02:00
txt
2026-06-29 02:06:38 +02:00
2024-01-18 16:21:01 +01:00
2025-07-10 11:52:39 +02:00
…
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-07-10 11:52:39 +02:00
2025-08-20 10:55:49 +02:00
2025-07-10 11:52:39 +02:00
…
add
2026-07-30 17:06:36 +02:00
2026-07-30 16:41:07 +02:00
2025-03-20 22:55:26 +01:00
2025-07-10 11:52:39 +02:00
2026-06-29 22:42:37 +02:00
2026-09-01 19:54:05 +02:00
…
2026-04-13 09:35:02 +02:00
2026-09-05 05:40:45 +08:00
…
2025-03-25 10:17:42 +01:00
…
2026-05-22 16:38:59 -07:00
2026-05-22 16:38:59 -07:00
2026-09-01 17:57:31 +02:00
…
2024-03-19 12:37:18 +01:00
2026-07-15 16:39:15 +02:00
add
2026-07-30 17:06:36 +02:00
2026-06-29 22:42:37 +02:00
2025-01-27 20:17:44 +01:00
2025-01-27 20:17:44 +01:00
2026-08-21 20:12:26 +02:00
2026-08-21 20:12:26 +02:00
2026-06-29 23:37:37 +02:00
2024-01-15 13:08:55 +01:00
2026-06-29 23:37:37 +02:00
2026-06-29 23:51:37 +02:00
2024-09-30 10:36:29 +02:00
2026-06-29 23:51:37 +02:00
add
2026-07-30 17:06:36 +02:00
2026-09-01 19:54:05 +02:00
2026-07-30 16:40:14 +02:00
2026-07-30 16:40:14 +02:00
2026-07-15 16:39:15 +02:00
2024-11-02 15:13:40 +01:00
2026-03-31 17:03:23 +03:00
2024-10-14 21:49:40 +02:00
2026-08-29 17:06:24 +02:00
2025-06-22 20:34:54 +02:00
…
…
2026-03-14 17:34:58 +02:00
2026-03-31 17:03:23 +03:00