Commit Graph
7006 Commits
Author SHA1 Message Date
Niel Nielsen 190ed8a990 ADD: BWM status includes AW32001ECSR registerd, Charging set to 256mAh and keeps BWM safety guards for temperature 2026-08-23 20:31:01 +02:00
Niel Nielsen a0081140e3 Merge branch 'RfidResearchGroup:master' into master 2026-08-23 15:10:25 +02:00
Niel Nielsen f47f7017e7 Update BWM set capacity command for PM5
Signed-off-by: Niel Nielsen <nieldk@gmail.com>
2026-08-23 14:05:30 +02:00
Niel Nielsen 6c605c3f5d ADD the bwmsetcap command function
Signed-off-by: Niel Nielsen <nieldk@gmail.com>
2026-08-23 13:26:13 +02:00
Graham Gallagher 7875da41bc Add default constructor to PictureItem class 2026-08-23 21:24:52 +10:00
Philippe Teuwen 73cc583b0e Flash: skip warning when the bootrom gets updated 2026-08-23 01:28:47 +02:00
iceman1001 74f2dcc52c fix warning of comparision of narrow type ... in loop 2026-08-22 10:03:49 +02:00
iceman1001 dafce323b4 fix strncpy warnings on proxspace 2026-08-22 09:51:18 +02:00
iceman1001 20a5cb5e7f missing pace files and tests 2026-08-21 22:33:05 +02:00
iceman1001 f6e0119f5f added PACE (--can) support to emrtd commands. 2026-08-21 22:32:06 +02:00
歐歪 c35b682c31 Merge branch 'master' of https://github.com/RfidResearchGroup/proxmark3 into 20260820-ntagwriter 2026-08-22 02:14:22 +08:00
歐歪 644365b4e2 Merge branch 'master' of https://github.com/RfidResearchGroup/proxmark3 into 20260820-ntagwriter 2026-08-22 02:13:48 +08:00
iceman1001 d3391bef3c missing files for jpeg2000 2026-08-21 20:12:26 +02:00
歐歪 cdca934f7e feat: hf mfu ndefwrite command 2026-08-22 02:11:29 +08:00
iceman1001 0f3092ceb8 added support to view JPEG2000 images commonly used with epassports. The lib use a BSD-2 license compatible with our GPL3+ 2026-08-21 20:10:30 +02:00
iceman1001 68af7e2582 - now correctly shows multiple images in the image viewer. Thanks Claude! 2026-08-21 19:41:27 +02:00
Iceman 9310f93df6 Merge pull request #3484 from jonyen/fix-grabbed-output-heap-overflow
fix: heap overflow in pm3_grabbed_output_get
2026-08-21 22:11:50 +07:00
Jonathan YenandClaude Opus 5 d515458973 fix: heap overflow in pm3_grabbed_output_get
pm3_grabbed_output_get null-terminated the captured output at
g_grabbed_output.size, but size is the allocated capacity, not the number of
bytes written -- ui.c grows it by MAX_PRINT_BUFFER at a time and tracks the
used length separately in idx. Every call therefore wrote one zero byte past
the end of the heap allocation.

The CLI mostly survives it because it calls the function once or twice and
then exits, so the corrupted malloc metadata is never reused. A long-running
libpm3 client that captures output on every command does not: the damage
surfaces later, far from the cause. It was found as a SIGTRAP inside an
unrelated AppKit autorelease pool.

Reproduced against real hardware:

  MALLOC_STRICT_SIZE=1 MallocGuardEdges=1 \
    DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib ./pm3run <port> "hw version"

which crashes with SIGSEGV inside pm3_grabbed_output_get before this change
and exits cleanly with identical captured output after it.

