Commit Graph

6456 Commits

Author SHA1 Message Date
Aaron Tulino (Aaronjamt) f8ff76c5ae [hf seos] Move max OID len to preproc define 2026-03-17 19:05:43 -07:00
Aaron Tulino (Aaronjamt) 440d82ae26 [hf seos] Increase maximum ADF OID length
Some newer MOB/ICE OIDs have gotten quite large. Custom OIDs may also be even larger.
2026-03-17 18:45:56 -07:00
CinderSocket 6639009681 client: document wiegand layer and improve online tests
Add inline comments throughout wiegand_formatutils and callers to explain
sentinel-bit stripping, HID transport framing, and the normalization contract
between input modes and downstream consumers.

Replace sim-only LF HID online tests with T55xx clone+readback flows and add
a full encode/decode roundtrip harness for hf mf encodehid, including sector
restore/cleanup and an optional --manual flag for external reader verification.
2026-03-17 16:45:14 -07:00
CinderSocket 2c403e157d client: unify wiegand input handling
Extract the reusable Wiegand normalization and packing flow into
wiegand_formatutils and move existing callers onto that shared path.
This rebuilds the feat-wiegand branch as one focused commit against
upstream/master instead of trying to preserve the original commit chain.

Key changes:
- add shared helpers for plain binary, raw HID, new PACS, and formatted
  Wiegand input
- centralize binary rendering used by cmdwiegand and PACS decode output
- update lf hid sim/clone to resolve one input mode through the shared
  Wiegand layer and enforce the LF packed transport limit explicitly
- update hf mf encodehid to accept bin/raw/new/formatted Wiegand input
  through the same normalization path
- preserve legacy raw HID transport behavior while clarifying the
  packed-HID vs LF transport limits in error reporting
- add offline regression coverage for the new PACS decode output and add
  interactive online targets for LF HID Wiegand and MIFARE encodehid

Validation performed:
- make client
- bash -n tools/pm3_tests.sh
- bash -n tools/pm3_online_tests.sh
- ./tools/pm3_online_tests.sh -h
- ./client/proxmark3 -c 'wiegand encode -w H10301 --fc 31 --cn 337'
- ./client/proxmark3 -c 'wiegand encode -w H10301 --fc 31 --cn 337 --new'
- ./client/proxmark3 -c 'wiegand decode --new 068F80A8C0'
2026-03-17 16:45:14 -07:00
Iceman 5b1fb71102 Merge pull request #3145 from kormax/vas-improvements
Add support for reading multiple pass type identifiers in VAS
2026-03-18 06:32:21 +07:00
kormax a4b1c745f0 If VAS mode is not given, choose one based on pass type id count 2026-03-17 22:03:36 +02:00
kormax 3da63fafcd Print VAS OSE information in 'hf vas reader' only if 'verbose' argument is given 2026-03-17 21:55:27 +02:00
kormax ff052e8ee2 Add support for reading multiple pass type identifiers in VAS 2026-03-17 20:42:39 +02:00
Antiklesys f10d52a8a9 Update cmdhficlass.c
Updated logic to support debit key
2026-03-17 22:20:55 +08:00
Antiklesys e768a1d9ad Update cmdhficlass.c 2026-03-17 22:08:41 +08:00
Antiklesys b91ef4adaf Implemented hf iclass blacktears
Added `hf iclass blacktears` command to perform an automated tearoff of block 1 to set non-secure page mode.
2026-03-17 21:53:16 +08:00
Iceman 9dee44a1ce Merge pull request #3138 from kormax/felica-node-discovery-adjustments
Skip nodes with PIN attribute when performing node discovery with RequestService in FeliCa
2026-03-17 15:46:12 +07:00
kormax e52c2f79fc Skip nodes with PIN attribute when performing node discovery with RequestService in FeliCa 2026-03-16 19:45:30 +02:00
kormax 215ac24edb Allow to detect which exact app implements AID via matching response data 2026-03-16 19:32:35 +02:00
kormax 5cbae8fc12 Update signaling bitmask print format in Aliro 2026-03-15 11:00:52 +02:00
kormax ec3b249d30 Remove redundant methods from Aliro/VAS, make private key load helpers universal 2026-03-15 10:08:30 +02:00
kormax 892559ac05 Add tests for zlib support 2026-03-14 22:16:59 +02:00
kormax c8a4314353 Add hf gst commands 2026-03-14 17:34:58 +02:00
Iceman 190f6265c2 Merge pull request #3131 from q0jt/master
Improve felica validation and cleanup handling
2026-03-14 11:06:23 +07:00
q0jt 661634649a Fix reject responses with invalid CRC 2026-03-14 03:45:22 +09:00
q0jt 08a90b9eba Fix correct status flag error handling in authentication flow 2026-03-14 03:36:57 +09:00
q0jt bf0abf3ee1 Fix avoid double free in CmdHFFelicaReader 2026-03-14 03:22:42 +09:00
Iceman 465e5e6a9c Merge branch 'master' into hf-14b-tearoff
Signed-off-by: Iceman <iceman@iuse.se>
2026-03-13 22:14:20 +07:00
Christian Zanon b9ddb038b7 Merge branch 'master' into hf-14b-tearoff
Signed-off-by: Christian Zanon <105173223+xNovyz@users.noreply.github.com>
2026-03-13 11:39:06 +01:00
iceman1001 b801cddf13 fix @zerochaos compiler warning 2026-03-13 12:33:47 +07:00
kormax 0ab4cc161b Implement 'hf vas info' command 2026-03-13 07:06:04 +02:00
Iceman 6b3670f95d Merge pull request #3130 from Antiklesys/master
Updated hg iclass legrec
2026-03-13 11:38:41 +07:00
Iceman cfaddb067b Merge pull request #3128 from kormax/android-hce-aid
Refine known AIDs; add Android HCE
2026-03-13 11:38:10 +07:00
Antiklesys 61d20368af Updated hg iclass legrec
Code cleanup removed unused variables
2026-03-13 12:23:35 +08:00
xNovyz 52676ebbd4 style: whitespace fixes 2026-03-11 22:41:21 +01:00
xNovyz 286df8f4eb feat(14b): add interactive hf 14b tearoff command
Add an interactive command for performing tear-off attacks on ST25TB/SRx
monotonic counter blocks. This exploits EEPROM tearing to increment
counters that normally can only be decremented, based on the
near-field-chaos project by SecLabz.

