Commit graph

441 commits

Author SHA1 Message Date
Philippe Teuwen d19754567d summer restructuring:
* .h include only the strict minimum for their own parsing
  * this forces all files to include explicitment their needs and not count on far streched dependencies
  * this helps Makefile to rebuild only the minimum
  * according to this rule, most standalone .h are now gone
  * big app.h is gone
  * remove seldom __cplusplus, if c++ happens, everything will have to be done properly anyway
* all unrequired include were removed
* split common/ into common/ (client+arm) and common_arm/ (os+bootloader)
  * bring zlib to common/
  * bring stuff not really/not yet used in common back to armsrc/ or client/
  * bring liblua into client/
  * bring uart into client/
  * move some portions of code around (dbprint, protocols,...)
* rename unused files into *_disabled.[ch] to make it explicit
* rename soft Uarts between 14a, 14b and iclass, so a standalone could use several without clash
* remove PrintAndLogDevice
* move deprecated-hid-flasher from client to tools
* Makefiles
  * treat deps in armsrc/ as in client/
  * client: stop on warning (-Werror), same as for armsrc/

Tested on:

* all standalone modes
* Linux
2019-08-11 21:42:01 +02:00
Philippe Teuwen d84a316b4c fix MCK, maths... facepalm 2019-08-07 14:55:29 +02:00
Philippe Teuwen bc28eb04e4 Revert 00350db and add waiting time extension request mechanism, see issue #265 2019-08-07 13:04:34 +02:00
Philippe Teuwen 12a0540d91 mf sim: add option to pass explicitly atqa/sak and reject explicitly unknown vals for option t 2019-08-07 01:32:37 +02:00
Philippe Teuwen 8b3159c83d Use more defines when using main clock or master clock 2019-08-06 13:40:08 +02:00
iceman1001 a90e5e1858 chg: legic cmds uses return macros.
chg: hf search started to use macros
2019-08-03 23:36:55 +02:00
Philippe Teuwen 60bfc37f35 remove more dummy cmds 2019-08-03 22:52:32 +02:00
Philippe Teuwen 25f358955b make hf search robust to various HF configurations 2019-08-03 22:14:12 +02:00
Philippe Teuwen 4a3fb3ccf1 split nfcbarcode from iso14443a 2019-08-03 22:14:12 +02:00
Philippe Teuwen a0a232a985 rename few CMD_* to get some less diversity 2019-08-03 19:48:02 +02:00
Philippe Teuwen cbf5c717f7 Remove unused CMD_* 2019-08-03 19:48:02 +02:00
Philippe Teuwen 865a7c3ad4 Add thinfilm simulation 2019-08-02 00:26:07 +02:00
iceman1001 fbff51c88d Add: hf thinfilm info - support to read and decode Kovio Thinfilm NCT tags 2019-08-01 09:39:33 -04:00
iceman1001 74288ad128 chg: hf topaz - got some love 2019-07-31 15:43:00 -04:00
Philippe Teuwen c6b8e199fd fix usart cmd descriptions 2019-07-28 21:08:50 +02:00
iceman1001 283060f962 chg: renaming a struct 2019-07-27 21:15:43 +02:00
mwalker33 b222161941
Merge branch 'master' into master 2019-07-25 20:12:00 +10:00
mwalker33 77d96ff3b7 Bug Fix Timing order
Timing for backward compatibility
2019-07-25 20:01:03 +10:00
Philippe Teuwen c0eb19acb1 remove tabs 2019-07-24 00:52:24 +02:00
Philippe Teuwen ac233a346a make style 2019-07-23 23:43:30 +02:00
Philippe Teuwen 11e5131604
Merge pull request #284 from mwalker33/master
T55x7 Downlink mode support added
2019-07-23 22:42:47 +02:00
Philippe Teuwen 9beabaabf5 make style 2019-07-23 21:33:52 +02:00
mwalker33 5de04f84e9 Restored * 8
Revert back to store and use the full value (*8) for the timing.
2019-07-23 20:12:05 +10:00
mwalker33 4e0e69ed63 Added T55 downlink mode support 2019-07-23 09:50:28 +10:00
cjbrigato 5c3676ad81 ADD: Early SPIFFS implementation see #257, UPDATE HF_COLIN accordingly 2019-07-22 22:56:06 +02:00
Philippe Teuwen daae890667 Bootrom & flasher changes:
* use macros for versions
* activate UNDERSTANDS_VERSION in bootrom
* fix missing break; bug in bootrom
* force flash_load to reject images > 256k if bootloader not up to date
* move logic from flasher to flash
2019-07-20 10:48:40 +02:00
slurdge 68aa9d631d Flasher support for versionning
Only bootrom with version > 1.0.0 will allow 512K writes
2019-07-20 10:47:24 +02:00
slurdge c056e56492 Add a version command to the bootloader (not activated yet) 2019-07-20 10:47:24 +02:00
merlokk bd8824a2f3 make style 2019-07-16 16:10:11 +03:00
Philippe Teuwen ed4289d462
Merge pull request #251 from merlokk/reorg_includes
added PACKED attribute for structures and reorganize include folder
2019-07-16 14:52:14 +02:00
merlokk 20d13d5509 added PACKED attribute for structures and reorganize include folder 2019-07-16 14:50:38 +03:00
Philippe Teuwen d8763509de Add 'hw standalone' to jump to standalone mode from command line or script 2019-07-15 22:31:19 +02:00
Philippe Teuwen 0ea7fa7784 buggy 'mem read' removed, 'mem save' renamed 'mem dump', can now display too 2019-07-15 12:57:20 +02:00
Philippe Teuwen 99d2ed224a Minor changes on bootloader chip info 2019-07-10 21:49:14 +02:00
slurdge 4727ab96d7 Dynamic report of the chipID for flashing purposes 2019-07-10 21:11:20 +02:00
Victor cb45313981 Add hitag2 write password auth 2019-07-09 23:00:57 +01:00
Philippe Teuwen a55e597e36 make style 2019-06-07 21:40:33 +02:00
iceman1001 0288b452d4 comment 2019-06-06 14:57:38 +02:00
Philippe Teuwen 1a39ec3026 hf mf/mfu dbg => hw dbg 2019-06-06 11:31:47 +02:00
Philippe Teuwen 4761ea13f7 MF_DBGLEVEL => DBGLEVEL (pm3 side) 2019-06-06 10:05:09 +02:00
Philippe Teuwen d7614684f8 Make sure standalone modes can be launched when connected on USB without client 2019-06-02 23:20:02 +02:00
Philippe Teuwen 77dea32120 text 2019-05-31 23:18:17 +02:00
Philippe Teuwen 0898c0c9d1 Fix FLASH_MEM_MAX_SIZE 2019-05-31 23:17:30 +02:00
iceman1001 cee2fc7a34 hf mf rdbl - uses NG 2019-05-28 13:20:56 -04:00
iceman1001 58bed70ad0 chg: hf 14a sim - uses NG 2019-05-26 15:00:49 -04:00
Philippe Teuwen 51e4df533e New button behaviour in bootloader mode:
- Keep button pressed when powering to force entering bootloader
  - Once in bootloader more, you can release the button
