Release v4.23346
Nickname "Frosty Lemon"
CHANGELOG - [Frosty Lemon][2026-09-18]
- Fixed
hf mfdes sim- the ATS now advertises 106 kbit/s only, PPS to a higher rate is refused, a selected card ignores REQA/WUPA, and ISO-DEP block recovery now follows the card sequence (@mistial-dev) - Added
hf mfdes sim- answers ISO 7816 SELECT by DF name or file id with real status words, so a reader that opens with a SELECT reaches the card (@mistial-dev) - Fixed
hf mfdes sim- a session opened with the 0x0A legacy authentication now uses the legacy secure messaging: 4 byte DES MAC, CRC16, no MAC on plain answers (@mistial-dev) - Fixed
hf mfdes sim- the 0x0A legacy authentication now enciphers the reader token and RndA' from a zero IV as a card does, so the session key and final frame match genuine silicon (@mistial-dev) - Added
hf mfdes etest- drives the DESFire simulation over USB without RF, with injectable RndB / random UID (@mistial-dev) - Fixed USB receive stalling on a zero-length OUT packet and missing a command already buffered behind another (@cindersocket)
- Fixed dictionary loading to skip keys longer than the requested key size instead of truncating them (@iceman1001)
- Changed
hf mfdes chkto check every key number the application declares, not only the ones a file's access rights name (@iceman1001) - Changed
hf mfdes chkto report when no keys were found and to stop spending a card round trip on an exhausted dictionary (@iceman1001) - Changed
hf mfu cchkandhf mfu aeschkinto onehf mfu chkwhich detects UL-C vs UL-AES (@iceman1001) - Added
hf 14b view- MyKey / COGES keys on SRIX4K now decode (@iceman1001) - Added
hf 14b view --selftest- runs the MyKey parser self tests (@iceman1001) - Removed
hf 14b valid- the SRIX4K scrambler stub it wrapped is finished and lives in the MyKey parser (@iceman1001) - Fixed build too large for 256kb images by guarding WITH_DESFIRE_SIM (@iceman1001)
- Fixed
pm3 flash- the progress bar no longer keeps SIGINT after it finishes, CTRL-C works again afterwards (@iceman1001) - Fixed
CTRL-C/CTRL-Z- the client owns its signals instead of letting readline re-raise them, CTRL-C quits cleanly saving the history and CTRL-Z suspends reliably (@iceman1001) - Fixed
CTRL-C/CTRL-Z- readline re-raised caught signals to itself, which in a threaded client looped instead of quitting or suspending (@iceman1001) - Fixed
pm3 flash- the progress bar no longer keeps SIGINT after it finishes, CTRL-C works again afterwards (@iceman1001) - Changed
pm3 history- written after every command, so it survives a kill instead of only a clean exit (@iceman1001) - Changed
memset- the device's own implementation now fills a word at a time, the same treatmentmemcpygot. (@iceman1001) - Changed
receive_ng- the command payload is zeroed when a packet actually arrives rather than on every idle pass of the main loop. Thanks @Msprg (@iceman1001) - Changed
hf mfdes chk- runs with no arguments now, falling back to the bundled dictionary the wayhf mfdes detectalready does (@iceman1001) - Changed
hf mfdes chk- tidier output(@iceman1001) - Fixed
hf mfdes sim- a chained write is answered instead of being refused with 91 1C on its second frame. (@iceman1001) - Fixed
hf mfdes sim- an error status now ends the authenticated session, as M134034 7.3.4 requires of a card (@iceman1001) - Fixed
hf mfdes sim- answers are sized from the frame size the reader asks for in its RATS instead of a fixed 96 bytes (@iceman1001) - Fixed
hf mfdes sim- the length of a write is taken from the 3 byte length the command carries rather than guessed from how full a frame looked (@iceman1001) - Fixed
hf mfdes detect- the same cipher is no longer sent to the card twice, cutting a PICC level scan with the bundled dictionary from 99 authentications to 63 (@iceman1001) - Changed
hf mfdes detect- a single key number is printed as one value instead of a range of one, so a PICC level scan readskey num 0x00(@iceman1001) - Fixed
hf mfdes sim- an enciphered read longer than one frame is chained instead of refused, the init vector carrying from frame to frame (@iceman1001) - Fixed
lf read- a realtime read no longer ends early when the host falls behind, and the device no longer goes silent until it is replugged (@iceman1001) - Fixed
lf read- a realtime read ending on a full USB packet now delivers its last 64 bytes, an odd packet count was silently one packet short (@iceman1001) - Fixed
lf read- a transfer that stops short says so, instead of being presented as a complete read (@iceman1001) - Changed
lf read/lf sniff- the sample count is capped to the graph buffer size, the surplus was streamed and then thrown away (@iceman1001) - Added
hf mfdes sim- SetConfiguration is answered, so a reader can disable FormatPICC, switch the card to a random id, or give it a user defined ATS (@iceman1001) - Added
hf mfdes sim- ReadSignature is answered for a card image of a generation that has one, and refused the way a genuine EV1 refuses it (@iceman1001) - Added
hf mfdes sim- GetKeyVersion is answered, so a reader can read the version of any key without knowing the key itself (@iceman1001) - Added
hf mfdes sim- ChangeKeySettings is answered, enciphered and master key only, and clearing the configuration changeable bit is one way as it is on a card (@iceman1001) - Added
hf mfdes sim- ChangeKey is answered, both the plain and the XORed key frame, so a reader can rekey the simulated card and the new keys are in whathf mfdes esavewrites out (@iceman1001) - Added
hf mfdes sim- ChangeFileSettings is answered, plain when the change access right is free and enciphered under the key it names otherwise (@iceman1001) - Added
hf mfdes esave---keepsaves applications and files a reader deleted, which are otherwise left out so the dump is the card as a reader sees it (@iceman1001) - Added
hf mfdes sim- CreateFile in all five EV1 flavours and DeleteFile are answered, so a reader can lay out an application's file system on the simulated card (@iceman1001) - Added
hf mfdes sim- CreateApplication and DeleteApplication are answered, so a reader can add and remove applications on the simulated card (@iceman1001) - Added
hf mfdes sim- FormatPICC is answered, releasing every application and file and handing the memory back, with the PICC master key and its settings kept (@iceman1001) - Fixed
hf mfdes esave- the ATS was saved as zeros, asizeof()of the 256 byte destination cast to uint8_t wrapped to 0 and the copy was skipped while its length was still reported (@iceman1001) - Added
hf mfdes sim- DESFire EV1 simulation now answers authentication, secure messaging, file reads, writes and transactions from the card image in emulator memory (@iceman1001) - Fixed
hf mfdes sim- a 2TDEA key whose two halves match is handled as a single DES key, session key generation included, so the session key matches what a genuine PICC derives (@iceman1001) - Fixed
hf mfdes sim- the CMAC of a chained answer is taken over the whole transfer instead of being restarted on every 0xAF continuation (@iceman1001) - Fixed
PLATFORM_EXTRAS=BWM- a command started over the Proxmark5 wireless module can be aborted again. (@tweathers-sec) - Fixed
lf search- a leftover debug print no longer reportsDEBUG: detectindala | <n>on every failed Indala demodulation (@tweathers-sec) - Changed
memcpy- the device's own implementation now copies a word at a time when source and destination allow it (@iceman1001) - Changed NG replies - the outgoing frame is offset so its payload lands word aligned, taking USB transfer speed from 630 to 789 kB/s on RDV4 (@iceman1001)
- Fixed
AT91F_USB_SendStall- waiting for the host to collect the STALL is now bounded (@iceman1001) - Fixed
GET_LINE_CODING- the CDC line coding struct is now packed to the 7 bytes the spec defines (@iceman1001) - Fixed USB control transfers - a descriptor whose length is an exact multiple of the 8 byte control endpoint now ends with a zero length packet (@iceman1001)
- Fixed USB WCID descriptors - the device advertised Microsoft OS descriptor support in string 0xEE but stalled the vendor request that follows (@iceman1001)
- Added
hf mfdes sim- answers GetDFNames and GetISOFileIDs, so a reader sees the ISO file ids and DF names of the simulated card (@iceman1001) - Fixed
hf 14a- an FPGA bitstream download no longer destroys the emulator memory thateloadjust filled (@iceman1001) - Changed
hf mfdes sim- now a self contained DESFire simulation, answering both native and ISO 7816 wrapped commands (@iceman1001) - Fixed
hf mfdes- GetDFNames is no longer sent inside an authenticated session, which permanently disabled DESFire EV1 cards (@iceman1001) - Added
hf mfdes- the five DESFire status codes that mean the card damaged or disabled itself are now named instead of reported as-20(@iceman1001) - Fixed
hf mfdes- a command error now drops the client's secure channel, since the PICC has already ended the authentication (@iceman1001) - Fixed
hf mfdes- file settings that could not be read are no longer reported and dumped as a zero byte standard data file (@iceman1001) - Fixed
hf mfdes pc- the proximity check commands now check the card's status byte instead of treating an error as success (@iceman1001) - Changed
hf mfdes sim- now runs through the shared ISO14443-A simulation loop as tag type 3 (@iceman1001) - Added
hf mfdes eload/esave/eview- load a DESFire card dump into emulator memory (@iceman1001) - Fixed
PLATFORM=PM3ICOPYX- builds again, it has no FPGA power switch and the AT91 GPIO layer used the pin unconditionally (@iceman1001) - Fixed
fpga_compress- PM3ULTIMATE builds again, its bitstreams are an exact multiple of the interleave size (@iceman1001) - Fixed
hf legic eload- an upload after a command that left a different FPGA bitstream loaded now writes the whole image (@iceman1001) - Fixed
hf legic sim- no longer wipes the emulator memory thathf legic eloadjust filled (@iceman1001) - Changed emulator memory - raised from 4096 to 8192 bytes (@iceman1001)
- Fixed
hf 14a sim- a dynamic response now gets a modulation buffer sized to fit it, instead of one 68 bytes too small (or 1788 too large for ST25TA) (@iceman1001) - Fixed
BigBuf_malloc- takes a uint32_t, so a request of 64KB or more fails instead of wrapping to zero (@iceman1001) - Fixed
BigBuf_max_traceLen- returns a uint32_t, so LF sampling on a device with more than 64KB of BigBuf is not handed a truncated buffer (@iceman1001) - Changed
hf mf view- now show which VIGIK fields are RSA signed (@iceman1001) - Changed
hw status- now reports EMULATOR memory (@iceman1001) - Changed
hf mf view- Urmet Captiv cards now decode their number field and data regions (@iceman1001) - Changed
hf mf view --selftest- now also checks the Hexact payload decoder, both ways (@iceman1001) - Changed
hf mf view- Hexact sector 9,11 payload is now decoded and cross checked against sector 0,15 and UID (@iceman1001) - Added
hf mfdes dump- now walks the whole PICC and saves ahf-mfdes-<UID>-dump.jsoncard image, picking uphf-mfdes-<UID>-keys.jsonon its own (@iceman1001) - Added
hf mfdes view- print a DESFire card dump file, no device needed (@iceman1001) - Fixed
sprint_hex- a buffer twice the old size, so printing a long block no longer runs off the end of the static buffer (@iceman1001) - Added
vigik_recover_pk.py- recover public keys from RSA signatures (@iceman1001) - Fixed
hf mf autopwn- a sector that cannot be cracked no longer discards the keys already recovered (@iceman1001) - Fixed
hf mf nested- a NAK from the tag now ends the nonce collection instead of retrying until the client times out (@iceman1001) - Fixed
hf mfdes- select / authenticate failures are now reported once, naming the AID and the failing step (@iceman1001) - Fixed
-f <fn>- a filename given with its own extension is now used as-is on both load and save (@iceman1001) - Fixed
hf mf view- VIGIK signature verification now recovers the ISO 9796-1 message and checks it against the card (@iceman1001) - Added
hf mf view --selftest- recovers and checks the signature of a known good expired VIGIK card (@iceman1001) - Changed
hf mf view/hf mf dump --ns- identify VIGIK family systems (@iceman1001) - Added
parsehid.c- HID PACS decoding for MIFARE Classic dumps - Added
parsevigik.c- VIGIK PACS decoding for MIFARE Classic dumps (@iceman1001) - Changed
hf mf view- now decode a HID PACS credential (@iceman1001) - Changed
hf mf dump --ns- now decode a HID PACS credential (@iceman1001) - Fixed
fpga_compress -d- a single bitstream archive was unpacked 2384 bytes short, the trailing partial interleave chunk was dropped (@iceman1001) - Fixed
fpga_compress- a build with only one FPGA bitstream (SKIP_LF,SKIP_FELICA,SKIP_ISO15693) packed it as a single 1 MB block the ARM could not decompress (@iceman1001) - Fixed
FpgaDownloadAndGo- a failed FPGA decompress leaked the ring buffer, leaving BigBuf 16 kB short for the rest of the session (@iceman1001) - Added
hf mf dump --sk- save extracted keys to binary file (@iceman1001) - Changed
hf mf dump --ns- now runs the same analysis ashf mf view(@iceman1001) - Changed
tools/pm3_online_tests.sh desfire_value- the plain/mac assertion pairs sent byte identical APDUs (@iceman1001) - Fixed
smart raw --t1- a card runs the protocol its ATR names until a PPS changes it (@iceman1001) - Fixed
tools/pm3_online_tests.sh smartcard- the T=0 checks used the non existent-0flag (@iceman1001) - Fixed
hf mfdes dump- the ISO file id probe ends the PICC session on applications without ISO file ids (@iceman1001) - Changed
hf mfdes lsfiles/hf mfdes dump- no longer warn about a missing ISO file id list (@iceman1001) - Fixed
hf mfdes read/hf mfdes write- a file whose access right is free (0x0E) is served in plain by the PICC (@iceman1001) - Fixed
hf mfdes value- credit/debit/limitedcredit used a fixed comm mode, now look on card (@iceman1001) - Fixed
hf mfdes value -o get/hf mfdes dump- a value file read in the wrong comm mode printed a silently wrong value instead of failing (@iceman1001) - Fixed
lf idteck demod- without--rawit decoded a zeroed stack buffer instead of the graphbuffer, always reporting card id 0 (@mfcarroll) - Fixed
lf idteck demod- a raw frame without the Idteck preamble printedNo genuine IDTECK foundand then announced a tag anyway (@mfcarroll) - Changed
lf idteck demod- no longer prints an HID H10301 credential built from the Idteck card id (@mfcarroll) - Added
trace clear- clears the tracebuffer (@iceman1001) - Changed
trace save -1- now downloads from device by default (@iceman1001) - Added
hf 14a antifuzz --coll- the UID collides from the 9th bit (@iceman1001) - Changed
trace list -t 14a- decodes SEL 0x99..0x9F, shows how many UID bits a bit oriented ANTICOLL claims (@iceman1001) - Fixed
hf iclass encode/hf iclass tagsim/hf mf encodehid/lf hid sim/lf hid clone/lf hid brute---cnwas read with a 32 bit getter (@iceman1001) - Changed
hf mf eload- the device now zeroes the emulator memory before the upload (@iceman1001) - Fixed
hf mf sim/hf 14a sim- the anticollision responses were prepared in BigBuf beforeiso14443a_setup()(@iceman1001) - Changed
CAPABILITIES_VERSIONto 10 -hf mf eloadsends a flags byte the device did not have before, so client and firmware must be flashed as a pair (@iceman1001) - Changed
mem spiffs upload- the file is held open across packets instead of being reopened by name for each one (@iceman1001) - Added
hf thinfilm sniff- passively records the frames a Thinfilm / NFC Barcode tag beams at a reader (@iceman1001) - Fixed
hf thinfilm sim- it now holds the genuine tag's measured 65536 carrier period frame rate instead of a fixed delay (@iceman1001) - Changed
mem spiffs upload/mem spiffs dump- both now print inline progress, and a refused write is reported with the byte it stopped at instead of claiming success (@iceman1001) - Changed real-time LF sample reads
lf read,lf sniff,lf cotag reader(@iceman1001) - Changed the
INPLACEspinner prefix (@iceman1001) - Fixed
mem spiffs dump- a file of 64K or more wrapped the uint16_tBigBuf_calloc()takes, the download now streams one frame at a time (@iceman1001) - Fixed SPIFFS flash layer - a failed erase was reported to SPIFFS as success, letting it write into an un-erased sector where NOR AND-semantics silently mangled file data (@iceman1001)
- Fixed
hf thinfilm sim- a 32 sample field read between every frame cost 3.8ms and nearly doubled the frame repeat period (@iceman1001) - Added
hf thinfilm sim- it now traces, sotrace list -t thinfilmworks on the sim side (@iceman1001) - Fixed
hf texkom reader -v- now no ovewflow in the general decoder (@iceman1001) - Changed
trace list- the Hitag U and Hitag S annotators now build their text with thestrlen()offset (@iceman1001) - Fixed
hf felica- the service code footer wrote its closing bar past the end of a 128 byte buffer (@iceman1001) - Fixed
trace list- a Hitag U LOGIN or WRITE SINGLE BLOCK frame could write up to 17 bytes past the end of the 60 byte annotation buffer (@iceman1001) - Fixed
hf mf autopwn- it now re-authenticates and retries the block with the other key (@iceman1001) - Fixed
hf mf hardnested- the device declarednum_nonces * 4bytes but packs 9 bytes per nonce pair. Thanks @TheArchitect0880 (@iceman1001) - Changed
hf mfdes detect- with no-nit now sweeps every key number the application declares instead of only key 0 (@iceman1001) - Fixed
hf mfdes detect- the card error counter was shared by every key type, so a bad run during the DES pass could abort the AES pass (@iceman1001) - Fixed
hf mfdes detect- with no-fit drew candidates from the MIFARE Plus 16 byte key list, it now defaults to the bundledmfdes_default_keysdictionary (@iceman1001) - Fixed
hf mfdes detect- LRP was only found when the key settings happened to be unreadable (@iceman1001) - Added
hf mfdes chk --schann- now detect the secure channel EV/EV2/LRP mode; detected per application and can be overridden (@iceman1001) - Fixed
hf mfdes chk- found keys were tracked per key number instead of per application, so a key number recovered on one AID was skipped later (@iceman1001) - Fixed
data modulation- the 160 sample antenna settle trim was never undone, so the graph buffer stayed short for everything after it (@mfcarroll) - Changed
tests/lf_t55xx_writetest.lua- reads each block three times and names how a bad read differs (rol1,ror5,inverted,shr1) instead of only pass/fail (@mfcarroll) - Fixed
lf t55xx detect- PSK1 now detects at every bit rate and subcarrier. (@iceman1001) - Fixed
lf t55xx detect- FSK was skipped entirely when the field-clock pair measured as neither legal pair, losing FSK1 at RF/32 and RF/40 and every variant at RF/16 (@iceman1001) - Fixed
lf t55xx detect- the block 0 rotation was picked by scan order; the measured broadcast period now settles it (@mfcarroll) - Fixed
lf t55xx detect- the psk antenna-settle trim left the graph 160 samples short, so the graph-sample anchor was discarded on most block reads (@mfcarroll) - Fixed
lf psk demod- lead-in samples were accepted as a phase shift, complementing the rest of the word (@mfcarroll) - Fixed
lf fsk demod- a leading run too short to be a bit was forced to one, fabricating a bit and shifting the word (@mfcarroll) - Fixed
lf nrz demod- the samples before the first level change were counted as bits, rotating the word whenever that edge moved (@mfcarroll) - Fixed
lf t55xx dump/read- blocks were extracted at a bit offset cached from the lastdetectThe offset is now anchored in graph samples (@iceman1001) - Fixed
lf t55xx write --verify- a successful write could be reported as a validation failure (@iceman1001) - Fixed
lf t55xx detect- the automatic detect after a block 0 write reported a password that was never supplied (@iceman1001) - Fixed
hf emrtd info- now correctly pretty print algos (@iceman1001) - Fixed
trace list -t topaz- now parses topaz reader frames up to 16 bytes (@iceman1001) - Fixed
hw bwm- doc and comment references still named the flathw bwmsetcap/bwmcharge/bwmautooffcommands from before the subgroup move (@xilni) - Added TA1=96 support via pwm to sim module
sim024.bin- v4.66 (@Antiklesys) - Added
hf mfu ndefformat- NDEF format Ultralight/NTAG tags, restores the NXP factory Capability Container for the detected type (@0x6r1an0y) - Changed
lf hitag- refactoring hitag2 operations and now they work much better (@iceman1001) - Fixed
lf hitag list- now prints in same style like the rest (@iceman1001) - Changed pathing - client now supports
~/tilde sign in paths (@iceman1001) - Added
hf_legic_rdv4- Standalone mode for managing 7 persistent legic dumps (@digitalhoax) - Fixed
lf t55xx detect- dropped the psk3 candidates (@mfcarroll) - Fixed
lf t55xx detect- a psk3 tag read back as psk2 with a block 0 one bit out (@mfcarroll) - Added doc/md/PM5_Start_Here/Getting_Started_With_PM5.md now exists as a starting point for those who have their PM5 (@innocentbystanderproxmark)
- Fixed
tools/ePassport- the personal number read from the MRZ optional-data field showed a filler character where a space belonged (@pkilar) - Fixed
tools/ePassport- the detail tabs named the files their data came from as fixed text, so a document without EF_DG11 was told otherwise, and the personal-number caption wrapped (@pkilar) - Added
tools/ePassport- EF_DG13 is decoded, and a Polish document's PESEL is shown as the personal number when it carries no EF_DG11 (@pkilar) - Fixed
tools/ePassport- a disabled button drew Kivy's banded disabled texture, which left its label unreadable (@pkilar) - Fixed
hf 14b- a card asking for a waiting time extension of 4 or more left the timeout at zero, so any ISO14443-B card needing time to answer looked like it had stopped responding (@pkilar) - Fixed
hf mfdes chk- now handles-kuser supplied keys properly (@iceman1001) - Fixed
BigBuf_Clear_keep_EM()- now also clear the trace length set (@iceman1001) - Fixed
BTADDON- rx ring reported empty when filled to exactly its size, silently dropping 1kB of received data; now read straight from the PDC banks (@iceman1001) - Changed
hf 15|iclass- poll for an abort once per 1024 sample bytes helps BTADDON builds stop blowing the DMA circular buffer (@iceman1001) - Fixed
tools/ePassport- a read that dumped nothing is now reported as a failure with the client log kept beside the dump, and EF_CardAccess/DG14 protocols are decoded and correctly named (@pkilar) - Fixed
tools/ePassport- FILES and LOG panes no longer go blank on long content, and picture files now show the picture (@pkilar) - Fixed
hf xerox view- now rejects a dump file too small to contain the info blocks instead of reading past it (@munzzyy) - Changed NG frame layout to align better with 64bytes frames. From 512 -> 624bytes (@iceman1001)
- Changed
hf plot- converted to NG frame (@iceman1001) - Fixed
hf mfu cchk- now 3-pass key check all keys sent to device (@iceman1001) - Changed iso15693 on device side to share one response buffer across the reader helpers (@iceman1001)
- Changed version data on device side to not be inlined, freeing 1.5kB of stack in the main loop (@iceman1001)
- Changed
lf pcf7931- now use bigbuf_calloc and much smaller array (@iceman1001) - Changed
hf 15 sniff- now uses bigbuf_calloc and lessen ram footprint on device (@iceman1001) - Added individual json dump formats for ht2, ht1, htS, htU. No more .bin files either for hitag (@iceman1001)
- Change NG: iso14a_raw_cmd_t, convert hf 14a raw, dual-mode reader handler (@iceman1001)
- Support for flipper ISO15693.nfc dump files (@iceman100)
- Change NG: convert CMD_LF_EM4X50_ESET to em4x50_eset_t (@iceman1001)
- Change NG: convert CMD_LF_T55XX_SET_CONFIG to t55xx_setconfig_t (@iceman1001)
- Added a new ISo15693 v5 dump file format to handle 0x100 number of pages and 8 byte pages better (@iceman1001)
- Fixed ISO15693 v4 file handling and converting to v5 (@iceman1001)
- Fixed clock
SpinDelayUsPrecisionto not wrap. Now more 43ms issues (@iceman1001) - Changed
hf felica raw- now can stream per-window envelope for better measurments (@iceman1001) - Updated
fpga_pm3_felica.bit- FeliCa signal handling got refactored. (@iceman1001) - Changed client tab completion - vocabulary is now built at runtime from the live command tree and uses the same availability rules as
help(@Msprg) - Fixed standalone modes - the one second button hold trigger was a no-op on all non-PM5 platforms, leaving
hw standaloneover USB as the only entry point (@ShawInnes) - Added
sim022.bin- enabled burst mode transfers, which allows us to do TA1=96 in speeds (@iceman1001) - Fixed
hf felica liteauth- empty long option names for-cand-kmade argtable read past the string (found by ASAN on--fulltext) (@Msprg) - Added
sim020.bin- v4.60 of sim module firmware, better T=0 handling and clock etu handling (@iceman1001) - Fixed
hf seos sam- now have a invalid pacs guard (@iceman1001) - Changed i2c comms to auto-negotiation and use ATR-keyed rate cache for speedier smart card comms (@iceman1001)
- Changed
emv search- now has better table output (@iceman1001) - Changed client side polling. Should make client more spiffy (@iceman1001)
- Fixed
trace list -t 7816- now handles contact vs contactless annotation better (@iceman1001) - Added
smart pps- ISO 7816-3 protocol and parameter selection exchange (@iceman1001) - Added
sim015.bin- sim modul firmware now supports T=0 and T=1 (@iceman1001) - Added tools script
tools/ePassport/ePassport- kivy python3 script that dumps a passport with BAC/CAN and a nice viewer (@iceman1001) - Added tools script
external_sam_read.pyenabling PM3 3 Easy and Proxmark 5 to use an external SIM/SAM reader forhf iclass samandhf seos samcommands (@Antiklesys) - Added
nfc encodeandhf mfu ndefwrite- build NDEF URI/Text/AAR records and write them to Ultralight tags (@0x6r1an0y) - Fixed
hf emrtd info- the picture viewer now scales images to the window instead of pinning them at native size (@iceman1001) - Added
hf emrtd- PACE-CAM (Chip Authentication Mapping) session support. The anti-clone proof itself is not yet verified (@iceman1001) - Added
hf emrtd test- offline regression tests for the PACE / secure messaging primitives (@iceman1001) - Added
hf emrtd info/dump --can/--pace/--bac- PACE-ECDH-GM support with MRZ or CAN passwords, AES-CMAC-128/192/256 and 3DES-CBC-CBC secure messaging (@iceman1001) - Changed
hf emrtd info- now shows EF_DG2 portraits for JPREG2000 via new dependecy lib (@iceman1001) - Changed
hf emrtd info- now shows portrait, signature and other biometrics at the same time (@iceman1001) - Fixed
pm3_grabbed_output_get- heap overflow (@jonyen) - Fixed
hf iclass sam- removed the old implementation (@iceman1001) - Fixed (PM5) failing to re-enter the bootloader (@nemanjan00)
- Fixed
hw fpga config(PM5) - now powers on the FPGA 24MHz clock (@nemanjan00) - Fixed
hf mfdes chk- now correctly check all provided keys instead of only checking a small portion (@corollary-de). - Fixed
hf iclass unhash- now omitting valid hash0 pre-images (@trichimtrich) - Fixed
hf iclass unhash- returning no pre-images at all for some keys, caused bycheck()not being invertible in a single reading (@trichimtrich) - Added
--rgboption tohf tune/lf tune(PM5) - mirrors the antenna tuning level on the antenna RGB LED (@nemanjan00) - Fixed
hw version/hw status(PM5) - now showing correct information for fpga images (@nemanjan00) - Fixed
hw status[Model] section reporting "PM3 GENERIC" firmware on Proxmark5 (PM5/AT32); it now reportsPM5(@nemanjan00) - Added
hw version/hw status- now reports Proxmark5 (PM5/AT32) correct MCU (AT32F437) (@nemanjan00) - Added CMake support for armsrc and bootrom (@xianglin1998)
- Added HAL support for ARM firmware (@xianglin1998)
- Fixed
hf mf dump- preserving readable sector trailer Key B data (@oSPANNERo) - Changed
magic_cards_notes.md- documented the USCUID-UL helper scripts (hf_mfu_uscuid/hf_mf_uscuid_prog) (@c-barron) - Fixed
hf_mf_uscuid_prog.lua- corrected the script name shown in its usage text (@c-barron) - Added
hf felica seacauth1command (@kormax) - Added
lf trovancommands to support Trovan Animal ID (@iceman1001) - Added support for emulating ST25TA tag (IKEA Rothult) with custom NDEF response (@Sanduuz)
- Added
hf mf gdmgetblk/gdmgethidblk/gdmsethidblk/gdmsetuid/gdmwipe/gdmsetsig(@0x6r1an0y) - Changed
hf mf gdmparsecfg/gdmsetblk(@0x6r1an0y) - Renamed
hf mf gdmcfg(@0x6r1an0y) - Added
hf mfu aesgetuidfor retrieving the real UID when random ID is enabled, using the UIDRetrKey. (@lolbird123) - Fixed
hf iclass viewreading past the end of dump files smaller than a picopass header (@munzzyy) - Fixed
wiegand decodereturning facility code 16777339 instead of the encoded value for the IR56 (@munzzyy) - Fixed
lf em 4x05 dumpwriting byte-swapped (corrupted) block data to the saved dump file (@munzzyy) - Added
hf 14b dumpsupport for Standard ISO14443-B tags (@thisiscamk) - Added
hf 14b ctrdblandhf 14b ctdumpcommands for interacting with ASK CTS tags (@kormax) - Fixed
hf legic migratefailing to parse the optional DCF argument as hex (@IdanHo) - Add support for parsing Finnish Helsinki Regional Transport (HRT) travel cards (@Sanduuz)
- Added standalone mode
HF_DOEGOX_COMMIT- DESFire suspended commit without relay (@doegox) - Changed
hf 14b info- now support Innovatron protocol detection (@kormax) - Improved
lf cotag readerandlf cotag demod- Reimplementation and enhancement of proxmark3 COTAG support - Added
hf felica simcommand (@kormax) - Added
mad read,mad write,mad verify,mad decode,mad encodecommands with typed struct MAD API (@AlxCzl) - Added
hf mfdes getversioncommand (@kormax) - Fixed iCLASS emulator writes clearing previously loaded emulator memory after an FPGA reload (@cindersocket)
- Added DES transport mode support for iCLASS credential encode/decode helpers. (@cindersocket)
- Changed
hf iclass view- now detect iCLASS SE SIO blocks from AIA values that point past block 6. (@cindersocket) - Changed
doc/magic_cards_notes.md- updated the ID82xx / Hitag µ clone section with current Proxmark3 support, chip variations, default passwords and detection notes (@mishamyte) - Added two Mifare Classic keys into extensive dictionary which are hardcoded into Mifare Plus SE (@team-orangeBlue)
- Fixed
hf mfp rdblwhen using "read multiple" blocks by decrypting the entire buffer instead of one block only (@team-orangeBlue) - Improved
hf mfp dumpexecution speed by removing crypto+card restarts, approx. 40% faster (@team-orangeBlue) - Added support for non-first authentication in Mifare Plus (@team-orangeBlue)
- Added CUDA version of tools/mfulc_des_brute (@C2Pwn)
- Added
hf mfu desbrutecommand: native client support for ULC key recovery (@C2Pwn) - Added
hf mf sencommand: native client support for FM11RF08S SEN recovery (@C2Pwn) - Fixed an issue where the COM port was sometimes not being selected on Windows (@boss-chifra)
- Added Makefile
PLATFORM_FILEvariable to specify another Makefile.platform file (@doegox) - Added
hf calypso probecmdcompatcommand (@kormax) - Added secure channel operations to
hf iclass samand fixed/improved I2C bus operations (@Antiklesys) - Added
hf calypso listcommand (@kormax) - Added
hf mfd verifycertcommand (@kormax) - Added
hf calypso dumpcommand (@kormax) - Added
pm3trace_edit.pyscript for editing of pm3 trace files (@iceman1001) - Added
hf calypso infocommand (@kormax) - Added ARM compilation support for picolibc, fixing compilation on Debian Forky (@doegox)
- Added
hf mdfes leafcommand (@pcunning) - Added
hf mfdes vdesigncommand (@kormax) - Added
hf iclass liberate- simple command to remove changes to MKF or Icopy-X iclass tags (@iceman1001) - Fixed
mfpReadSectorfunction to decrypt received data, fixing commands likehf mfp dump(@team-orangeBlue) - Added
hf mfdes intauthcommand (@kormax) - Improved
hf iclass legbrutethroughput: added a 64-wide bitsliced MAC1 sweep that tests 64 key candidates in parallel per cipher tick. Thanks @Chick3nman (@Antiklesys) - Improved
hf iclass legbrutethroughput further: added wider SIMD backends (128-lane NEON, 256-lane AVX2, 512-lane AVX-512F) Thanks @Chick3nman (@Antiklesys) - Added
hf mfdes pccommand (@kormax) - Fixed
hf mfu ndefreadNDEF data area size handling (@mjaksn) - Fixed
hw qc_pm5command to ensure the RGB LED is off at the conclusion of the test (@barefootdeveloper) - Improved
hw qc_pm5command to support specifying a timeout (@barefootdeveloper)