Commit graph

201 commits

Author SHA1 Message Date
iceman1001 cb1ba30a5e FIX: first attempt to clean up EM4x50 commands.
- `lf em4x readwordPWD` merged into `lf em4x readword` See help text
 - `lf em4x writewordPWD` merged into `lf em4x writeword` See help text

 - `lf em4x readword` now download the collected signal data after command.

On device side the lfops.c has gotten some love. Code cleaner,  increased EM_START_GAP from 55 FC to 56 FC, because of how our microsecond(us) clock works with 21.3us increments.

TODO: `lf em4x em4x50read` needs to be factored to use @marshmellow42 's  ASKdemod instead of trying to do itself.
2017-02-07 22:26:06 +01:00
iceman1001 5f5b83b743 ADD: 'lf cotag read' - COTAG can be read now. 2017-02-02 15:32:21 +01:00
iceman1001 507afbf3e6 CHG: 'lf cotag read' - it now follows "lf config" settings when collecting signaldata. 2017-02-01 14:11:11 +01:00
iceman1001 b828a4e168 CHG: 'lf snoop' - now automatically downloads samples after finished. (annoying step to do over and over)
FIX: 'lf snoop'      - now turns of LF antenna after snoop.
FIX: 'lf cotag read' - now waits until the ACK cmd arrives before downloading samples.
2017-01-31 16:11:57 +01:00
iceman1001 4653da4331 ADD: lf cotag - added first try at basic functionality to read samples from Cotag. In lfops.c is the startup sequence that needs to be tested out. 2017-01-27 10:49:34 +01:00
iceman1001 42c235e7ef ADD: T55XX_WRITE_TIMEOUT to make sure all WaitForResponseTimeout for t55xx behaves the same.
CHG:  removed some "DONE!" device prints..
CHG:  unified some "clone" commands output.
2017-01-18 22:54:27 +01:00
iceman1001 1c07ca92c3 CHG: removed a delay in readblock 2017-01-16 22:38:31 +01:00
iceman1001 81b7e89434 CHG: lowered the number of bytes collected for T55xxReadBlock. Was 12000 -> 7679
CHG: added some documentation about what arguments does.
CHG: 'data tune' - added flush after printf.
2017-01-16 21:06:51 +01:00
Iceman 6fe5fe8d52 LF sim
`lf sim` - use config values for setting the frequency.
2016-12-25 15:25:33 +01:00
iceman1001 55db344f97 CHG: used @marshmellow42 's version to fix lf continuous demod problems. 2016-12-19 16:04:27 +01:00
iceman1001 e4b65f5bc1 CHG: mental note to self, capslock is bad. 2016-12-19 12:53:38 +01:00
iceman1001 61d36d3695 FIX: 'LF IO FSKDEMOD' - no call to turn of the antenna when exit
Thanks to @samyk

https://github.com/Proxmark/proxmark3/issues/203
2016-12-19 12:51:21 +01:00
iceman1001 501c666b10 FIX: 'lf hid fskdemod' - no turning of the antenna afterwards.
FIX: 'CMD_AWID_DEMOD

