Commit graph

179 commits

Author SHA1 Message Date
pwpiwi
98a67bc908 Fix some printf/scanf format strings 2020-05-11 14:46:22 +02:00
pwpiwi
929b61c670 Always enable fast response mode (was enabled for flasher only)
* ensure that CMD_ACK is used exclusively for the very last response of each PM3 operation. All Dbprintf() must be before.
* always switch off field before exiting
* append null packet for USB transfers % 64 bytes
* reformatting and whitespace fixes
2020-01-23 22:18:51 +01:00
pwpiwi
867e10a5fd usb communication (device side) refactoring
* merge cmd.c into usb_cdc.c
* move back usb_cdc.[ch] to common/
* declare low level functions usb_read() and usb_write() and more functions as static
* use cmd_receive() in bootrom.c and appmain.c
* remove unused memory wasting csrTab[100] in usb_cdc.c
* replace more byte_t by uint8_t
* more whitespace fixes
2020-01-15 18:49:28 +01:00
pwpiwi
72622d6429 usb communication (device side) housekeeping
* move cmd.[ch] and usb_cdc.[ch] to armsrc
* sorting out #includes
* replace byte_t by uint8_t
* some reformatting
* whitespace fixes
* (no functional changes)
2020-01-15 18:46:09 +01:00
pwpiwi
a749b1e58b
speedup 'hf mf chk' (#901)
* add separate timeout for tag response to nr_ar
* measure response time and use it for response timeout
* don't drop field between keyblocks
* some reformatting
* some whitespace fixes
* fishing for microseconds in TransmitFor14443a()
* allow arbitrary number of keys in MifareChkKeys()
* and move progress printing to MifareChkKeys()

Co-authored-by: uzlonewolf <github_com@hacker-nin.com>
2020-01-09 15:42:31 +01: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
pwpiwi
ca8a3478d9
iso14443b modifications (#804)
* LED handling
* improve 'hf plot' support
2019-03-24 18:04:42 +01:00
pwpiwi
1523527f94
fix LED signalling in hf 15 snoop and hf 14a snoop (#797)
* LED_A (yellow): PM3 is active (snooping)
* LED_B (green): reader is sending a command
* LED_C (red): tag is sending a reply
2019-03-12 07:49:23 +01:00
pwpiwi
189b817740
add 14a apdu send framing (based on RRG repo PR86 by Merlokk) (#795) 2019-03-12 07:46:49 +01:00
pwpiwi
fc52fbd42f
Add raw HF signal plotting (#786)
* Add raw HF signal plotting
* new fpga module hi_get_trace.v - store A/D converter output to circular buffer on FPGA
* new command 'hf plot' - pull data from FPGA and display it in Graph Window
2019-02-20 19:18:12 +01:00
Oleg Moiseenko
c719d385ef fix endless loop (#782) 2019-02-09 22:38:09 +01:00
pwpiwi
d9de20fa4b
Fix 15 snoop (#752)
* fixing hf 15: implement hf 15 snoop
* rename hf 15 record to hf 15 snoop
* speedup sampling / decoding:
*   new FPGA mode FPGA_HF_READER_RX_XCORR_AMPLITUDE implements amplitude(ci, cq) on FPGA
*   inlining the decoders in iso15693.c
*   inlining memcpy/memset in LogTrace()
*   giving up the moving correlator for SOF in Handle15693SamplesFromTag
* decode more of EOF in Handle15693SamplesFromTag()
* some refactoring
2019-01-12 13:28:26 +01:00
Oleg Moiseenko
39cc1c879e FIDO U2F NFC authenticators (#697)
* `hf fido` command
* detects FIDO tag
* add new commands for fido u2f
* added changelog
* added fido2 info
2018-11-17 20:22:21 +02:00
pwpiwi
050aa18b13
RDV40 compatibility fixes (#678)
* detect and use RDV40 higher voltage ADC channel for hw tune, hf tune, hw detectreader
* fix mode switching in hw detectreader
* detect Smartcard Slot in hw version
* i2c changes from https://github.com/RfidResearchGroup/proxmark3
* some formatting in proxmark3.h
2018-09-21 08:27:35 +02:00
pwpiwi
6a5d4e17f4
rework iso14443b device functions including FPGA I/Q signal transfer (#669)
* rework iso14443b device functions
* hf_read_rx_xcorr.v: transfer i/q pair in one 16bit frame
* hi_read_tx.v: invert ssp_dout. When nothing is transferred (ssp_dout=0), this results in no modulation (carrier on)
* adjust arm sources accordingly
* iso14443b.c: switch off carrier after hf 14b sri512read and hf 14b srix4kread
* iso14443b.c: fix DMA circular buffer handling
2018-09-16 00:53:28 +02:00
pwpiwi
664e132f88 hf mf mifare:
* prevent WDT crash on repeated tries
* comes with faster execution as side effect
* use uint8_t instead of byte_t
* populate ar instead of (correctly) assuming that it is zero
* remove the "will take a few seconds longer" message because it is no longer true
2018-02-08 14:51:24 +01:00
merlokk
35cc71b075 delete opposite states fix 2018-01-17 14:10:26 +02:00
merlokk
feb328c90a hf mf sniff small fix 2018-01-16 14:34:04 +02:00
Oleg Moiseenko
8ec06f5ef3 hf mf sniff: small fixes 2018-01-12 22:37:55 +01:00
pwpiwi
fa85b08504 fix iso14a_set_timeout() adjustment 2017-12-11 20:40:09 +01:00
pwpiwi
7c7327e7c8 fix: hf mf hardnested failed with new WUPA timing
* allow additional 2 ssp_frame cycles to detect SOF
* use only respective functions to get/set iso14a_timeout
* remove waiting time in MifareAcquireEncryptedNonces(). This is covered by GetATQA() now.
2017-12-10 19:27:46 +01:00
pwpiwi
47b78133a0 minor iso14443a timing fixes to avoid select errors:
* take setup frame guard time (SFGT) into account
* adjust iso14a_timeout by FPGA delays
* don't give up on first WUPA. Retry several times
2017-11-22 19:43:12 +01:00
pwpiwi
db68bcdb06
Complete WTX handling 2017-11-15 07:47:18 +01:00
merlokk
ba4f95b4af added some info from @peterfillmore fork 2017-11-11 23:05:08 +02:00
merlokk
a63505c953 Added work with S-Block WTX in 14a apdu on arm side 2017-11-11 22:56:50 +02:00
Iceman
e464f62258
Merge pull request #462 from pwpiwi/fix_hfmfsim
Fix hf mf sim (issue #412)
2017-11-10 18:07:25 +01:00
merlokk
b7d3e89923 changed iso14aapdu arm side and client 2017-11-09 16:39:40 +02:00
merlokk
eb6e8de45d moved includes, added clear_trace flag (it was there...) and fixed multiapdu iso14443 stream 2017-11-03 13:42:38 +02:00
pwpiwi
82f4955245 Merge branch 'master' into fix_hfmfsim 2017-11-02 21:37:42 +01:00
pwpiwi
b35e04a7c6 fix hf mf sim:
* more timing fixes
* correctly determine correction bit (taken from iceman's fork)
* add checking of Access Conditions for Read command
* never allow reading KeyA
2017-11-02 21:29:08 +01:00
Oleg Moiseenko
378d3406ca
Merge branch 'master' into 14a_rework3 2017-11-02 14:14:55 +02:00
Oleg Moiseenko
83df98d691 change comment in iso14443a.c (#459) 2017-11-01 17:44:43 +01:00
merlokk
499df9088d fix behavier reading iso14443-3 and iso14443-4 cards 2017-11-01 18:34:15 +02:00
merlokk
7376da5c44 revert SAK check 2017-11-01 18:22:03 +02:00
merlokk
bed3e4c20d Merge branch 'master' of github.com:merlokk/proxmark3 into 14a_rework3 2017-11-01 17:13:27 +02:00
merlokk
89ec86abd2 now SAK check is OK 2017-11-01 17:02:35 +02:00
merlokk
c5e9a0212e deleted condition in iso14a select (sak & 0x20 ==0) - error. Usually SAK = 88 2017-11-01 16:55:12 +02:00
merlokk
f1a983a330 fixed bug in CmdHF14ACmdRaw: if we cant select we send command anyway... 2017-10-30 17:58:43 +02:00
Oleg Moiseenko
618c220c38 small fixes in ReaderIso14443a() (#446) 2017-10-29 16:34:51 +01:00
pwpiwi
bb04ef216d small fix: make iso14a_set_timeout() external 2017-10-20 20:20:07 +02:00
pwpiwi
6e49717b5e fix hf mf sim (issue #412) (#419)
* move to separate files mifaresim.[ch]
* check CRC of commands
* don't execute commands without successfull authentication
* ensure correct timing of REQA, WUPA, ANTICOL and SELECT responses
* trace reader commands immediately, only fix start time after tag response. Decreases time to be ready for next reader command.
* remove iso14443-4 remnants
* trace raw reader commands instead of decrypted ones
* some refactoring

* fix hf mf sim
* timing: decrease time to get ready for new reader commands
2017-10-20 17:55:13 +02:00
pwpiwi
c04a4b60ce Don't do iso14443-4 select for mifare emulations on processor cards (IDPrime, SmartMX, ...) 2017-10-01 17:52:10 +02:00
etmatrix
4efdfbe638 Fixes 2 bugs in mifare simulate (#380)
- Check button press when there is NOFIELD, so we can exit also without FIELD
- struct nonces_t is moved to include/mifare.h so client and arm has the same definition
2017-08-17 16:59:48 +02: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
de77d4acde add: iceman1001's idea to reuse @pwpiwi's fast select without anticollision to speedup hf mf chk
(see http://www.proxmark.org/forum/viewtopic.php?id=2920)
2017-03-27 10:29:44 +02:00
pwpiwi
1f065e1dad Refactor parity functions
- get rid of __asm function in crapto1.h, use gcc builtin function instead
- make parity functions available in common directory
2017-03-25 22:03:17 +01:00
pwpiwi
33443e7caa Code cleanup: deduplicate crapto1 library (#228)
- merge the existing 4 crapto1 sources into common/crapto1
2017-03-09 11:12:50 +01:00
Michael Farrell
5b5489baf4 hf mf sim: Multiple fixes from review of PR #209.
- Don't increment the nonce when random mode is disabled (this breaks the
  standard attack).

- Don't attempt the standard attack when random mode is enabled (there's no
  point as it won't work, per comments from @pwpiwi).

- Attempt the moebius attack if the standard attack fails.
2017-01-26 20:30:13 +11:00
Michael Farrell
f9c1dcd9f6 Adds random nonce (r) option to hf mf sim.
This makes the PM3 generate pseudo-random nonces rather than sequential
nonces, to make it act a bit more like a "real" MFC card.  A reader would
otherwise be able to detect the PM3 probing based on the predictable nonces
and throw different authentication challenges (or refuse to authenticate at
all).

The code includes an implementation of a rand-like function (prand), similar
to the one from libc, which is seeded automatically based on the time it
takes between the PM3 starting up and the first call to the RNG.

This isn't cryptographically random, but should be "good enough" to be able
to evade basic detection.
2017-01-26 18:32:25 +11:00
marshmellow42
91f4d53123 couple bug fixes - clean up 2016-06-28 21:02:26 -04:00