Commit graph

1324 commits

Author SHA1 Message Date
Chris 76e7603ef1 textual 2018-09-03 22:36:43 +02:00
Chris 0e3ba1c058 CHG: easier to configure compilation of standalone mode. Just swap -D directive once your new standalone mode is ready and you added your code for it
based on a modification by @marshmellow42
2018-09-03 22:27:18 +02:00
Colin J. Brigato 8d673fa1bf First pass rewrite of flashmem driver for optimization. Lot of changes here. Provides PoC of saving and recalling a tag in Standalone mode. Added some printing passthrough to client to azccomodate for vt100 eye-candyness. FastREAD mode implemented for flashmem, testable from client. Beta but functionnal. Reading the whole flash with 1Kb to 32kb buffers was ~730ms, now 380ms Max (even at 24Mhz spi baudrate) 2018-09-03 00:02:44 +02:00
Chris f1d0e9db4d fix: revert back 2018-08-29 19:42:46 +02:00
Chris 42e883f67b FIX: print_result - now prints correct len.
FIX: DOWNLOAD_BUFFER -  now with correct result logic
2018-08-28 21:15:28 +02:00
Chris ca5b476730 FIX: 'standanlonemode colin' - mifare1ksim called with correct params (@cjbrigato) 2018-08-26 08:19:59 +02:00
Chris 2eab02e3ba CHG: 'standalone mode MattyRun' - added some comments and suggestion 2018-08-25 23:26:04 +02:00
Chris fe332a1f2b removed unneeded ramfunc attribute 2018-08-13 23:50:17 +02:00
Chris 91dea8d694 code clean. 2018-08-13 23:49:33 +02:00
Chris 5f77121694 initial commit to be in sync the-soon-defunct repo pm3rdv40. 2018-08-12 21:54:31 +02:00
Andreas Dröscher 9ba20b590a change: reduced demodulator to bare minimum
The initial code added complexity without improving reading distance.
Thankfully the peak detection signal path has a low noise floor.
2018-08-12 12:51:45 +02:00
Andreas Dröscher 0d0b651246 change: re-added trace log 2018-08-12 12:51:45 +02:00
Andreas Dröscher ff5b046903 change: re-added status LEDs
- LED_A: FPGA and 13.56MHz carrier is active
- LED_B: Reading Byte
- LED_C: Writing Byte
2018-08-12 12:41:45 +02:00
Andreas Dröscher e052fbc433 change: re-added legic write support 2018-08-12 12:41:45 +02:00
Andreas Dröscher 9d330dde87 fix: 32bit tick timer based on TC0 and TC1
TC1 counts the number of TC0 overflows (carry bits).
In random conditions TC1 would return or stay at zero,
instead of counting up. This due to the behavior of the
reset signal.

SAM7S Series Datasheet, 33.5.6 Trigger:
Regardless of the trigger used, it will be taken into account
at the following active edge of the selected clock. This means
that the counter value can be read differently from zero just
after a trigger, especially when a low frequency signal is
selected as the clock.

The new code first prepares TC1 and asserts TC1 trigger and
then prepares TC0 and asserts TC0 trigger. The TC0 start-up
will reset TC1.
2018-08-12 12:41:11 +02:00
Andreas Dröscher c06f0af7f3 change: switched from timestamps (us) to ticks
GetCountUS() has a jitter of +/- 7us this is not precise
enough to keep the PRNG in sync. 1.5 * GET_TICKS on the
other hand is spot on.
2018-08-12 09:59:48 +02:00
Andreas Dröscher e0adc976e0 change: added rx/tx coordination timestamp 2018-08-12 09:59:48 +02:00
Andreas Dröscher 7244f5825d change: legic reader tx back to bigbang
I've tried to modulate the Legic specific pause-puls using ssc and the default
ssc clock of 105.4 kHz (bit periode of 9.4us) - previous commit. However,
the timing was not precise enough. By increasing the ssc clock this could
be circumvented, but the adventage over bitbang would be little.
2018-08-12 09:59:48 +02:00
Andreas Dröscher 3029223158 change: legic reader now uses xcorrelation and ssc based io
- Even tough legic tags transmit just AM using xcorrelation
   results in a significantly better signal quality.
 - Switching from bit bang to a hardware based ssc frees
   up CPU time for other tasks e.g. demodulation