Thanks to @samyk
ref: https://github.com/Proxmark/proxmark3/issues/203
2016-12-19 12:48:27 +01:00
iceman1001 67cd89033c CHG: experimenting with 'lf sim' It does send a signal now but... 2016-10-20 17:31:58 +02:00
iceman1001 c528cf3989 TEST: see if the readerfield is needed. 2016-10-20 01:52:26 +02:00
iceman1001 c50259b36a CHG: added a quitting message 2016-10-20 01:13:18 +02:00
iceman1001 8fd25db30c CHG: move the call to fpga_bitstream_lf, in order to save the uploaded data from the client. Changing bitstream wipes bigbuffer. 2016-10-20 01:06:17 +02:00
iceman1001 49065576ad FIX: lf sim, seems like "lf sim" call SimulateTagLowFrequency direct from appmain.c and I removed the LF bitstream call thinking SimulateTagLowFrequency was only called from the sub FSK;ASK;PSK commands. 2016-10-20 00:39:15 +02:00
iceman1001 29ff374e5d CHG: TI code did have the tickstimer started. 2016-10-19 21:24:20 +02:00
iceman1001 4460be68c3 FIX: "lf sim" after changes to ticks timers on device side, there was a "starticks" call missing, which lead to not having any timers which is a problem for the WaitUS call. 2016-10-19 19:59:58 +02:00
iceman1001 8ddfbc34dc CHG: the call to TurnReadLFOn has a delay / number as parameter. Seems to be gone.
FIX:  fixes to EM4050 code since when I changed the timer.  It should work nice now.
2016-10-08 19:12:51 +02:00
iceman1001 24c49d36ba FIX: This commit fixes the broken LF since I change the spindelay calls. The original problem is that spindelayus calls is incremented with21.3us each step, making it very hard to find exact timings found in the datasheets for T55x7, HID etcetc. When @marshmellow and I looked into this 2014, I had this on my back of my mind but forgot it since I didn't know how the source code / pm3 worked. This behavior in spindelayus has given the bit-period for ON/OFF measured in (us) very hard to find. Its kind of magic that it worked so far so good. Well until I started to look into the "hf legic" bitbanging ASK ON/OFF keying and that one needs a much more precis timer. Same goes for the PCF7931 code.
I've added a precise timer in the new files ticks.c and moved some older stuff from util.c to have a solid base for this.
UNTESTED,  and the timings measured for t55x7 in lfops.c and other parts has not been adjusted to this "correct" timer.
2016-09-23 16:35:26 +02:00
iceman1001 76471e5d17 CHG: reverted back from the idea of measureing in (us) microseconds, the timer is too raw, gives 10-15us delays. Now we are measuring ticks, which is (1 us = 1.5ticks)
like it was before.   ie:  80us = 80*1.5 = 120ticks.
2016-09-11 11:14:12 +02:00
iceman1001 b4a6775b5e CHG: a better micro second (us) spindely function. At average it has 8-10us delay, but its linear. Making error less when you want to wait longer..
SpinDelayCountUs(20) gives a delay of 28us.
SpinDelayCountUs(100) gives a delay of 110us.
SpinDelayCountUs(500) gives a delay of 508us.
2016-09-10 21:43:08 +02:00
iceman1001 f121b478a1 FIX: 'lf awid bruteforce' cleaning up all debug messages 2016-08-26 16:35:30 +02:00
iceman1001 955228691e REM: cleaning up some commented code. 2016-07-30 19:36:48 +02:00
iceman1001 d0724780ab FIX: Found a minor bug in 'LF CMDREAD' where it on device side didn't compare with the right char 'h' instead of 'H'. Re-wrote that whole part anyway, I changed periods to be max 0xFFFF in length, doubtful that a zero or one delay will be bigger than 65535... 2016-07-30 19:30:53 +02:00
iceman1001 118bf0c203 ADD: added a comment about Q5 settings. needs to be verified 2016-05-16 21:41:19 +02:00
iceman1001 6a4271d186 CHG: Changed cardnumber printing from %d (signed) to %u (unsigned) for AWID50, it now prints correct in all cases. Thanks to @ntk for reminding me about it. 2016-05-14 14:34:35 +02:00
iceman1001 c5e8b91696 ADD: AWID 50bit demod 2016-05-13 22:52:25 +02:00
iceman1001 6c68b84a6e @Marshmellow42 additions:
ADD: Q5 to 'LF PYRAMID'
ADD: ST sim addition to SIM ask.

REF: 29ada8fc08
2016-03-07 18:53:02 +01:00
iceman1001 c728b2b4cf FIX: Added @marshmellow42 's fix for ASK/Biphase simulation on deviceside.
CHG: Added @marshmellow42 's refactoring of "gprox-II" demod.
2016-03-01 06:57:02 +01:00
iceman1001 69c4516d32 chg: minor changes to text, explaining current implementation for "lf pyramid clone/sim" only works for 26bits. 2016-02-27 12:12:05 +01:00
iceman1001 c0f15a05b3 ADD: Marshmellows fixes for "lf t55xx" and "lf cmdread" ref: https://github.com/Proxmark/proxmark3/pull/166/files 2016-02-21 17:44:25 +01:00
iceman1001 614da335f6 Syntax suger, making the code easier to read (for me at least) 2016-01-08 14:26:35 +01:00
iceman1001 c35145bf7a FIX: the usb_poll_validate_length() check should be inversed, thanks @marshmellow42 2015-12-22 16:14:03 +01:00
iceman1001 9332b857ff ADD: @marshmellow42 's fixes for Q5, t55xx, fskclock,
ADD:  got tired of always writing wrong "hf 14a list",  so I hooked it back up to call the "hf list" with argument. Things becomes smoother that way.
2015-12-16 11:01:46 +01:00
iceman1001 508b37ba9c REM: removed an unused doublett function "printBits" in util.c
ADD:  added a new string helper function "sprint_hex_ascii" in util.c
ADD:  added "LF AWID BRUTE", a very simple bruteforce command for the awid commands.
      it takes a facility-code,  and iterates all possible 0xFFFF cardnum by sending sim command. It also uses the usb_poll function to stop the bruteforce on keypress and not leaving the pm3 device running the simulation.