- When in bootloader mode (no matter how you entered that mode)
  - One button press to quit bootloader mode and boot main image
2019-05-26 17:48:30 +02:00
iceman1001 0d1438d156 chg: lf psksim - uses NG 2019-05-24 09:11:30 -04:00
iceman1001 e727fe5818 chf: lf asksim - uses NG 2019-05-24 07:06:08 -04:00
iceman1001 d32c4d5267 chg: resized flashmem offset for dictionaries to fit 2019-05-23 18:50:24 -04:00
iceman1001 c13e2f09a1 chg: lf simfsk\nlf paradox sim\nlf awid sim\n\lf ioprox sim\nlf pyramid sim - NG 2019-05-23 17:07:12 -04:00
iceman1001 9b85f80321 chg: the reconnect now works good on ubuntu and mingw (for me :))
chg: increased timeout for FPC from 170 -> 200.  Mingw seems slower.
2019-05-16 08:02:56 +02:00
Philippe Teuwen 8401eb4e14 Add usart btfactory 2019-05-15 02:15:19 +02:00
Philippe Teuwen 42d025d01a Slight rework of hw tune 2019-05-14 08:29:24 +02:00
Philippe Teuwen c281f71f59 hf tune: group commands 2019-05-14 08:25:26 +02:00
Philippe Teuwen 7ed7a9de40 Rework hf tune to make it synchronous (needed for rdv4) 2019-05-14 00:37:03 +02:00
Philippe Teuwen d05cd5ff2b Internal packet structs don't need to be packed, only the wired structs 2019-05-13 22:32:44 +02:00
iceman1001 d2a4ade2af chg: lf t55xx write - now uses NG frames. 2019-05-13 13:23:53 +02:00
Philippe Teuwen 3412e9d8c5 Capabilities versionning, would also detect platform struct pack issues 2019-05-10 19:00:18 +02:00
Philippe Teuwen fa87266efc update new format doc 2019-05-10 08:37:52 +02:00
Philippe Teuwen 68e5b3c355 style 2019-05-08 01:35:51 +02:00
Philippe Teuwen 40480a49d8 compact capabilities 2019-05-08 00:15:39 +02:00
Philippe Teuwen 6401452eb6 remove hw_available_fpc_usart_btaddon 2019-05-08 00:06:12 +02:00
iceman1001 29a160c905 reconnect version2 yolo 2019-05-06 22:41:00 +02:00
Philippe Teuwen 6b5a0f8319 Rename and unguard CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K ans it's used more generally than LF 2019-05-04 23:56:59 +02:00
Philippe Teuwen 2497ec2eec More USB_CMD -> PM3_CMD 2019-05-04 11:36:35 +02:00
Philippe Teuwen 3176684f4a Add usart dev cmds & dynamic flash support capability 2019-05-03 22:30:17 +02:00
Philippe Teuwen 3605809073 Remove WITH_FLASH from common as it's used by client too 2019-05-01 23:43:08 +02:00
Philippe Teuwen bc6d9f4074 pm3 report compiled capabilities 2019-05-01 17:19:37 +02:00
Philippe Teuwen 27f7057961 Rename few USB -> PM3 to avoid misleading interpretations 2019-04-30 21:10:11 +02:00
iceman1001 e1063e2836 chg: reconfigure uart timeouts when compiled for FPC and connecting over USB. 2019-04-30 12:57:44 +02:00
Philippe Teuwen fc6be9fea4 Define USB_CMD_DATA_SIZE_MIX 2019-04-29 22:38:26 +02:00
Philippe Teuwen e2e0b704c5 Several changes in the initial connection, see details:
* TestProxmark uses pingng
* New command CMD_CAPABILITIES to transmit capabilities from pm3 to host
* Use TestProxmark to retrieve capabilities with that new command
* CloseProxmark if TestProxmark fails
* Hide baudrate for USB and retrieve real baudrate from pm3 for BT
2019-04-27 02:46:20 +02:00
Philippe Teuwen 1c136c8fc6 Merge branch 'master' into experimental_varlen
* master:
  rework Dbprintf & add color support
  use color macros
  doc magic
  archive and fix hid-flasher
  update standalone readme