Terminating at idx is always in bounds: the grabber guarantees at least
MAX_PRINT_BUFFER bytes of headroom before each write, so idx is strictly less
than size.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AjGgtnsvWJHAMYEksAiYuf
2026-08-20 21:44:36 -04:00
Iceman c7c9938bfe Merge pull request #3483 from nffq/fix/hfmfsen_7b
fix: `hf mf sen` init wrong 4 bytes of UID for authentication
2026-08-21 05:37:27 +07:00
nffq 1646486787 Make #3483 more readable
Signed-off-by: nffq <143437252+nffq@users.noreply.github.com>
2026-08-21 05:01:02 +09:00
iceman1001 7ff85b09ec remove the old SAM implementation 2026-08-20 18:34:57 +02:00
iceman1001 a9b98819bb fix not assigned warning 2026-08-20 17:20:45 +02:00
nffq b6929d9108 fix: hf mf sen init wrong 4 bytes of UID for authentication 2026-08-21 00:04:34 +09:00
nffq e9c61bca79 allow to break out of fm11_verify_candidates 2026-08-20 16:51:43 +02:00
nffq aca26117c0 fix: fm11_propagate_key_reuse_online always shows key A == key B when key B is read 2026-08-20 16:51:43 +02:00
Iceman 4f410992d4 Merge branch 'master' into mfdes-chk-keylogic
Signed-off-by: Iceman <iceman@iuse.se>
2026-08-20 21:45:52 +07:00
Iceman f4b76715c1 Merge branch 'master' into fix/iclass-unhash-preimage-enumeration
Signed-off-by: Iceman <iceman@iuse.se>
2026-08-20 21:44:40 +07:00
Chloé Franke 43e1f4db09 Merge branch 'master' into mfdes-chk-keylogic
Signed-off-by: Chloé Franke <git@corollary.de>
2026-08-20 12:21:38 +00:00
nffq 0b9d97be2b fix: FM11RF08S key recovery generates incorrect results when nt == 0 2026-08-20 13:37:34 +02:00
Nemanja Nedeljkovic 6507b8f36b feat(pm5): hf tune --rgb / lf tune --rgb - antenna RGB as a tuning meter
Adds an opt-in `--rgb` flag to the continuous `hf tune` / `lf tune` commands that
mirrors the antenna tuning level on the PM5 antenna RGB LED: blue = low, green =
mid, red = high, tracking the on-screen bar so you can find coupling (e.g. an
implant) by feel without watching the screen.

The colour is computed client-side from the same per-iteration voltage / running
peak the bar uses (so it matches the bar and auto-scales), and pushed to the
device via a new dumb CMD_PM5_RGB_SET {r,g,b}. That command is handled (#ifdef
PM5) by a dedicated AT32 RGB HAL module, common_arm/rgb/{rgb_apis.h,
rgb_hw_at32.c} (RgbLedSet(), I2C controller @ 0x48), wired into the armsrc
Makefile/CMake as SRC_RGB for PM5 only - so no other platform is affected and no
hardware code lands in shared files.
2026-08-20 11:55:55 +02:00
Iceman ad4a94b1a5 Merge pull request #3480 from s00se/spinlock-api-gate
Add API check to Android spinlock shim
2026-08-20 16:24:33 +07:00
Nemanja Nedeljkovic ba315d8d58 fix(pm5): suppress bogus [FPGA] version section on PM5
PM5's FPGA (Gowin GW1NR) bitstream is loaded at runtime via `hw fpga config`
and is not compiled into the firmware; only the Xilinx fpga_pm3_hf.bit is pulled
in (to generate g_fpga_version_information[]) which PM5 never runs. So the
`[ FPGA ] fpga_pm3_hf.ncd image 2s30vq100` line described a bitstream unrelated
to the actual device.