the command implements the help parameter.
2015-12-14 22:50:54 +01:00
iceman1001 8ce3e4b4e9 add: missing two hard_nested files.. 2015-12-02 16:48:25 +01:00
iceman1001 1a570b0a6a CHG: Missing some headers
FIX: some message/warning in pm3_binlib.c  @gm4tr1x
2015-11-23 10:49:16 +01:00
iceman1001 a126332a7b ADD: @marshmellow's fixes to awid, viking and T55x7
ADD: 'lf t55xx detect' now can be called with a password.
ADD: trying to add the read counter and increase counter commands for ntag sim.
2015-11-22 17:33:41 +01:00
iceman1001 6426f6ba86 @marshmellows last LF changes.
- wipe a t55x7 tag
- stable demods
-
2015-11-20 16:56:43 +01:00
iceman1001 70459879e9 added @marshmellows new viking demod.
adjusted it to fit with the clone/demod  that is under  "lf viking" commands.

did some code clean up,  3spaces into tab.
2015-11-10 11:42:59 +01:00
iceman1001 edaf10af99 CHG: minor code clean up, removed commented old code.
ADD: usb_poll_validate_length  to some deviceside loops.
ADD: @marshmellow42 's fixes to LF
2015-11-09 21:51:34 +01:00
iceman1001 94422fa23f ADD: @marshmellow42 's fixex and resetread t55x7 2015-11-02 20:46:17 +01:00
iceman1001 1d0ccbe04b ADD: added the "hf snoop" patch original from @Enio, rearranged by @Etmatrix.
ADD:  added the "t55x7" refactoring by @marshmellow42
2015-10-27 21:47:21 +01:00
iceman1001 1c8fbeb93e ADD: 'LF T55X7 WAKEUP' command. For tags with AOR bit set, send this command with password to wake tag up and be able to do a "LF SEARCH" etc on it.
CHG:  Minor code changes on T55X7 code.   Default password is back to 'FF FF FF FF',
REM:  removed @marshmellow42 's wakeup option in "lf t55x7 read",

---  BASICALLY:
if a  T55X7 tag has following bits set:
AOR -  send wakeup command with pwd, to enable LF interacting with it.
PWD -  send read/write/trace/info command with pwd.  No need to send wakeup.
2015-10-21 09:12:33 +02:00
iceman1001 9276e859a6 ADD: @marshmellows42 's fixes for "lf cmdread" and CHANGELOG.md
ADD:  Added the "lf t55x7 wakeup" command. It will send a pwd,  and leave the antenna on.
Process like:
1. lf t55x7 wakeup p 11223344
2. lf search

