Commit Graph

494 Commits

Author SHA1 Message Date
WillyJL b59c67ddb8 Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild 2025-11-01 21:05:20 +01:00
MX 90f446880a Add MIFARE Classic "Show Keys" UI
by aaronjamt
2025-10-12 21:54:34 +03:00
MX eed1d3367a ofw pr 4293 NFC FeliCa Improvement: Dump All Systems
by zinongli
2025-10-12 03:39:38 +03:00
Aaron Tulino 93ac669b41 NFC: Add MFC "Show Keys" UI (#473)
* Add MFC "Show Keys" UI

* Show Keys button on unlocked cards

* Some pzazz

* Update changelog

---------

Co-authored-by: WillyJL <me@willyjl.dev>
2025-10-06 05:35:29 +02:00
WillyJL 5d5fa5e9aa Merge branch 'feat/nfc-type-4-final' into mntm-dev 2025-10-06 01:32:15 +02:00
WillyJL 43f08bd0ba Merge remote-tracking branch 'ofw/dev' into feat/nfc-type-4-final 2025-10-05 22:31:59 +02:00
MX 40f7c007d9 Merge remote-tracking branch 'OFW/dev' into dev 2025-10-01 19:37:50 +03:00
Zinong Li 85b6b2b896 NFC FeliCa: Service Directory Traverse + Dump All Unencrypted-Readable Services' Blocks (#4254)
* SimpleArray attached to FelicaData

* tx rx done. response parsing done (in log)

* dynamic vector as buffer. rendering begin

* On screen render for directory tree

* flags in render to indicate is_public_readable

* beautify render flags

* format

* offload dynamic vector into individual files

* saving. exposed dir tree writing for double use

* save: additional formatting

* save: clean up and some additional notes

* load done

* delete unnecessary debug log

* Load: safer way to handle backward compatibility

`parsed` being true is only contingent on whether the header (device type, UID, etc) are correctly read. The detailed data can be absent if saved from previous versions.

Side effects:
1. The data format version number must not increment.
2. Newer sections of dumps must be appended in the end of the file.

* format

* handle block reading according to IC type

Old version was aimed for FeliCa Lite dumping, which doesn't apply to FeliCa standard. Thus they need to be diverged in the poller run workflow.

* read block content works. rendering begin

* Render Refactor: dir & dump view from submenu

* Render: show IC type name

* IC parsing function cleanup

* Revert "IC parsing function cleanup"

This reverts commit ee3f7bf125b54b10d238b0aeb657ba15f27f93ba.

* Load: Standard dump. Fully backward compatible

* format

* sync API version

* format saved file

* delete unused variable

* clean ups

* IC type addition

* correction

* beautify attribute parsing

* correction

* Lite save: delete extra line

* correction: FeliCa link in Lite-S mode

* format

* Save: simplify printing

* update IC type parsing

* conform to api standard: const resp ptr to ptr

also slightly faster and more readable block dump loop

* disambiguate workflow type vs ic type

It was too confusing to have the ic name string telling you one thing and ic_type enum saying the other. Might as well use better naming to indicate the use case for the two things

* beautify on device render

* reject dynamic_vector, embrace m-array

* lint

* use full variable name

* partial fix: poller context's data proper init

* edit unit test dump IC code

and a small bug fix for the Lite auth workflow

* unit test felica dump PMm correction

* Fixes for static analysis warnings

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2025-10-01 18:54:08 +04:00
MX 999afe3f5b post merge fix 2025-09-30 02:16:07 +03:00
MX f4529dc8c1 Merge remote-tracking branch 'OFW/dev' into dev 2025-09-29 23:11:36 +03:00
Nathan N e7634d7563 NFC: Ultralight C App Key Management, Dictionary Attack (#4271)
* Upstream Ultralight C dictionary attack (squashed)

* linter: formatting

* unit_tests: nfc: split nfc data to named var

* Fix mf_ultralight_poller_sync_read_card

* linter: suppressed warnings on TODOs

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-09-29 21:05:06 +04:00
MX 2c2228a4b9 merge ofw pr 4271
also thanks WillyJL
link to PR
https://github.com/flipperdevices/flipperzero-firmware/pull/4271/files
2025-09-21 16:45:31 +03:00
WillyJL d97155eb2d Format 2025-09-06 03:35:15 +02:00
WillyJL 3a35730a24 Merge remote-tracking branch 'xero/dev' into mntm-dev 2025-09-06 03:32:17 +02:00
noproto 8f279a682b Pretty UI 2025-08-18 23:54:00 -04:00
noproto 6e05de476f Skip working 2025-08-18 23:05:23 -04:00
noproto 9499c489c2 Fix display of key index during dict attack scene 2025-08-18 04:13:46 -04:00
noproto 0ec7a10ba9 UL-C dict attack scene is now visible 2025-08-18 04:00:20 -04:00
noproto 603e1bd978 Now reading an UL-C card gives the success tone only if the key is found 2025-08-18 03:16:36 -04:00
noproto 1c37a0e01c Don't skip the system dictionary 2025-08-18 01:42:20 -04:00
noproto 38b5d9fb16 Properly return when a key is found in user dict 2025-08-18 01:10:23 -04:00
noproto 1b88b86a11 Merge remote-tracking branch 'flipperdevices/dev' into ulcdict 2025-08-17 17:54:56 -04:00
MX c81c136121 merge all nfc app changes
by WillyJL
2025-06-30 20:39:27 +03:00
WillyJL 9e1baf715e Merge remote-tracking branch 'fork-ofw/feat/nfc-type-4-final' into mntm-dev --nobuild 2025-06-29 03:43:52 +01:00
WillyJL 2fd18802a5 NFC: Fix missing parsing with Read Specific Card Type (#411) 2025-05-10 01:28:20 +01:00
Willy-JL 8bedb187c0 Merge remote-tracking branch 'mntm/dev' into feat/nfc-plugin-mania 2025-04-14 08:52:19 +01:00
Willy-JL 5facd2a593 NFC: Improve loading of parser plugins 2025-04-14 08:52:02 +01:00
Willy-JL a6e40f6937 NFC: Simplify some duplicate code 2025-04-13 03:01:36 +01:00
Willy-JL 49d7ce7349 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-12 10:36:13 +01:00
Willy-JL 04415bf7dc Merge remote-tracking branch 'ofw/dev' into feat/nfc-type-4 2025-04-10 03:42:55 +01:00
MX 7c44bd1cbe Merge remote-tracking branch 'OFW/dev' into dev 2025-04-07 01:04:52 +03:00
RebornedBrain f07048d1b0 [FL-3902] NFC app now can launch MFKey32 (#4117)
* feat: app chaining

* add `launch_current_app_after_deferred`, remove `get_referring_application`

* fix naming

* new api

* fix f18

* Added new function which enqueues external app from nfc app

* Added path to MFKey32 app

* Button "Crack nonces in MFKey32" added to ReadMenu scene

* SaveConfirm scene adjusted to move to different scenes depending on state

* SaveSuccess scene now moves to different scenes depending on SaveConfirm scene state

* MfKeyComplete scene shows different text when MFKey.fap present on the device

* Now MfKeyClassic scene can run external app

* fix deferred launches after errors

Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: hedger <hedger@nanode.su>
2025-04-07 01:49:22 +04:00
Willy-JL 2a3112743f NFC: Pressing back on MFC Update doesn't retry 2025-03-21 06:03:12 +00:00
Willy-JL 1943661ea3 NFC: Refactor Write actions into ProtocolSupport 2025-03-21 06:02:08 +00:00
Willy-JL b503020f6d NFC: Implement Type 4 Tag writing biolerplate and structure 2025-03-17 06:46:13 +00:00
Willy-JL 661a467ff7 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-12-10 04:07:07 +00:00
MX 599bb5f6f5 Merge remote-tracking branch 'OFW/dev' into dev 2024-12-03 11:32:28 +03:00
Luu c3dc9e1ec2 Fix typo for mf_classic_key_cahce_get_next_key() function (#4015)
* Update mf_classic_key_cache.c
* Update mf_classic_key_cache.h
* Update mf_classic.c
* Update nfc_scene_mf_classic_update_initial.c

Co-authored-by: あく <alleteam@gmail.com>
2024-12-02 16:27:16 +09:00
noproto cc1316303f Merge remote-tracking branch 'noproto/dev' into ulcdict 2024-11-10 17:54:23 -05:00
noproto c3b8c54aa0 Support adding and removing new Ultralight C keys 2024-11-10 16:19:44 -05:00
Willy-JL 04360a47cc Merge commit '8427ec0098129a07f985e94248e12205883f2e41' into mntm-dev 2024-10-31 16:22:28 +00:00
Nathan N 8427ec0098 MIFARE Classic Key Recovery Improvements (#3822)
* Initial structure for nonce collection
* Nonce logging
* Dictionary attack structure
* Fix compilation
* Identified method to reduce candidate states
* Use EXT_PATH instead of ANY_PATH
* Use median calibrated distance, collect parity bits
* Modify parity collection
* Fixed parity bit collection
* Add note to fix nonce logging
* Fix nonce logging
* Clean redundant code
* Fix valid_nonce
* First attempt disambiguous nonce implementation
* FM11RF08S backdoor detection
* Initial accelerated dictionary attack for weak PRNGs
* Refactor to nested dictionary attack
* Renaming some variables
* Hard PRNG support for accelerated dictionary attack
* Update found keys, initial attempt
* Update found keys, second attempt
* Code cleanup
* Misc bugfixes
* Only use dicts in search_dicts_for_nonce_key if we have them
* Collect nonces again
* Should be detecting both backdoors now
* Relocate backdoor detection
* Hardnested support
* Fix regression for regular nested attack
* Backdoor read
* Backdoor working up to calibration
* Backdoor nested calibration
* Don't recalibrate hard PRNG tags
* Static encrypted nonce collection
* Update TODO
* NFC app UI updates, MVP
* Bump f18 API version (all functions are NFC related)
* Add new backdoor key, fix UI status update carrying over from previous read
* Clear TODO line
* Fix v1/v2 backdoor nonce collection
* Speed up backdoor detection, alert on new backdoor
* Add additional condition to backdoor check
* I'll try freeing memory, that's a good trick!
* Do not enter nested attack if card is already finished
* Do not reset the poller between collected nonces
* Clean up various issues
* Fix Hardnested sector/key type logging
* Add nested_target_key 64 to TODO
* Implement progress bar for upgraded attacks in NFC app
* Typo
* Zero nested_target_key and msb_count on exit
* Note TODO (malloc)
* Dismiss duplicate nonces
* Fix calibration (ensure values are within 3 standard deviations)
* Log static
* No nested dictionary attack re-entry
* Note minor inefficiency
* Uniformly use crypto1_ prefix for symbols in Crypto1 API
* Fix include paths
* Fix include paths cont
* Support CUID dictionary
* Fix log levels
* Avoid storage errors, clean up temporary files
* Handle invalid key candidates
* Fix memory leak in static encrypted attack
* Fix memory leak, use COUNT_OF macro
* Use single call to free FuriString
* Refactor enums to avoid redefinition
* Fix multiple crashes and state machine logic
* Fix inconsistent assignment of known key and known key type/sector
* Backdoor known key logic still needs the current key
* Larger data type for 4K support
* Fix typo
* Fix issue with resume logic
* Mark TODOs for next PR
* Remove redundant assignment
* Fix size_t format specifier
* Simplify auth_passed condition

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2024-10-31 09:53:58 +09:00
MX 86813d1b60 Merge remote-tracking branch 'noproto/nestednonces' into dev 2024-10-31 02:27:33 +03:00
noproto 2282587c15 Mark TODOs for next PR 2024-10-29 14:07:16 -04:00
noproto 60e0a697fa Initial structure for UL-C dictionary attacks 2024-10-28 19:56:28 -04:00
Willy-JL 806fd93b38 Merge branch 'nestednonces' into mntm-dev 2024-10-13 01:01:01 +01:00
MX 38889a434c Merge remote-tracking branch 'noproto/nestednonces' into dev 2024-10-11 21:13:50 +03:00
noproto a7c0819034 Refactor enums to avoid redefinition 2024-10-11 10:01:30 -04:00
Willy-JL 3aca32c497 Merge remote-tracking branch 'ul/dev' into mntm-dev 2024-10-10 01:34:28 +01:00
MX 1030574187 Merge remote-tracking branch 'noproto/nestednonces' into dev 2024-10-09 23:13:22 +03:00