- Firmware (appmain.c): omit the [FPGA] section from the version string on PM5
  (#ifndef PM5), since there's no meaningful built-in FPGA version to report.
- Client (cmdhw.c): skip the FPGA_TYPE "chip mismatch" check for PM5, which would
  otherwise trigger now that the section is gone.
2026-08-20 10:36:09 +02:00
Nemanja Nedeljkovic 36027b48e6 fix(pm5): report PM5 in hw status [Model] firmware line
The [Model] section only distinguished RDV4 firmware from a "PM3 GENERIC"
else branch, so PM5 (AT32) fell through and printed "Firmware... PM3 GENERIC"
even though the banner/Target/MCU already report PM5/AT32F437. Add an IfPm5()
branch that prints "Firmware... PM5" and the external-flash status.

Note: the "[ FPGA ] ... 2s30vq100" line in hw version is separate and comes
from the firmware-generated version string (fpga_version_info.c). On PM5 the
build reuses the Xilinx fpga_pm3_hf.bit only to generate that version info
(see Makefile.hal PM5 TODO), while the real Gowin FPGA is loaded via JTAG, so
the reported bitstream name is a placeholder. Fixing that is a firmware/build
change, not addressed here.
2026-08-20 10:36:09 +02:00
s00se 0482fa8757 Add API check to Android spinlock shim
Android spinlock shim not needed on modern (API 24+) Android, this fixes compiling on Termux

Signed-off-by: s00se <95649696+s00se@users.noreply.github.com>
2026-08-19 20:04:03 -06:00
Nemanja Nedeljkovic 6da7c77427 feat(pm5): report AT32 MCU, flash size and PM5 target in hw version/status
`hw version` and `hw status` decoded the reported chip id as an Atmel AT91
CIDR. On PM5 (AT32) the id is an ARM DBGMCU IDCODE, so it showed
"MCU Unknown", a bogus flash size (32 KB / 973% used) and "PM3 GENERIC".

- Client: when IfPm5(), print MCU "AT32F437" and the real flash size, and add
  a "PM5" target line, instead of running the AT91 decode.
- Firmware: the flash size can't be derived from the AT32 IDCODE, so the device
  now sends GetChipFlashSize(). It is appended AFTER the version string in the
  CMD_VERSION reply, so the wire layout is unchanged and it stays compatible in
  both directions (old client ignores the trailing bytes; new client length-
  guards and treats a missing value as 0). GetChipFlashSize() already exists for
  both AT91 and AT32.
2026-08-19 21:49:43 +02:00
Chloé Franke 7587a05cf1 Inverted verbose flag to work correctly 2026-08-19 16:28:10 +02:00
Philippe Teuwen 6863314019 Remove tabs 2026-08-19 15:51:54 +02:00
Philippe Teuwen 52af3f11e2 rename a couple of commands 2026-08-19 15:51:54 +02:00
Philippe Teuwen f82ac61e78 Prompt the user when flash_suggest_update_bootloader()
pm3line_init() delayed to not install signal handlers on other usages than interactive client
2026-08-19 15:51:54 +02:00
dxl cbc56f720d Abstract the flash.c to avoid hard coding that makes it impossible to cross platforms. 2026-08-19 15:51:18 +02:00
Chloé Franke b045bb6f4a Fixed wrong type for format string 2026-08-19 15:39:53 +02:00
Chloé Franke 74eb81392a Added guard for no keys provided back. 2026-08-19 15:38:42 +02:00
Chloé Franke c6971eb3e4 Added info print for number of loaded keys back 2026-08-19 15:30:17 +02:00
Chloé Franke 2db9c2bc46 corrected key count logic; fixed info prints to display only when a key was found 2026-08-19 15:04:35 +02:00
Chloé Franke 4b51fea936 Merge branch 'master' into mfdes-chk-keylogic 2026-08-19 13:40:11 +02:00
Chloé Franke 070bdf78a1 Fixed hardcoded length of debug print of authentication nonce for mifare desfire 2026-08-19 13:20:52 +02:00
Philippe Teuwen ddd8e57427 Make loclass/cipher_bs_avx* compatible with clang 2026-08-19 12:59:29 +02:00
Philippe Teuwen 430fea5338 Guard fpga config flash mode with capability 2026-08-19 12:04:33 +02:00
Philippe Teuwen 7c436d2d58 guard pm5 commands with capabilities 2026-08-19 12:04:33 +02:00
Philippe Teuwen d2a8cca233 Add pm5 capabilities 2026-08-19 12:04:33 +02:00