---
It is still not finished,  will work together with the "lf t55x7 commands" in next step when I figure out the process from the datasheets.
2015-10-20 19:00:02 +02:00
iceman1001 a739812e89 FIX: thanks @tony, for pointing out a "end" statement inside tnp3sim.lua
ADD: @marshmello42 fixs for t55x7
2015-10-16 23:16:46 +02:00
iceman1001 6a09bea427 CHG: code clean up. Have some questions regarding the CopyVikingTo method. The configblock looks wrong.. 2015-10-15 11:30:37 +02:00
iceman1001 e16054a468 CHG: minor updates in the T55x7 methods. added the LED_A_ON / LED_A_OFF to indicate when a T55x7 command is running.
CHG: added some more comments to T55x7,  next person who looks at this will have it easier.
2015-10-15 11:00:07 +02:00
iceman1001 ac2df3460a ADD: @marshmellows fixes for t55x7 reading signal.
ADD: @marshmellows "diphase" definition for T55x7.
MOV: extracted the aquisition from the t55x7 methods and put them inside lfsampling.c
FIX: pcf7931 write,   there is 16bytes in a block.. not 4 as I thought before.
FIX: t55x7 lowered the WRITE_0 to 16.  Even bigger gap.
2015-10-15 10:23:15 +02:00
iceman1001 368044201a FIX: The T55x7ReadBlock method, should not have the startgap since it indicats that it might be a write command. See if this fixes the bug.
ADD:  Extracted the whole pcf7931 functionality into seperat files.  The lfops.c is starting to become too large.
2015-10-14 11:39:51 +02:00
iceman1001 e98572a1e2 I just merged @marshmellow's branch "iclass" and that was a lot of new functionality. *great work*
Things like the ICLASS, tryDecryptWord,

--
My other stuff like default keys, some new Mifare EV1 commands 0x40, 0x43 for the logging annotation,  start of the T55x7 configblock helper functionality (ripped from Adam Lauries RFIdler code)
Changes to the PCF7931 functions written,  which has a lousy input check..
2015-10-07 23:00:46 +02:00
iceman1001 0de8e3874d A lot of changes...
.. ntag simulation stuff from @marshmellows branch "ntag/sim"
.. hf mf mifare fixes from @pwpivi.
.. hw status command
.. speedtest function from @pwpivi
.. Viking Functionalities,   (not a proper DEMOD, but a start)
.. GetCountUS  better precision from @pwpivi
.. bin2hex,  hex2bin  from @holiman

...
starting with getting the T55x7 CONFIGURATION_BLOCK for different clone situations. Ripped from Adam Lauries RFidler,   nothing working or finished..
...
Started working with the T55x7 read command with password actually performs a write block...  See Issue #136  https://github.com/Proxmark/proxmark3/issues/136    Not solved yet.

...
Started add SHA256..   not working yet..
2015-10-04 18:01:33 +02:00
iceman1001 6427695bb4 ADD: using @holiman's "ubs_poll_validate_length() function in some device-side functions.
-hitag2, -legicrf, HIDdemodFSK, CmDAWIDdemodFSK, CmdEM410xdemod, CmdIOdemodFSK

It should enable them to be aborted with a call to  "hw ping / hw status" instead of only button-press. Which is good when you are scripting stuff.
2015-07-22 23:45:41 +02:00
iceman1001 7838f4beba MERGED: @holimans changes
MERGED: @piwi changes
MERGED: @marshmellows changes.

I'm not even gonna try write up all that stuff..

ADD: changed some commands inside the "Hf 14a sim" on deviceside.
ADD: @mobeius "two nonce" version for mfkey32.   It is also inside the "hf 14a sim" with the "x" parameter.
2015-07-22 23:00:52 +02:00
iceman1001 db25599d7f ADD: @holiman's clearCommandBuffer in cmdlft55xx.c
ADD: @VERTCraig's AVID commands.

TEST: testing some changes to iso14443 demod.
2015-07-18 20:43:14 +02:00
iceman1001 f53020e729 Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/Makefile
	armsrc/iso14443b.c
	armsrc/lfops.c
	client/cmdhf14b.c
	client/cmdhfmfu.c
	fpga/fpga_hf.bit
	fpga/hi_read_rx_xcorr.v