2018-08-12 09:59:48 +02:00
Andreas Dröscher c59150657c add: xcorr 211.875 kHz option
The FPGA supported this frequency for a long time, just the ARM code
had no define to enable it.
2018-08-12 09:59:48 +02:00
Andreas Dröscher db70ab8f7d change: remove broken legic simulator
It will be rewritten in a later commit
2018-08-12 09:59:48 +02:00
Andreas Dröscher 8a53137ab0 change: remove dead legic code
This code was either disabled or never reached.
2018-08-12 09:59:48 +02:00
Andreas Dröscher e779f06c5e change: clean up Legic interface
I see no adventage in poluting all sources that include legicrf.h
with our internal depedencies (includes) and function names.
2018-08-12 09:59:48 +02:00
Iceman c339035ec5
Revert "WIP: Clean Legic Reader" 2018-08-06 15:05:36 +02:00
Andreas Dröscher 058426fa17 change: added rx/tx coordination timestamp 2018-08-05 00:57:20 +02:00
Andreas Dröscher 8f797d1388 change: legic reader tx back to bigbang
I've tried to modulate the Legic specific pause-puls using ssc and the default
ssc clock of 105.4 kHz (bit periode of 9.4us) - previous commit. However,
the timing was not precise enough. By increasing the ssc clock this could
be circumvented, but the adventage over bitbang would be little.
2018-08-05 00:57:20 +02:00
Andreas Dröscher 78d5188922 change: legic reader now uses xcorrelation and ssc based io
- Even tough legic tags transmit just AM using xcorrelation
   results in a significantly better signal quality.
 - Switching from bit bang to a hardware based ssc frees
   up CPU time for other tasks e.g. demodulation
