Commit graph

141 commits

Author SHA1 Message Date
pwpiwi
0b4efbdef2
add: 'hf mf personalize' (personalize UID on Mifare Classic EV1 7byte UID cards)
* add/use some #defines
* whitespace fixes
* #include refactoring
* add line to CHANGELOG.md
2019-08-22 07:53:17 +02:00
pwpiwi
f98702bace
chg 'hf mf chk':
* don't repeatedly clear trace while running (PR 243 by @mceloff from https://github.com/RfidResearchGroup/proxmark3)
* standard LED handling
* better check for key file syntax
* get rid of "res" column when printing the result. Show unknown keys more prominent as "     ?     "
2019-08-10 23:30:47 +02:00
mwalker33
88b3dada70 Fix Issue #843 - hf mf chk - t Doesnt save to emulator memory 2019-07-23 20:47:29 +02:00
pwpiwi
b8dd1ef649
upgrading 'hf mfu' (#830)
* chg: write new dump file format by @mceloff
* chg: rename 'hf mfu dump' option 'n' to 'f' to align with other commands and RRG repo
* chg: replace ISO14443A_CMD_READBLOCK by MIFARE_CMD_READBLOCK, same for WRITEBLOCK
* fix: mifare_ultra_readblock() returned 14 bytes instead of 16
* chg: param_gethex_ex() now checks maximum output buffer length
* chg: ul_comp_write() was incomplete and for magic testing only
* fix: 16bit ULC counter had been displayed as 32bit
* chg: add check for 7 Byte UID, drop check for ATQA in type identification GetHF14AMfU_Type()
* fix: send HALT instead of dropping field in order to maintain a defined state
* chg: DropField() when command ends
* chg: check for invalid page ranges in 'hf mfu dump'
* fix: print correct lock bits when page range is used
* fix: do not write (incomplete) dumpfile when page range is used
* add: use UID for filename when no filename is given (RRG repo)
* chg: don't clear trace on each ULC authentication, clear trace at beginning of each command
* fix: don't send (DESFire?) deselect command after authentication
2019-06-06 07:33:12 +02:00
pwpiwi
4be9f36ebe
start updating 'hf mfu' commands (#818)
* use PrintAndLogEx()
* fix some printouts
* some #include refactoring
* whitespace
2019-05-28 07:48:55 +02:00
pwpiwi
a39af1cb9c
Add: new option 'd' in 'hf mf ekeyprn' to create dumpkeys.bin from emulator memory (#822)
(and whitespace fixes)
2019-05-22 19:02:58 +02:00
pwpiwi
a8561e356b
fix hf mf sim (#812)
* fix parity encryption (thanks to Eloff, http://www.proxmark.org/forum/viewtopic.php?id=6347)
* add support to simulate Mifare Mini, Mifare 2K and Mifare 4K
* change to standard LED handling (A: PM is working, B: reader is sending, C: tag is responding, D: HF field is on)
* NAK on unknown commands
* allow unencrypted HALT
* don't display messages during simulation (or we will miss next reader command)
* use DMA to receive reader command
* switch earlier from send to listen mode
* move ADC initializer to iso14443_setup
* remove remainders of incomplete Mifare 10Byte UID simulation
* show 'short' bytes (7Bits or 8Bits without parity) in 'hf list mf' and 'hf list 14a'
* whitespace
2019-04-19 10:22:10 +02:00
Oleg Moiseenko
fdd9395d1a Ndef and MAD (#801)
* move mifare stuff to separate folder
* add mad and ndef
2019-03-19 07:51:10 +01:00
Michael Farrell
4309ef8fee Allow skipping or trying different keys in hf mf dump (#759) 2019-01-16 09:51:55 +01:00
Fl0-0
daccbcdc8d Added mifare trailer block decoding for sector commands (#734) 2018-12-07 14:09:41 +01:00
Oleg Moiseenko
ac4ecfe353 added mifare trailer block decoding (#726) 2018-12-03 08:29:13 +01:00
pwpiwi
5594c6215e
fix "hf mf chk" <t|d|s|ss> flags (based on PR #700) (#718) 2018-11-30 07:45:01 +01:00
Oleg Moiseenko
ae3340a0fb Mfp commands (#698)
* add write perso from https://github.com/Proxmark/proxmark3/blob/master/client/scripts/mifarePlus.lua
* commit perso from https://github.com/Proxmark/proxmark3/blob/master/client/scripts/mifarePlus.lua#L184
* added errors https://github.com/Proxmark/proxmark3/blob/master/client/scripts/mifarePlus.lua#L91
* fix bug in CLIParamHexToBuf
* added init card command
* auth4 refactoring
* add changelog
2018-10-24 18:58:12 +02:00
Oleg Moiseenko
54e3cfcb74 small improvements in auth (#694) 2018-10-12 14:13:58 +02:00
Oleg Moiseenko
ae027818ac small fix in auth (#693) 2018-10-11 19:28:29 +02:00
Oleg Moiseenko
7dadcc959f auth 14443-4 (#692)
* AES authentication
2018-10-10 22:34:04 +02:00
pwpiwi
44964fd181
Code cleanup (#616)
* coverity fixes (including a real bug in cmdhftopaz.c)
* Typo fix
* replace TRUE/FALSE by stdbool true/false
2018-06-13 08:13:20 +02:00
pwpiwi
ad939de501
USB comms: part 4 towards @micolous PR #463
* make uart_communication(), storeCommand() and getCommand() static in comms.c
* move receiver thread creation and respective mutexes to comms.c
* add mutex and signal for tx buffer
* use comms.c for flasher as well
* remove comm functions from client/proxmark3.h
* this completes isolating all USB communication related functions in comms.c
* don't assume a port to be defined by a name. Change parameter in OpenProxmark() to void*
* comms.c: set sp and serial_port_name to NULL when offline
2018-06-03 14:25:20 +02:00
Oleg Moiseenko
a37725facf add nested auth decoding to hf mf sniff 2018-02-09 15:50:55 +01:00
Arnie97
32e6891a05 hf mf nested: use bitwise or instead. (#556) 2018-02-01 08:09:14 +01:00
Arnie97
7b7416bd3b hf mf nested: transfer keys to the correct block in one sector mode. 2018-01-27 01:55:38 +08:00
Arnie97
36545f0a56 hf mf eset: reuse mfEmlSetMem(). 2018-01-27 01:09:56 +08:00
Arnie97
4e002980af hf mf ecfill: Add the missing line break. 2018-01-25 14:39:27 +08:00
Oleg Moiseenko
8ec06f5ef3 hf mf sniff: small fixes 2018-01-12 22:37:55 +01:00
Iceman
932af56ea0
Merge pull request #538 from merlokk/hardnestedsetsimd
hardnested SIMD select
2018-01-06 18:54:27 +01:00
merlokk
362d203909 works 2018-01-02 22:28:13 +02:00
Iceman
e1e7a09db1
Merge pull request #533 from merlokk/chktd
fix #532. looks at length of parameters.
2017-12-30 15:23:14 +01:00
Pierre Pronchery
3ded0f97d3 Khorben/warnings (#519)
* Fix warnings and missing #include for <ctype.h>
* Avoid a warning in client/util.c
2017-12-28 17:56:18 +01:00
merlokk
55b700a0ac fix #532. looks at length of parameters. 2017-12-28 13:29:30 +02:00
ikarus
6148817a7f fix: usage and sample text of hf mf cwipe 2017-12-06 23:30:27 +01:00
pwpiwi
e537c3e894 fix memory overflow in hf mf nested (issue #479) 2017-11-12 18:08:57 +01:00
William S. Moses
874572d419 Fix memory bounds error 2017-11-11 16:15:29 -05:00
Oleg Moiseenko
0c86cb0127 Check keys in hf mf nested (issue #426)
* hf mf nested added 14a timeout for check keys
* hf mf nested added options s and ss
2017-10-18 21:44:59 +02:00
Oleg Moiseenko
275d9e61c2 Check keys in hf mf nested and hf mf chk (#414)
Improve hf mf chk and hf mf nested
* hf mf chk. added interrupt of procedure by usb
* extract mifare default keys into separate module
* arm side multisector `hf mf chk`
* hf mf nested. change key search procedure
* hf mf nested. added key check after we have found a key.
* small fix hf list f
* hf mf chk. add timeout (arm side) and some tweaks.
2017-10-15 21:19:34 +02:00
Oleg Moiseenko
adf023ffe3 hf mf nested add some functionality (#403)
* Added nested auto mode. it checks known keys and then launches nested
* Check if we allready have all keys after nested
2017-10-05 13:37:51 +02:00
Fl0-0
a2d058f3aa Fix typo and gcc-7 warnings (#401)
* Fix typo in hf mf csave help
* Fix gcc 7 warning: '~' on an expression of type bool [-Wbool-operation], use logical ! not instead of ~
* Fix gcc 7 warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
* Fix gcc 7 warning: warning: duplicate ‘const’ declaration specifier [-Wduplicate-decl-specifier]
2017-09-26 16:36:05 +02:00
merlokk
2ce43a28f7 fixed #395 2017-09-26 14:29:08 +03:00
Oleg Moiseenko
3a05a1e739 reworking magic cheneese card wipe (#365)
Implement hf mf cwipe. Remove wipe parameter from hf mf csetuid.
2017-09-22 19:40:42 +02:00
Fl0-0
7906cb41ff Improve 'Magic' Mifare tags generation detection & hf mf c* commands magic 4k compatibility (#349)
* Improve 'Magic' Mifare tags detection

* Magic Mifare tags detection and version printing

* Magic s50/1k tag halt error correction for cload and csave

* hf mf c* commands for gen1b

* Use |= for bitwise operation

* gen1b: don't issue wipe command and don't expect response from WUPC1 magic command after a SELECT_UID: old UID display works in hf mf csetuid

* hf mf cgetsc compatibility for 4k

* hf mf csave compatibility for 4k

* hf mf cload compatibility for 4k, suppress halt errors messages for debug level 2

* Revert to MF_DBG_ERROR level in mifare_classic_halt() and don't issue the halt command for gen1b

* Improve 'Magic' Mifare tags generation detection & hf mf c* commands magic 4k compatibility
2017-07-12 15:58:32 +02:00
Iceman
1e11e5d762 bug: hf mf chk - wrong size
bug:  'hf mf chk' - size of keycounter variable is too small for dictionary files larger than 256rows.
2017-06-12 15:07:00 +02:00
pwpiwi
ec9c71129f Fix compile errors with MacOS (#312)
* Fix compile errors with MacOS
- _POSIX_C_SOURCE must not be defined for num_CPU()

* separate util_posix.c require changes in tools directory as well

* remove unnecessary self-include
2017-06-07 22:35:20 +02:00
marshmellow42
e57c8b2e56 more coverity fixes
plus fix some spacing in functions i touched.
2017-06-06 12:45:00 -04:00
marshmellow42
3d542a3dfa coverity scan bug fixes
mfu keyNo buffer overflow
mf reader attack key count reduced to not overrun c.d.asBytes buffer.
2017-06-06 12:12:18 -04:00
pwpiwi
c48c4d7856 New: implementing hf mf hardnested
This implements the attack described in
	Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened
	Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on
	Computer and Communications Security, 2015
It uses precomputed tables for many bitflip properties (not only two as in the paper)
and is therefore quite efficient. To prevent failing it doesn't do
differential analysis with several nonce bytes' Sum(a8) properties (each of them
may be wrongly guessed) - instead it concentrates on one nonce byte and tries all
Sum(a8) property guesses sequentially (ordered by probability). The brute force phase
makes use of aczid's bit sliced brute forcer (https://github.com/aczid/crypto1_bs).
Includes runtime CPU-detection to leverage modern (and old) SIMD instructions
with a single executable.
2017-05-31 07:30:56 +02:00
pwpiwi
4cb4b588c2 Deduplicate mfkey32 and mfkey64
- rename client/nonce2key.[ch] to mfkey.[ch]
- leave only main() wrapper in tools/mfkey
- add mfkey32 and mfkey64 to .gitignore
2017-03-23 18:38:17 +01:00
pwpiwi
7779d73c71 Code cleanup: Refactoring nonce2key
- include nonce2key() in mifarehost.c
- remove tools/nonce2key
- simplify mifare_autopwn.lua
2017-03-20 21:16:57 +01:00
pwpiwi
acf0582d53 Provide msclock() as Milliseconds timer for performance measures (#231)
- don't use clock(). It has different functionalities in Windows and Linux
- move sleep functions to util.h
2017-03-12 15:06:27 +01:00
pwpiwi
7cb8516cb5 Client code cleanup:
- cleanup some header files and respective #includes
- rearrange functions (definition before first use)
- use SCNxxx instead of PRIxxx macros in scanf()
- use stdbool true/false instead of self defined TRUE/FALSE
2017-03-06 21:03:13 +01:00
marshmellow42
40c6a02bc9 Add a retry loop to hf mf dump
helps get the data dumped even if positioning isn't 100% perfect.

also switched em4x05 commands to WaitUS instead of SpinDelayUs, per
@pwpiwi 's suggestion.
2017-02-28 11:09:42 -05:00
pwpiwi
4c16ae80f0 Code cleanup:
- correctly using stdtypes.h printf and scanf format string macros (PRIx64 et al)
- coverity fixes to client/cmdhfmf.c
- fix linker warning re missing entry point when linking fullimage.elf
2017-02-23 18:29:03 +01:00