2015-06-23 23:02:29 +02:00
iceman1001 550a929a69 FIX: Reverting the t55x7 timings. (@marshmellow42 's fix) 2015-06-13 12:13:21 +02:00
marshmellow42 4a3f1a3793 revert t55xx start gap and write timing changes
also noted specs in comments
2015-06-11 23:52:40 -04:00
iceman1001 bcf61bd34a Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	README.txt
	armsrc/appmain.c
	armsrc/apps.h
	armsrc/des.c
	armsrc/iclass.c
	armsrc/mifarecmd.c
	armsrc/mifareutil.c
	armsrc/mifareutil.h
	client/cmddata.c
	client/cmdhf.c
	client/cmdhf14a.c
	client/cmdhficlass.c
	client/cmdhfmfu.c
	client/cmdhfmfu.h
	client/cmdscript.c
	client/lualibs/commands.lua
	client/lualibs/html_dumplib.lua
	client/scripting.c
	client/util.c
	common/protocols.h
	include/usb_cmd.h
2015-05-23 08:16:40 +02:00
marshmellow42 2b3af97df2 various bug fixes 2015-05-13 11:07:47 -04:00
iceman1001 cd07302754 CHG: reverted a method declaration. 2015-05-05 00:35:56 +02:00
iceman1001 fb2d24882e Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	client/cmddata.c
	client/cmddata.h
	client/cmdhfmf.c
	client/cmdlf.c
	client/cmdlfem4x.h
	client/cmdlft55xx.c
	client/lualibs/default_toys.lua
	client/scripts/tnp3clone.lua
	client/scripts/tnp3dump.lua
	client/scripts/tnp3sim.lua
2015-04-24 19:04:01 +02:00
marshmellow42 fef74fdce4 lf ask consolidation
backend:
askman and askraw demods merged into askdemod (args adjusted
accordingly)
re-arranged lfdemod.h in alphabetical order and by category

front end:
data detectclock a (ask) now also reports the selected best start
position for demod
data manrawdecode takes an invert arg now
2015-04-08 01:07:39 -04:00
iceman1001 49dc1d0a9e Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/Makefile
	armsrc/lfops.c
	client/cmdlft55xx.c
	common/ldscript.common
	common/lfdemod.c
2015-04-01 18:02:10 +02:00
iceman1001 b8f705e73e ADD: added some changes from Marshmellow
CHG: minor change to the help text for "LF HITAG WRITE"
2015-04-01 17:58:35 +02:00
marshmellow42 2eec55c8a4 lfdemods streamline & bug fixes
removed duplicate code countPSK_FC - adjusted countFC to work.
bug fixes & streamlined code in:
lf hid fskdemod
lf em em410xdemod

cleaned up lfdemod.c some
2015-03-27 00:02:30 -04:00
marshmellow42 e0165dcf3a Fixed indents to Tabs from Spaces
Spacing changes ONLY - no code changes
2015-03-25 14:24:36 -04:00
marshmellow42 327a690813 EM410x bug fix 2015-03-24 23:05:46 -04:00
marshmellow42 1fbf895616 lf updates
applies icemans full ata55x7 read/write settings
adds checksum to ioprox (thanks to iceman)
adds silent mode for lf read and getSamples
fix lf em em410xwatch and lf em410xspoof
improve data rawdemod ar -  for biphase demods
improve detectclock a for strong antennas
2015-03-23 16:29:50 -04:00
marshmellow42 13d77ef964 lf t5 read plus lf demod adjustments
lf t5xx commands updated from ICEMAN
lf em410x commands updated
lf search bug fix for 2 args
test scripts from iceman
lf demod:
better ask clock detection with Strong fully clipped waves
better ask raw demod with strong fully clipped waves
fsk demod add back in skipped bits during demod
nrz demod add back in skipped bits during demod
2015-03-22 15:28:48 -04:00
marshmellow42 b41534d142 adjust ask/biphase handling - more complete
also added XL EM410x formats
2015-03-15 22:03:50 -04:00
Martin Holst Swende f7048dc8a9 Implemented usb_poll() within LF sim. This means the LF sim will be aborted whenever something comes over the USB 2015-03-12 16:32:01 +01:00
marshmellow42 ada339a10f biphase bug fixes 2015-03-09 15:27:20 -04:00
marshmellow42 712ebfa6df 1 bug fix + code trimming 2015-03-07 23:31:23 -05:00
marshmellow42 78f5b1a77c lf sim fixes/creations correct now
fixed lf simpsk
fixed lf em em410xsim
fixed lf sim  (can go right from lf search to lf sim if you have a
strong antenna - if not use a demod first)
2015-03-06 12:28:54 -05:00
marshmellow42 e09f21fa7b Revert "lf sim fixes/creations"
This reverts commit 293de1bad7.
2015-03-06 12:26:33 -05:00
marshmellow42 293de1bad7 lf sim fixes/creations
fixed lf simpsk
fixed lf em em410xsim
fixed lf sim  (can go right from lf search to lf sim if you have a
strong antenna - if not use a demod first)
2015-03-06 12:25:36 -05:00
marshmellow42 8d960002c8 lf cmds fix, add, show
show command to UI:
data printdemodbuffer - allow printing of demod buffer
Add:
data askgproxiidemod - demod a gproxii tag

Fix:
adjust lf simxxx commands further for testing
2015-03-02 14:42:55 -05:00
marshmellow42 73da818743 lf simulation tests
added SimulateTagLowFrequencyTest function
with some adjustments that help ASK simulations
FSK and PSK still need help.  Left original HID sim alone as for some it
may partially work.
2015-02-28 14:33:05 -05:00
marshmellow42 872e3d4d6f NEW lf simpsk 2015-02-21 21:36:02 -05:00
marshmellow42 abd6112fc4 Revert "Revert "lf simask, lf simfsk and bug fixes""
This reverts commit e396001c47.
2015-02-19 21:35:34 -05:00
marshmellow42 e396001c47 Revert "lf simask, lf simfsk and bug fixes"
This reverts commit fb0c84c3df.
2015-02-19 21:22:05 -05:00
marshmellow42 fb0c84c3df lf simask, lf simfsk and bug fixes 2015-02-19 21:21:11 -05:00
marshmellow42 be2cf126bf Merge remote-tracking branch 'upstream/master' 2015-02-06 14:45:46 -05:00
marshmellow42 e770c64824 lf psk/nrz split, add maxErr argument
changed psk to use wave lengths instead of peaks
split out NRZ from psk demod
added maxErr argument to raw demods (except fsk)
2015-02-05 17:01:18 -05:00
Martin Holst Swende 0644d5e3a3 Merged with master 2015-01-31 18:21:38 +01:00
Martin Holst Swende 31abe49fd3 Some more fixes to longer lf recordings. Now also supports longer snoops, and an additional command 'lf config' has been defined, instead of having to specify all params for every call 2015-01-30 23:03:44 +01:00
Martin Holst Swende f6d9fb173f Added client-side support for recording longer samples, fixed last (?) issues on device-side 2015-01-29 00:57:22 +01:00
marshmellow42 0892b968ce fix hid prox standalone bug
Fixed standalone bug by re-making the function return the hi and lo
values. (used only by samyrun function in appmain.c)
2015-01-28 12:55:04 -05:00
marshmellow42 08ebca682c lf hid fskdemod bug
re-introduced in last bigbuf changes
2015-01-28 11:45:31 -05:00
pwpiwi f71f4deb8f BigBuf and tracing rework: allow much longer traces in in hf commands
- provided a BigBuf_malloc() function to dynamically allocate parts of BigBuf
  e.g. for DMA-Buffers, Frame-Buffers, Emulator-Memory
- the whole rest of BigBuf is now available for traces (instead of a small fixed amount)
- send actual traceLen together with trace data
- changed client side to cope with varying traceLen
- changed small buffers to automatic variables instead of parts of BigBuf
2015-01-28 07:18:51 +01:00
pwpiwi 117d9ec25c Refactoring of BigBuf handling in order to prepare for more efficient memory allocation and longer traces. 2015-01-27 22:25:55 +01:00
marshmellow42 a1d17964a2 lf demod bug fix & refactor
fixed bug in lfops.c in hid fskdemod
refactored data fskXXXDemods for specific tags to use more common code.
2015-01-27 14:51:12 -05:00
Martin Holst Swende 7c676e7269 Some documentation 2015-01-26 21:15:28 +01:00
Martin Holst Swende 7242efa07c bugfix 2015-01-22 23:04:59 +01:00
Martin Holst Swende cb366e9dbd Added a lf acquisition-mode which can do decimation and quantization, in order to be able to record longer transactions 2015-01-22 23:01:29 +01:00
marshmellow42 ec75f5c10a lf Bug Fixes and lf demod additions
added data fskparadoxdemod
added data setdebugmode (for demods)
added data shiftgraphzero (to help clean weak reads)
fixed a few bugs with the data detectaskclock
added data fskfcdetect to detect FSK clocks
adjusted most of my demods to put raw tag binary to demod buffer for
future sim and clone commands (psk still needs work)
2015-01-20 17:28:51 -05:00