2018-08-04 23:13:17 +02:00
Andreas Dröscher d7c57dbc08 add: xcorr 211.875 kHz option
The FPGA supported this frequency for a long time, just the ARM code
had no define to enable it.
2018-08-04 23:13:17 +02:00
Andreas Dröscher 1adff322b1 change: remove broken legic simulator
It will be rewritten in a later commit
2018-08-04 23:13:17 +02:00
Andreas Dröscher 33eb2f5fa0 change: remove dead legic code
This code was either disabled or never reached.
2018-08-04 23:13:17 +02:00
Andreas Dröscher 37867fbf3b change: clean up Legic interface
I see no adventage in poluting all sources that include legicrf.h
with our internal depedencies (includes) and function names.
2018-08-04 23:13:17 +02:00
Chris bacf8aff0f add: FPC connector skeleton usart. Not working but if will be a starting point for those who might want to help out with it. 2018-07-30 09:54:44 +02:00
iceman1001 08d9d9daf9 cleaning 2018-07-29 18:20:56 +02:00
iceman1001 c082531110 fix: potential implicit type cast issue (Thanks to @drandreas for pointing it out) 2018-07-29 18:20:39 +02:00
iceman1001 506da3ff4c textual 2018-07-29 16:30:36 +02:00
iceman1001 4172ea6c19 cleanup 2018-07-28 14:26:37 +02:00
iceman1001 4d8488e14b CHG: https://github.com/Proxmark/proxmark3/pull/631 from offical repo. (piwi)
CHG: textual adjustments
2018-07-28 14:25:12 +02:00
Chris afeb0d0cd7 fix: removes unneeded floating point lib inclusion (@piwi) 2018-07-23 21:02:13 +02:00
Chris fff2f51cfb chg: testing to switch from WaitXX calls to SpinDelay, they seem to mess up 2018-07-06 09:10:13 +02:00
Chris 79158c7360 chg; preparing for more cmds. 2018-07-06 00:24:04 +02:00
Chris 36d774506c chg: 'sm raw' - implemented 'r' don't read reply 2018-07-05 21:10:21 +02:00
Chris 2ccbde8110 chg: 'flashmem' - adjust debugstatemnts 2018-07-05 20:29:16 +02:00
Chris fca841122f chg: 'sc reader' - hooked up atr. 2018-07-05 16:32:10 +02:00
Chris ee006c6a7b add: sc upgrade - beta test 2018-07-05 14:38:31 +02:00
Chris e7342e7402 chg: 'sc upgr' shouldnt print too much 2018-07-05 11:37:04 +02:00
Chris f70b8be5de add: 'sc' - smart card commad [rdv40]
chg: test to read out firmware
2018-07-05 10:48:24 +02:00
Chris 3ecff83de2 chg: clean up 2018-07-04 15:29:27 +02:00
Chris 9571cf1d13 chg: and wrap FPC code with defines.. 2018-07-04 13:05:23 +02:00
Chris a32052b5e6 chg: and remove link to FPC code 2018-07-04 13:01:53 +02:00
Chris 392161e20e chg: don't compile FPC yet 2018-07-04 12:58:28 +02:00
Chris 8f06f85cc4 DEL: removed old smartcard files 2018-07-04 12:22:12 +02:00
Chris 49735b62f1 syntax sugar 2018-07-04 12:20:08 +02:00
Chris adb9e94487 chg: OR values 2018-07-04 12:19:29 +02:00
Chris e09f9cbb32 add: RDV40 smart card module comms ( Thanks to @Willok! ) bitbanging i2c with it 2018-07-04 12:19:04 +02:00
Chris ed5367a124 chg: adjusting 14b demod to increase reading distance 2018-06-30 22:48:59 +02:00
Chris 2b294912ee chg: 'hf iclass chk' - enabled credit/debit key selction
chg:  'hf iclass lookup'  - enabled credit/debit key selction
fix: first item in dictionary file now correct identified
chg: code cleanup
2018-06-30 22:47:07 +02:00
Chris abdd51b6b3 chg: 'hf mf sim' led 2018-06-23 06:31:42 +02:00
Chris 4633e2083a debug 2018-06-23 06:30:47 +02:00
Chris 28a4260ee9 chg: 14b fixes 2018-06-19 12:57:27 +02:00
Chris d9e8b63363 chg: setting pins 2018-06-13 14:38:46 +02:00
iceman1001 bd857b263f syntax 2018-05-22 12:10:02 +02:00
iceman1001 501c29f76d add: support for reading flashmem 2018-05-22 12:09:17 +02:00
iceman1001 6b7819276d add: 'mem info' - rudamentary support for new command. 2018-05-06 09:26:06 +02:00
iceman1001 110a7b28cb chg: 'hf 14a sim' - possibility to simulate FM11RF005SH (@maozhenyu123)
chg: 'hf 14a info' - tag identification for FM11RF005SH (@maozhenyu123)

Fudan FM11RF005SH , has 512bit mem,  16blocks w 4bytes / block.
Support REQA, READ, WRITE, AUTH.   Unknown how the auth is done.

The ATQA/SAK ,  or a trace from one of these tags would be intersting to look at.
2018-05-06 09:24:28 +02:00
iceman1001 3e7576c86d fix: 'hf mfu rdbl'
fix: 'hf mfu dump'  -  bad exit strategy
2018-05-03 22:41:28 +02:00
iceman1001 4cd72b95c5 fix: coverty scan #277726, unsigned value comparision always true. 2018-05-03 20:36:01 +02:00
iceman1001 989b80007c chg: removed debugstatements 2018-05-03 16:20:46 +02:00
iceman1001 e50fef6607 fix: 'mem load' - wrong offset when uploading 2018-05-03 16:10:38 +02:00
iceman1001 021c0a1349 ADD: 'mem' commands. For RDV40 devices only.
If you don't have one,  comment out inside client/Makefile this line