The command sweeps tear-off timing from --start downward in --adj
microsecond steps, automatically consolidates partial writes, verifies
stability across multiple reads, and reports progress in real-time with
color-coded output.

Performance optimizations:
- One-time full iso14443b_setup() at start; subsequent field cycles use
  lightweight tearoff_field_on()/tearoff_field_off() that skip FPGA
  bitstream reload and buffer reallocation
- Periodic CMD_WTX keepalives to prevent USB timeouts during long attacks
- Calls FpgaResetBitstream() on exit to ensure clean FPGA state

Usage: hf 14b tearoff -b <block> -d <target> [--start <us>] [--adj <us>]
2026-03-11 21:43:37 +01:00
kormax 24d1fe79f8 Refine known AIDs; add Android HCE 2026-03-11 20:45:24 +02:00
Iceman 3d6e805cb9 Merge branch 'master' into feat-wiegand-improvement
Signed-off-by: Iceman <iceman@iuse.se>
2026-03-11 10:37:47 +07:00
Iceman 7c6f91bdfb Merge pull request #3120 from pingu2211/gallagher-mifare-classic
Add MIFARE Classic Reading and Writing to HF Gallagher
2026-03-11 10:32:17 +07:00
pingu2211 7d7903deed Feedback from Iceman.
Now respecting quiet flag for continuous reads.
Return Correct PM3 _* return codes.
2026-03-11 09:38:13 +11:00
CinderSocket 08cd96c5a9 Improve Wiegand PACS encode/decode and verbose output 2026-03-10 15:32:25 -07:00
kormax 81d2748321 Improve FeliCa command IDM handling 2026-03-10 17:55:42 +02:00
pingu2211 c07d688597 Implement Gallagher MIFARE Classic card writing and update MAD sector functionality 2026-03-10 15:13:42 +11:00
kormax 6629db3659 Add universal node discovery for FeliCa 2026-03-09 18:58:08 +02:00
Tomas Nilsson 7159711734 Auto-detect key files by UID in hf mfp dump
When no --keys or --mfc-keys arguments are given, automatically
look for hf-mfp-<UID>-key.json and hf-mf-<UID>-key.bin files,
matching the output of hf mfp chk --dump and hf mf chk --dump.
Fail with helpful message if no keys are available, matching
the behaviour of hf mf dump.
2026-03-08 19:18:32 +01:00
apply-science 8345a240fe Merge branch 'master' into master
Signed-off-by: apply-science <106422483+apply-science@users.noreply.github.com>
2026-03-08 18:47:56 +01:00
Tomas Nilsson 03d6da87e2 Simplify hf mfp dump: remove key probing, load-and-read only
Restructure hf mfp dump to match hf mf dump pattern: load keys
from files, read sectors, save. Remove all key probing/checking
logic (use hf mfp chk and hf mf chk separately for key discovery).
Use MF_KEY_A/MF_KEY_B defines instead of magic numbers.
Replace custom JSON parser with existing loadFileJSON infrastructure.
2026-03-08 18:35:37 +01:00
kormax a413c906ed Introduce 'hf felica seacinfo' command 2026-03-08 08:39:04 +02:00
Tomas Nilsson 3e8d52db58 Optimize hf mfp dump: phased SL classification and quiet probing
Restructure dump into 4 phases:
1. Classify sectors via single MFC probe (SL3 vs SL1)
2. AES dictionary only on SL3 sectors
3. MFC dictionary only on SL1 sectors
4. Read with found keys

Suppress firmware debug output during key probing to prevent
auth error message flood, matching MifareChkKeys behavior.
2026-03-07 17:23:59 +01:00
Tomas Nilsson 44a40064b7 Fix SL1 key probing hang in hf mfp dump
Replace mf_check_keys (which hangs in firmware infinite retry loop)
with mf_read_sector for SL1 key probing. Defer MFC key probing to
the read phase so it only runs per-sector when SL3 auth fails.
Also fix mfcProbeKeys memory leak on early exit paths.
2026-03-07 16:41:26 +01:00
Tomas Nilsson fded3e9cef Implement 'hf mfp dump' command with SL1/SL3 mixed mode support 2026-03-07 15:23:48 +01:00
kormax 22a307dd69 Implement 'hf mfdes bruteisofid' command 2026-03-07 07:58:00 +02:00
kormax 4bcc35cddc Add AID candidate generation presets to 'hf mfdes bruteaid' 2026-03-06 18:19:21 +02:00
kormax 21f76d173a Handle tag loss & recovery in 'hf mfdes bruteaid' 2026-03-06 18:19:19 +02:00
Iceman a54e88ee94 Merge pull request #3111 from Antiklesys/master
Added --credit option for hf iclass legrec
2026-03-06 08:56:21 +01:00