Commit graph

182 commits

Author SHA1 Message Date
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
iceman1001 952a8bb59b Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/lfops.c
	client/cmddata.c
	client/graph.c
2015-01-08 22:23:45 +01:00
marshmellow42 ba1a299ce6 code cleanup. re-added psk commands.
also fixed a bug in detect clock functions.
sync with master prep for pull request
2015-01-07 18:14:27 -05:00
marshmellow42 c07b79fcbf sync with master lf files to resolve conflicts 2015-01-07 18:13:27 -05:00
marshmellow42 4118b74dc8 added data psk* cmds for pskdemod
fixed a couple small bugs in other lf functions as well including
detectaskclock,  stopped changes from being made to graphbuffer.
2015-01-07 18:13:26 -05:00
iceman1001 d91a31f935 CHG: minor code clean up.
ADD: tunesamples in cmddata.c  pullrequest #33,  was removed by Marshmellows other commits. I returned it.
2015-01-07 21:29:38 +01:00
iceman1001 3fe4ff4f03 CHG: generic code clean up. Removal of commented code.
CHG: USB_CMD_DATA_SIZE is now used as maxsize for transfer of data between client and pm3device
CHG: suggested a fix for the underscore problem in ioclass\fileutils.c
ADD:  tnp3xx support
ADD:  nxp tag idents.
ADD:  identifiction of chinese backdoor commands to hf 14a reader.
2015-01-05 15:51:27 +01:00
Martin Holst Swende 854b9a233f Removed unused variable 2015-01-03 14:29:07 +01:00
Martin Holst Swende ae8e8a4372 Corrected indentation to tabs only 2015-01-03 14:21:07 +01:00
Martin Holst Swende 6ca4c6463e Removed wrong size-count, sizeof(bigbuf) would always return 40000 in lfops 2015-01-03 14:17:59 +01:00
marshmellow42 f822a063b3 lf demod code cleanup - added fskraw arguments
merged code and added arguments to data fskrawdemod to allow other fsk
mode demodulations (FSK2a = RF/10 & RF/8) another might be (RF/8 & RF/5)
2014-12-31 02:27:30 -05:00
marshmellow42 66707a3b3c LF Demod bug fixes and add lf em em410xdemod
fixed a few bugs in lf demod that the streamlining added.  added new lf
em em410xdemod command that loops until button pressed. (similar to lf
hid fskdemod
2014-12-29 15:32:53 -05:00
marshmellow42 7db5f1ca25 slight adjustment to include
removed extra unneeded path
2014-12-28 21:29:33 -05:00
marshmellow42 eb191de615 LF Demod streamlining
one shared location for demoding lf for arm and client.  also added a
few raw demod commands.
2014-12-28 20:33:32 -05:00
marshmellow42 b3b706693b Final touches on IO prox and HID prox demod
makes both more robust and handles various error situations.
2014-12-19 12:14:27 -05:00
marshmellow42 083ca3de73 LF HID & IO prox fixes/options 2014-12-17 09:51:40 -05:00
marshmellow42 4860172789 LF HID & IO prox demod translation addons
lf hid fskdemod - add bit format length, facility code and card numbers
for different formats
2014-12-13 20:23:59 -05:00
Martin Holst Swende 2ed270a854 Coverity-fixes in armsrc 2014-10-28 21:44:17 +01:00
Martin Holst Swende 9cc8a1e588 Some more docs, also made lf hid fskdemod a bit more stable. Should be no more false readings now 2014-10-25 22:42:27 +02:00
Martin Holst Swende b225678574 Some minor changes and some documentation 2014-10-24 21:12:31 +02:00