CFLAGS += -DWITH_FLASH
2018-05-03 12:15:03 +02:00
iceman1001 207fa2b574 add: potential fix for OSX uses, by @piwi
chg:  adapting fix to support iceman forks extended commands.
2018-05-02 08:11:29 +02:00
iceman1001 98f0e9a284 fix: print.c on device doesn't have support for formatter %f 2018-04-27 12:16:35 +02:00
iceman1001 271cb3e1cc chg: \r didn't work well with printandlogex
chg: spaces
chg: cleaning
2018-04-27 12:15:26 +02:00
iceman1001 2017f321b7 fix: memory issue, took all bigbuff 2018-04-25 01:33:25 +02:00
iceman1001 695d4cbb51 chg: fix coverity scan bug, variable is treated like a array 2018-04-20 20:07:41 +02:00
iceman1001 6ab1b285a0 chg. 2018-04-20 19:50:56 +02:00
iceman1001 f5718fb448 chg: wiping / reading / writing flashmem 2018-04-20 16:11:10 +02:00
iceman1001 a746699f5f chg: reading / writing flashmem works better now. 2018-04-19 00:27:44 +02:00
iceman1001 42569a6f13 chg: adjusting for DEFINE usages. 2018-04-18 16:17:49 +02:00
iceman1001 0492df266c chg: only print if compiled with smartcard flag 2018-04-18 12:41:03 +02:00
iceman1001 d4c0de0c3c chg: turn off led A 2018-04-16 20:19:44 +02:00
iceman1001 a615fd6a9e chg: smartcard , testing to use pwm clock instead of timer clock.
chg: added some comments
2018-04-16 19:58:49 +02:00
iceman1001 192aa9abd7 CHG: renamed iso7816 files
ADD: smartcard functionality  (big thanks to Chris Nocker!)
2018-04-08 10:51:19 +02:00
iceman1001 726edb87cb chg: flashmem unique id is 64bit 2018-04-08 10:24:24 +02:00
iceman1001 3f5aab8f05 chg: preparing for iso7816 module statuses 2018-04-03 11:45:20 +02:00
iceman1001 141cde93dd add: buzzer code from elechouse repo 2018-03-31 10:44:44 +02:00
iceman1001 a37518b1c3 chg: renamed smartcard.c -> iso7816.c
chg: default standalone mode is LF_SAMY..    The HF_COLIN takes a lot of space
2018-03-31 10:43:09 +02:00
iceman1001 836d7370c3 spaces 2018-03-31 10:36:39 +02:00
iceman1001 3d956e686b chg: flashmem adaptions 2018-03-31 10:35:40 +02:00
angelsl 1aa974fc70 Fix buffer overrun in hf_colin 2018-03-25 21:16:23 +08:00
iceman1001 fd1b86d607 ADD: flashmemory functionality for RDV40 Huge thanks to @willok ! 2018-03-19 15:58:50 +01:00
iceman1001 0eca7e3977 chg: #define rename 2018-03-16 08:58:07 +01:00
iceman1001 3438d016c7 idea based on @jamchamb PR in official pm3 https://github.com/Proxmark/proxmark3/pull/584 2018-03-15 20:06:12 +01:00
iceman1001 ce418fb720 chg: 'hf mfu read'
chg: 'hf mfu dump'  - 5 retries if failed readblock.  Loop for CRC error or incomplete reads.