2019-04-26 10:48:28 +02:00
Philippe Teuwen cb452c98ba rework Dbprintf & add color support 2019-04-26 10:36:06 +02:00
Philippe Teuwen acc101ed37 doc magic 2019-04-26 08:29:21 +02:00
Philippe Teuwen eababdd3ef Merge branch 'master' into experimental_varlen
* master:
  chg: 'hf mf sim' - textual
  fix:  warning on mingw64.   This offset is calculated, casting it to u32 should be fine.
  fix: https://github.com/RfidResearchGroup/proxmark3/issues/174 remove all offending code,  return 1.   Will only impact the speed of hardnested execution.
  fix again OSX
  fix https://github.com/RfidResearchGroup/proxmark3/issues/173
  used predefined constants, common types moved to common header files
  backward compatibility, on load converter for old mfu dump format
  loops for counters output
  UL/NTAG new dump file format. Added counters support, simulation
2019-04-25 20:05:04 +02:00
Philippe Teuwen e453aff88c First adjustments for FPC BT link 2019-04-23 23:36:36 +02:00
Eloff 66ee8dc09e used predefined constants, common types moved to common header files 2019-04-23 21:14:20 +03:00
Philippe Teuwen e4006a7563 doc errors 2019-04-20 10:34:54 +02:00
Philippe Teuwen a7773b3395 Introduce reply_mix, to still get some varlen on old API 2019-04-20 03:17:19 +02:00
Philippe Teuwen 3bcf80bb34 Introduce SendCommandMIX, to still get some varlen on old API 2019-04-20 02:41:40 +02:00
Philippe Teuwen a45238236d armsrc: put new frame parsing in common for usart (still usart_read_ng to do) 2019-04-20 01:47:50 +02:00
Philippe Teuwen 38fc6e2290 errors: cmdmain 2019-04-19 00:42:25 +02:00
Philippe Teuwen dcfee8963b SendCommandOLD & errors: cmdflashmem 2019-04-18 23:26:12 +02:00
Philippe Teuwen b860cc6eaf Rename MAGIC defines 2019-04-18 21:49:37 +02:00
Philippe Teuwen 9ff841efb2 CRC optional, replaced by magic on USB 2019-04-18 21:39:35 +02:00
Philippe Teuwen 482db05741 Rename few stuff for consistency 2019-04-18 12:49:51 +02:00
Philippe Teuwen 4e31c6110b Better Command structs 2019-04-18 00:12:52 +02:00
Philippe Teuwen 533667ea6d Better Reply structs 2019-04-17 23:44:48 +02:00
Philippe Teuwen be15ad7fec Viva la revolucion 2019-04-17 21:30:01 +02:00
Philippe Teuwen 96843c3f47 New reply frames transmission (reception still to be done) 2019-04-16 23:15:23 +02:00
Philippe Teuwen 43608589e3 reduce crc size, change magic 2019-04-16 20:06:32 +02:00
Philippe Teuwen 44bbb7d2c7 new frame format, smaller and with crc. Some code simplified 2019-04-16 20:00:17 +02:00
Philippe Teuwen 34467b7550 Variable length frames, part1: USB Host -> Pm3 2019-04-16 10:01:08 +02:00
Philippe Teuwen c10e47f8a9 More void, fixing "function declaration is not a prototype" [-Wstrict-prototypes] 2019-04-10 10:35:03 +02:00
osboxes.org e703dcb8ad style 2019-04-10 09:49:42 +02:00
iceman1001 6c1b8f809e chg: update armside debug to fit with offical repo. 2019-04-10 08:42:00 +02:00
Philippe Teuwen b666c27f3c
Merge branch 'master' into hf_mf_sim 2019-04-06 01:22:15 +02:00
Philippe Teuwen 26eb54b965 style 2019-04-06 01:00:54 +02:00
vratiskol 1c77185fb9 Merge remote-tracking branch 'upstream/master' into hf_mf_sim 2019-04-03 01:48:46 +02:00
Philippe Teuwen 64ce30c06c make style 2019-04-02 22:32:45 +02:00
Philippe Teuwen 21be6d4400 FPC: got RX working, got client over usart somehow working..., see detailed commit msg
* using WITH_FPC:
  * activate basic usart
  * no double buffer for now, no interrupt
  * usart_dataavailable/usart_readbuffer/usart_writebuffer, to demo it:
    * pm3 client over USB, minicom over usart
    * analyse a d 414243
