Files
iceman1001 ace5d63ff9 hitag2: fix simulation against genuine readers, add restore, fix info
Simulation now completes the full exchange with a genuine Paxton reader in
password mode, and crypto mode read/write passes Proxmark-to-Proxmark.

Firmware:
- SOF was one bit period short. The lead-in that compensated for the lost
  head half bit was removed and nothing replaced it, so readers rejected
  every answer with a second START_AUTH. Default is now 6.
- The edge-detect threshold was latched before being measured, so the value
  chosen depended on whether the Proxmark was in a field when sim started.
  It is now measured on field entry and re-armed when the reader leaves.
- The percentile walk latched on run-scoped variables, so one attempt made
  outside a field poisoned every later one.
- Field loss was detected from TIMESTAMP, which is free-running MCU time and
  never stalls. Detect it from receive silence instead.
- Frames of a length the protocol does not have no longer reach the state
  machine; our own modulation tail was resetting the session and breaking
  every write.
- A dropped edge merges two or three reader bit periods into one gap. Those
  bits were discarded; they are now recovered by decomposition, which is what
  made crypto mode work (AUTH decode 15% -> 100%).
- Threshold selection is limited to 20 and 32 and settles in under 25 ms.

Client:
- lf hitag info printed a hardcoded 0x06 and reported 'Password mode' for
  every tag. It now reads page 3, takes -k (4 bytes password, 6 bytes
  crypto), and says so when the config cannot be read.
- lf hitag restore: writes a dump back in dependency order - user pages,
  then key material, then config last - validates the config byte, and
  prints the credential the tag will require afterwards.
- lf hitag crack2 now reports why it failed instead of a bare 'fail'.
- trace list: bit count moved to its own column, relative mode shows a
  Frame Delay Time row rather than renaming Start/End, --frame and -r
  rejected together.
2026-09-04 13:20:29 +02:00
..
2023-05-30 19:47:27 +02:00
2023-08-24 18:21:07 +02:00
2023-05-30 19:47:27 +02:00
2023-05-30 19:47:27 +02:00
2023-05-30 19:47:27 +02:00
2023-08-24 18:21:07 +02:00
2023-08-24 18:21:07 +02:00
2024-01-24 13:59:12 +01:00
2023-08-24 18:21:07 +02:00
2023-08-29 11:26:43 +02:00
2023-05-30 19:47:27 +02:00
2023-08-29 11:24:56 +02:00
2023-05-30 19:47:27 +02:00
2023-05-30 19:47:27 +02:00
2026-08-28 22:35:08 +02:00
2023-08-24 18:06:44 +02:00
2023-08-24 18:06:44 +02:00
2023-08-24 18:06:44 +02:00
2023-08-24 18:06:44 +02:00
2025-02-21 16:33:40 +01:00
2023-05-30 19:47:27 +02:00
2024-12-03 21:04:50 +08:00
2023-05-30 19:47:27 +02:00