This will make reading / dumping more stable.
2018-03-15 19:59:33 +01:00
iceman1001 5690c0f5bc chg: 'hw detectreader' - kind of useless previous change, measuring from two different readers, the max was 18.8v and 20.1v Not even close to 36v the standard ADC is configured 2018-03-15 10:48:57 +01:00
iceman1001 c3ba3f306f chg: 'hw detectreader' - RDV40 adjustment 2018-03-15 09:25:22 +01:00
iceman1001 62814fd352 fix: 'hw detectreader' - adapted to PM3 RDV40 for HF measures. 2018-03-15 09:20:21 +01:00
iceman1001 7e0455aa0c ADD: 'MattyRun' standalone - added the MattyRun standalone mode. *untested compilation* 2018-03-12 12:27:43 +01:00
Colin J. Brigato 9147698e97 UPDATES HF_COLIN to current 2018-03-10 13:13:21 +01:00
iceman1001 7fb6aa21ab chg: skeleton files for smartcard / flashmem 2018-03-05 20:08:28 +01:00
iceman1001 857bc8ab66 ADD: SmartCard skeleton 2018-03-04 14:14:08 +01:00
iceman1001 802994d30a add: 'hf 14 antifuzz' - the outline for the new functionality which fuzzes the anticollision phase ISO 14443a. 2018-02-28 13:21:47 +01:00
iceman1001 8083bfec32 add: marshmellow42 's fix for cotag endless loops 2018-02-28 08:08:07 +01:00
iceman1001 8eb0a42b5a chg: adjustments 2018-02-28 08:04:53 +01:00
iceman1001 535c92fee5 FIX: added @marshmellow42 's fix for #514 (offical repo) lf search hang with no tag on antenna. 2018-02-28 07:59:41 +01:00
iceman1001 567a312cf4 chg: textual 2018-02-25 16:04:55 +01:00
iceman1001 7b9ba2de8e chg: standalone modes - adapted for HF_COLIN aswell, for easier compilation 2018-02-25 16:04:24 +01:00
iceman1001 23ecd4154a FIX: standalone mode HF_COLIN - it now compiles. 2018-02-25 08:15:38 +01:00
iceman1001 22715e7a99 minor adjustements 2018-02-22 15:13:43 +01:00
iceman1001 87b3df94c1 chg: minor syntax 2018-02-22 15:04:49 +01:00
iceman1001 1c37981430 fix: StandAloneMode proxbrute - missing variable and missing define. ZERO = 0. 2018-02-22 15:03:20 +01:00
iceman1001 92a42c2189 fix: wrong define 2018-02-21 09:03:02 +01:00
iceman1001 ab77b8a3d9 chg: ..oring.. 2018-02-21 08:30:47 +01:00
iceman1001 cfff094bc3 SPI comments 2018-02-20 12:06:03 +01:00
iceman1001 d54c4d3e05 chg: SPI tests for flashmem on PA10. (aka pm3 evo) Peripheral B, fixed. 2018-02-20 12:03:11 +01:00
iceman1001 6c6aad6196 chg: SPI configuration. adjustments with defines, makes easier to understand 2018-02-20 12:01:22 +01:00
iceman1001 229ce1a156 chg: 'lf cmdread' - lowered the waiting times for antenna to power down / up 2018-02-18 10:37:13 +01:00
iceman1001 a21ab49f14 chg: moved flash mem config for spi into flashmem.c
chg:  fpgasendcommand,  now waits until command has been sent to fpga.
2018-02-18 10:35:36 +01:00
iceman1001 35bdf6a58d FIX: Accourding to errata, a SPI reset should be executed twice. 2018-02-17 17:35:54 +01:00
iceman1001 b0d3362eef chg: adjusted to macros 2018-02-16 20:45:13 +01:00
iceman1001 103e0b5191 chg: more tests 2018-02-15 09:19:13 +01:00
iceman1001 d20b11a288 chg: chips select 2018-02-15 09:18:31 +01:00
iceman1001 18aa477a55 chg: 'lf cmdread' -adjustments, @marshmellow42 2018-02-14 21:45:36 +01:00
iceman1001 b2a3b0f72a chg: 'lf cmdread' @marshmellow42 improvements from https://github.com/Proxmark/proxmark3/pull/570
chg:  and some adaptations..
2018-02-14 21:40:52 +01:00
Federico Cerutti 2dbe5ad720 Fix for uneven octet error when no data is received 2018-02-14 15:48:28 +01:00
iceman1001 d0da96bf8a remove warning "missleading-indentation"
flashmen spi 9bits?
2018-02-13 16:13:37 +01:00
iceman1001 46d540490f chg: add response ack. 2018-02-13 15:45:15 +01:00
iceman1001 1709c1ce1a chg: flash_mem - hooked up client - device comms 2018-02-13 15:36:20 +01:00
iceman1001 0495e93b6d add: flash memory support 2018-02-13 14:12:28 +01:00
iceman1001 ad73af95c2 ADD: beginning to add SPI to access flash memory. 2018-02-13 11:41:23 +01:00
iceman1001 85b2533435 chg: 'hw tune' device side should be unsigned and only 1024 (10b ADC) 2018-02-13 11:40:05 +01:00
iceman1001 dc66765306 chg: 'lf cmdread' - adjusting loop 2018-02-09 00:27:02 +01:00
iceman1001 5adb9af78f chg: 'hw tune' - compensating the 3% error marginal. 2018-02-09 00:25:45 +01:00
iceman1001 fe34cac012 FIX: 'hf mf darkside' - no more WDT crashes. plus positive sideeffects (@pwpiwi)
https://github.com/Proxmark/proxmark3/pull/569
2018-02-08 19:11:35 +01:00
iceman1001 de631c32ac textual 2018-02-08 10:31:23 +01:00
iceman1001 ff07af84bf fix: StandAloneMode samyrun, proxbrute, - id values are unsigned 2018-02-08 09:55:23 +01:00
iceman1001 374571046d remove debug.. 2018-02-07 20:12:16 +01:00
iceman1001 aee5fcb24a debugs 2018-02-07 17:22:23 +01:00
iceman1001 094b5db9c5 fix: configure mux at startup 2018-02-07 17:21:51 +01:00
iceman1001 a2ac368fdb fix.. wrong switch 2018-02-07 13:14:04 +01:00
iceman1001 75d04307a1 chg: adapting some HF voltage readings. 2018-02-07 13:11:10 +01:00
iceman1001 3d2fd2e3a1 FIX: start up,MUXSEL_HIPKD(PA19),MUXSEL_LOPKD(PA20) are floating state. Should adapt FPGA image aswell. 2018-02-07 12:08:50 +01:00
iceman1001 13bb29a386 fix: 'hf mf fchk' - releasing memory when finished is a good thing 2018-02-05 22:59:49 +01:00
iceman1001 3464fbe1df fix 'hf mf darkside' - adapted solution from @pwpivi 2018-02-05 20:46:14 +01:00
iceman1001 fca1c9b7cf chg: 'hf mf mifare' - (deviceside) reset cycles when negative or too large 2018-02-05 16:47:10 +01:00
Jean-Pierre Clair 847656c613 spelling error authetication instead of authentication 2018-02-05 14:09:38 +01:00
iceman1001 6605d92fbb chg: tried making the reselect more stable.
chg: 'hf iclass readblk'
chg: 'hf iclass writeblk'
chg: 'hf iclass dump'
chg: 'hf iclass clone'
        all commands now has 'v'  verbose parameter for more detailed output.
2018-02-04 12:25:55 +01:00
iceman1001 6a9ddf6e69 chg 'hf iclass chk' - increased timeout, switch off antenna before each run in order to reset card, three retires. all this make it more stable. 2018-02-04 10:20:38 +01:00
iceman1001 dc25f9212f FIX: 'hf iclass sim 2'
FIX: 'hf iclass sim 4'
FIX: 'hf iclass loclass' - this fixes the bug where loclass assumes the epurse value is all zeros, while it now should save the epurse value during the simulation if it is updated/read.

I assume a empty valid epurse, while an all zero epurse is too much easy to detect as a anomaly.
2018-02-04 00:52:29 +01:00
iceman1001 856e2770a6 chg: 'hf iclass sim' different output 2018-02-01 17:44:27 +01:00
iceman1001 e0373212a3 chg: 'hf iclass sim' - sim2, 4 get less default output, set DBG 4 for verbose 2018-02-01 16:10:24 +01:00