* using WITH_FPC_HOST:
  * it implies WITH_FPC as it's based on it
  * control pm3 with client over usart
  * EXPERIMENTAL! still some frame desync issues
  * you can connect both from usart & USB with two pm3 clients
    * actually you *have* to connect USB for the moment because
      it's used to send debug messages about buggy usart... See Dbprintf_usb below
  * "sessions": msgs are directed to the latest client to have sent a cmd
  * Dbprintf_usb macro to send msgs to USB client to help debugging usart...
  * We now have an option to run client at different speed as usart is 115200:
    client/proxmark3 /dev/ttyUSB0 -b 115200
  * Consequently, argc,argv handling is a bit revamped, it was so messy...
  * USB and flashing are still at 460800, don't try flashing over usart yet ^^
2019-04-02 22:06:10 +02:00
vratiskol 8f11fcc193 Remove FLAG_RANDOM_NONCE 2019-03-27 22:35:11 +01:00
vratiskol 04c14d1931 Merge remote-tracking branch 'upstream/master' into hf_mf_sim 2019-03-25 15:51:21 +01:00
iceman1001 8ce361202c style - unused 2019-03-25 15:03:22 +01:00
iceman1001 0409fd1f4e style 2019-03-25 14:51:54 +01:00
vratiskol 3b06c9d8ee Merge remote-tracking branch 'upstream/master' into hf_mf_sim 2019-03-21 20:46:56 +01:00
iceman1001 ca9061bd32 changed byte_t -> uint8_t 2019-03-21 15:19:18 +01:00
vratiskol c2c4aac7ff Merge remote-tracking branch 'upstream/master' into hf_mf_sim 2019-03-18 21:51:29 +01:00
iceman1001 d54f4bd46f value needs to be unsigned 2019-03-18 17:22:02 +01:00
vratiskol cfe2b2797e Revert "Merge branch 'master' into hf_mf_sim"
This reverts commit cbea5d9d02, reversing
changes made to b66152feb2.
2019-03-15 21:45:00 +01:00
vratiskol cbea5d9d02 Merge branch 'master' into hf_mf_sim 2019-03-15 21:17:44 +01:00
vratiskol 6a52b6074f Sync from Upstream 2019-03-15 21:17:07 +01:00
vratiskol 64c3ae8b34 hf mf sim 2019-03-15 21:04:25 +01:00
osboxes.org 9c2736d1eb spaces 2019-03-14 12:30:32 +01:00
iceman1001 a117f06380 chg: refactoring of hitag (@piwi)
chg:  refactoring of hitagS (@iceman)
2019-03-13 12:18:37 +01:00
Philippe Teuwen d9308d912d fix: shifting signed 32-bit value by 31 bits is undefined behaviour 2019-03-13 00:07:40 +01:00
iceman1001 1d63258388 add: 'hf 14b raw' - added -t timeout option. see https://github.com/RfidResearchGroup/proxmark3/issues/125 2019-03-12 14:41:23 +01:00
iceman1001 35bc4a975e rename SNOOP -> SNIFF 2019-03-12 13:15:39 +01:00
Philippe Teuwen 1b2601a48a Add missing EOF LF 2019-03-12 00:12:26 +01:00
Philippe Teuwen 0373696662 make style 2019-03-10 00:00:59 +01:00
Philippe Teuwen 9502b54aa0 include: fix mix of spaces & tabs 2019-03-09 18:41:30 +01:00
iceman1001 29adb88f32 fix: use correct define 2019-03-09 11:49:56 +01:00
Philippe Teuwen 60f292b18e remove spurious spaces & tabs at end of lines 2019-03-09 08:59:13 +01:00
merlokk 3b21b17509 move mifare stuff to its folder 2019-02-21 19:15:46 +02:00
merlokk cf21f046d8 arm side 2019-01-30 18:15:47 +02:00
merlokk 1b3d96ab2d add apdu chaining to arm side 2019-01-29 19:30:15 +02:00
iceman1001 f215ebef80 Refactored 'lf t55xx brute', split it up into two commands.
- lf t55xx brute  (tries bruteforcing a range of pwds
- lf t55xx chk    (uses dictionary file or RDV4 flashmem)

FIX: adjust lf sim (@marshmellow42)  see 7008cf9c15
"attempt to speed up the loops waiting for carrier signal to go high or low
by only checking for a halt (button press or usbpol) every 256th loop
iteration. some users were experiencing modulating reactions to be too slow.

ADD: 'lf t55xx chk'
It uses @marshmellows42 idea behind commit  (6178b085a0)
With calculating a baseline (read block0 32times and average the signal-ish) and sampling only 1024 signal data. The algo then proceeds to calc the average and keep track of the candidate which is given the most difference in signal data average value.    I do some squaring and shifting for this.
The candidate is then send back to client to be tested properly with  trymodulation like before.

This seems to work good on t55xx card which has a ASK configuration.

WORK-IN-PROGRESS
2019-01-11 14:46:27 +01:00
iceman1001 0dee369a58 FIX: 'hf tune' - now works... 2019-01-06 20:28:23 +01:00
iceman1001 0fb0c35308 CHG: 'mem load' - the possibility to upload default_iclass_keys.dic, default_keys.dic, default_pwd.dic to predefined flashmemory sections. These will be used in pwd / key checking algorithms on device.
CHG: 'script run read_pwd_mem.lua' - script now can print those uploaded dictionary files.

How to upload
pm3 --> mem load f default_iclass_keys i
pm3 --> mem load f default_keys m
pm3 --> mem load f default_pwd t

How to validate / view
PM3 -->scr run read_pwd_mem -o 237568 -k 8
pm3 -->scr run read_pwd_mem -o 241664 -k 6
pm3 -->scr run read_pwd_mem -o 245760 -k 4
2019-01-01 18:01:40 +01:00
merlokk f32088e25c fix states and get rid of INS code in receive (that code checks by controller) 2018-12-18 14:33:28 +02:00
merlokk 1941b9ca8b sdd sc raw t0 2018-12-17 23:48:05 +02:00
Chris 73230c8d15 chg: 'trace list 7816' - missing command
chg: 'sc raw' - inverted select logic
2018-11-13 22:29:33 +01:00
Chris dc67b5d7c9 chg: revert fpga_major mode in LF.
chg: 'lf t55xx deviceconfig'  - persistence to flashmem is now option with param P
2018-09-23 05:29:55 +02:00
Chris ba2543b627 ADD: 'lf t55xx deviceconfig' - command that allows for setting t55xx timings via the client. If run on a RDV40, it also saves the config to flashmemory. This gives you option to have custom timings for your custom antenna in order for your RDV40 to work optimal against a t55xx tag and with your custom antenna. (@iceman) 2018-09-11 18:35:07 +02:00
Colin J. Brigato c74dbb63b8 Pass 2; commit 2; 2018-09-06 05:24:50 +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
Chris 714de99f82 chg: i2c fixes. all working.
chg: 'sc info'  now prints url to atr decoder.
chg: 'sc reader' has more options  A, S
2018-07-09 11:22:51 +02:00
Chris 79158c7360 chg; preparing for more cmds. 2018-07-06 00:24:04 +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 44e300930f fix: sc upg 2018-07-05 11:22:43 +02:00
Chris 35b7989b1c chg: OR in values. 2018-07-02 18:54:12 +02:00
Chris f4ef31c4be chg: OR in registry changes when setting LOW or HIGH instead of assigning. A nicer behavior not messing with previous set bits. 2018-06-23 06:41:51 +02:00
Chris e5e990fd4f chg: adjustment to RDV40 gpios, since it make use of some previous used for other things.. 2018-06-23 06:40:01 +02:00
Chris ddd9f4e0fd chg: preparation for smart card 2018-06-23 06:39:23 +02:00
Chris 5a22a72e9c chg: some preparations for iso15 refactor 2018-06-23 06:37:08 +02:00
iceman1001 6b7819276d add: 'mem info' - rudamentary support for new command. 2018-05-06 09:26:06 +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 f64e244823 chg: define 2018-04-20 19:48:13 +02:00