Commit graph

798 commits

Author SHA1 Message Date
iceman1001
0b0b182fe2 CHG: changed to use BigBuff_Eml memory instead of big_buff_malloc.
CHG: downloading eml memory from device should use uint's
CHG: "hf legic read" has a different printing. It now prints 32bytes / row
2016-10-03 23:24:59 +02:00
iceman1001
c649c43389 CHG: finally, the ticks timer does what it is supposed to do. 32bits and working. 2016-09-29 21:36:43 +02:00
iceman1001
fabef615ec CHG: added addresize to legic select struct.
CHG: TIMER, it turns out the TC0, TC1 and TC2 is only 16bit.  So adjust to use two clocks to get a 32bit timer.
CHG: code clean up in legic device side.  consistency with variable names..
2016-09-29 17:43:39 +02:00
iceman1001
cb7902cdcd CHG: removed some debug data
CHG: reverted back to old crc imp.
2016-09-29 14:46:12 +02:00
iceman1001
a39944216d CHG: a select_legic function with structs and stuff and 2016-09-29 12:23:09 +02:00
iceman1001
d7e24e7c5f CHG: 'hf list legic' doesn't print the parity now.
CHG: 'hf legic read' the device side timings is starting to look much better. HUGE Thanks to @will-rbnt for endless checks and logic analyser feedback. Without his effort this would not work. What does work? We can now use ANY IV in legic. The PM3 Master version is flawed, will only work with IV=0x55.

---still broke--- my crc implementation.. I know I'm about to look into it.
2016-09-28 21:37:08 +02:00
iceman1001
584e28e54b CHG: Minor tweaks, the tracing dissappeared, the spindelay for powering up too long. 2016-09-26 21:40:05 +02:00
iceman1001
62577a62ae FIX: Much of my added extra legic code is commented away now.
FIX: the gcc6.1.1 warning broke my gcc 4.8.4 build env..
2016-09-26 20:21:31 +02:00
iceman1001
3e750be37c ADD: started to add a legic detection to "HF SEARCH" 2016-09-26 20:01:23 +02:00
iceman1001
faabfafe30 CHG: using bitsend to determind the legic annotation in "hf list legic" makes false positives much less. 2016-09-26 12:26:37 +02:00
iceman1001
e1deabc0eb CHG: fixes a "indent" warning 2016-09-26 11:04:04 +02:00
iceman1001
25d52dd261 CHG: according to measureement by @wilrn the actual timing for receiving tag data, is 90us (ONE) and 100us (ZERO) which is not mentioned anywhere before. What a find! 2016-09-24 15:15:24 +02:00
iceman1001
d5bded10e2 CHG: lowered the timout again, but re-added the spindelay since 14a requires 5ms powerup before entering the idle-state where tag starts to listen.
CHG: fix the ticks compare xx > 1 into  xx >= 1
2016-09-23 23:23:17 +02:00
iceman1001
f885043422 FIX: "hf 14a read" / "hf mf *" / "hf mfdes info" and failure when calling these commands serveral times in row.
For long transactions the sspclock compare with >1 instead of >=1 ..   Now the timer resets properly.
CHG: use some #define constants for iso-commands.
2016-09-23 21:28:07 +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
22f4dca88c CHG: extracted some timers functionality, to get unified access to a timer/clock which counts in ticks. Moved stuff from util.c 2016-09-21 19:03:32 +02:00
iceman1001
87342aadbc CHG: adjusted timing according to @sentinel 's traces 2016-09-14 16:18:04 +02:00
René Werner
1cb9b2a3cf used tabs instead of spaces 2016-09-13 21:04:13 +02:00
René Werner
78f59945a7 fixed indentation to get rid of warnings
warnings are treated as errors, so a warning due to misleading
indentation is kinda annoying
2016-09-13 20:57:25 +02:00
iceman1001
111c6934d4 CHG: Small steps, the waiting time between frames was unclear. At least now the tags answers to a readbyte command after the setup phase. 2016-09-12 09:19:49 +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
db44e049b0 CHG: this timing should be quite good. needs to be verified. 2016-09-10 22:47:11 +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
5d15891e2b FIX: Even the US clock had the issues with not resetting properly. Now its always ZERO when you call StartCountUS. 2016-09-09 11:57:31 +02:00
iceman1001
ad5bc8cc8c In my attempts to make the LEGIC code better, its not working now. Timings if off.
CHG: switching to US clock.
CHG: better trace annotation for legic
CHG: Legic prng can now give a x bits in once.
2016-09-09 11:56:20 +02:00
iceman1001
f7b4257301 FIX: the acknowledgement response in setup phase now deals with MIN22, MIN256, MIN1024 tag accordingly. 2016-09-03 12:18:02 +02:00
iceman1001
c71c5ee156 ADD: started to add tracelog in legic
ADD: remake of legic codebase.
ADD: started with a annotation for LEGIC in 'hf list'
2016-09-02 16:25:54 +02:00
iceman1001
ab1112796e CHG: removed call to bigbuff free. 2016-09-01 20:31:22 +02:00
iceman1001
2deea574d3 CHG: reverting use of bigbuff, because I forgot that every switch between LF/HF images destroys BigBuff. 2016-09-01 00:52:54 +02:00
iceman1001
05aff802ae CHG: removed a redundant include to strings.h, which made compilation errors on OS X 2016-08-31 22:10:06 +02:00
iceman1001
cc70dd6b60 FIX: should fix the typedefintion error for OS X regarding bool cmd_send 2016-08-31 21:11:57 +02:00
iceman1001
153a4a78fe CHG: the loop in main, for usb_poll_validate_length, shouldn't do anything, it should be done inside the next call to usb_read... 2016-08-31 19:22:52 +02:00
iceman1001
8d61d9b114 CHG: this timeout doesn't influence the bad performance with my older pm3 device (green pcb). I think its too slow. 2016-08-31 19:18:48 +02:00
iceman1001
be818b1417 FIX: Forget that the prng was 0x8000 length and not 0xFFFF. Sorry. Also returned to the decomposed loop. Don't know if this armsrc optimises this at compilation time. Does someone know?
CHG: returned the iso14443a_setup order, it might influence my older PM3 device.

*Note*  my Elechouse revisions PM3 works great with this but my older xpfga (green pcb) is hopeless.  It can't fix onto the nonces in 'hf mf mifare'  I think its too slow.
2016-08-31 19:17:39 +02:00
iceman1001
cc70889743 FIX: fixes the broken build,...
FIX:  increased the timeout,  to make 'hf mf chk' work better.
2016-08-26 17:17:40 +02:00
iceman1001
f121b478a1 FIX: 'lf awid bruteforce' cleaning up all debug messages 2016-08-26 16:35:30 +02:00
iceman1001
ed8c2aeb63 CHG: forgot a semicolon... 2016-08-24 15:05:10 +02:00
iceman1001
bcacb3168b CHG: removed some extra time to sync,
CHG: first_try ,  it must recalibrate all the times when it comes from the client.
2016-08-24 15:01:36 +02:00
iceman1001
63a1d80130 FIX: the underlaying bug on deviceside code. The SSPCLOCK wasn't reset to zero sometimes. More specific, TC2 wasn't reset cause all sorts of timing issues for the device side randomly. Like 'hf mf mifare', like iclass, like 'hf mf sim' etc etc. 2016-08-24 12:37:31 +02:00
iceman1001
f38cfd6693 CHG: fixed the collapsing comments when opening this file in notepad++ Need spaces between // text or /* ... 2016-08-24 12:34:34 +02:00
iceman1001
4c44d88500 REM: removed an test function 2016-08-24 12:32:43 +02:00
iceman1001
6067df30c5 FIX: at least now the special zero parity attack, repeats and doesn't crash. However it doesn't find the key either :( 2016-08-10 10:55:29 +02:00
iceman1001
86db8973b0 CHG; still looking at 14b, this time started to look at the tracelog times not working. 2016-08-09 23:13:18 +02:00
iceman1001
c2df2883f8 fix: forgot something small.. sloppy. 2016-08-07 22:15:35 +02:00
iceman1001
29f8c2cc15 ADD: added the 'max frame size' parameter set, valid sizes: 16|24|32|40|48|64|96|128|256
it can be verified by setting debuglevel to 3 or more.
2016-08-07 22:05:10 +02:00
iceman1001
d8b7a5f294 CHG: applied some of the changes unto "hf 14b snoop" *untested* Hard to test without a proper reader/tag to snoop 2016-08-07 18:49:36 +02:00
iceman1001
b86225188e CHG: iso14443b.c got some more love. using the "hf 14b raw" command gives now a much stabil read from more distances than before. 2016-08-07 17:49:33 +02:00
iceman1001
df007486f5 ADD: @donwan581 select keytype for the darkside attack. 2016-08-04 21:51:26 +02:00
iceman1001
6b23be6b7e CHG: cleaning up. 2016-08-04 21:37:43 +02:00
iceman1001
0f6e6b9acb FIX: coverity scan 133859 structually dead code, looks like this is a rest from and old loop. I just removed it. 2016-08-03 10:53:26 +02:00
iceman1001
c23d2618ba FIX: mental note to self, don't code when tried. "size" should have been "sizeof". I need to fix my build for armsrc again. 2016-08-03 00:51:26 +02:00
iceman1001
65cdf0e3f9 FIX: Coverity scan 1333852, Make sure (card) is not null before accessing it. 2016-08-03 00:39:02 +02:00
iceman1001
c3e8413c2b CHG: Some testing of timings on 14443b,
FIX: CoverityScan 133854 , out-of-bounds read,  when calculating crc.
2016-08-03 00:35:14 +02:00
iceman1001
3e82f956d8 FIX: COverityScan 133865, out-of-bounds access, Forgot that bits is not used in Logtrace but bytes. 2016-08-03 00:25:53 +02:00
iceman1001
bf2cd64406 fix: CoverityScan 133855 -out-of-bounds bits was used as index to cmd array. 2016-08-02 16:04:03 +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
ab3af4fe85 CHG: forgot to add the reflect function 2016-07-28 21:45:00 +02:00
iceman1001
3e134b4c20 CHG: merged the forum user @jason 's fixes to LEGIC. *UNTESTED*
CHG: changed the CRC implementations.
2016-07-28 21:41:44 +02:00
iceman1001
b9b480d081 chg: name error? 2016-07-07 10:01:50 +02:00
iceman1001
a8ee668770 CHG: moved includes into header file where it belong 2016-07-07 02:15:40 +02:00
iceman1001
0a856e292a CHG: adjusted the debug message to the correct mfkey32v2 with right number of parameters. 2016-06-22 09:35:18 +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
60e26e50c5 FIX: changed from ssized_t -> size_t
FIX:  changed off_t -> size_t
2016-05-09 08:27:55 +02:00
iceman1001
e46642ca4c REM: commented out a reference to Logtrace in bigbuf.c, since its already declared as "extern" in bigbuff.h
Lets see if this reduces compilation errors for Mac OS X users.
2016-05-08 18:52:19 +02:00
iceman1001
048324d63b DEL: removed the homebrews script. It needed a seperate gitproject.
CHG:  removed references to  stdio.h  and time.h  in ARMSRC.
2016-05-06 23:51:03 +02:00
iceman1001
7680db569c CHG: test to remove a call <sys/types.h> seems to be conflict with mac os x... 2016-05-06 20:09:10 +02:00
iceman1001
b070f4e495 CHG: only need a byte in this loop 2016-04-29 22:24:37 +02:00
iceman1001
ffeb77fdc6 CHG: the 14b is getting better, since I added the fpga waiting signaling I found in "14a emgetcmd" etc. 2016-04-29 22:23:32 +02:00
iceman1001
57850d9dfb CHG: FpgaSetupDMA, handle when it returns NULL. 2016-04-27 20:42:44 +02:00
iceman1001
d51717fffd CHG: 'hf 14b sim' better work flow on device side. not done yet. 2016-04-27 20:42:01 +02:00
iceman1001
0923c43cc6 CHG: "hf 14b sim" making the flow to be similar to "hf 14a sim". 2016-04-27 19:53:21 +02:00
iceman1001
dccddaef77 CHG: "hf 14b sim" - Added the possibility to call it with a PUPI/UID. Sample: "hf 14b sim u 11223344" 2016-04-27 11:21:29 +02:00
iceman1001
8040711b90 REM: removed a debug function call, PrintToSendBuffer 2016-04-26 21:34:24 +02:00
iceman1001
a287e8cfdd CHG: FpgaSetupDMA can fail and returns NULL. Added a check for it. 2016-04-26 21:31:43 +02:00
iceman1001
11c2df83d2 CHG: Much more stable 14B functionality when Sending as Reader/PCD and Reading from Tag/PICC. The read distance is up to 2.5cm and is not nearly so position picky as previous version. The logtrace now also logs times.. kind of.
Getting there slowly.
2016-04-26 21:29:45 +02:00
iceman1001
aa5bbe6a9b CHG: changed this call, to the #define name instead. 2016-04-24 21:45:22 +02:00
iceman1001
cd777a0545 FIX: Some Coverity Scan warnings. fread, not initialised etc etc 2016-04-23 18:23:46 +02:00
iceman1001
5bb6228386 syntax suger 2016-04-23 13:04:22 +02:00
iceman1001
72e6d4621a code clean up 2016-04-21 10:30:42 +02:00
iceman1001
bc9393715f CHG: "hf 14a sim" command , correct use of FLAGS
CHG: "hf 14a sim" command, changed the data collection for the attackmode in SimulateIso14443aTag.  It now uses @holiman 's original implementation. But we can't change "NR", so we do next.
CHG: "hf 14a sim" command, nonce is increase with every new auth.  This is for the "mfkey32_moebius" attack to work.

CHG: "hf mf sim" command (function void Mifare1ksim ) now handles UID' with length 10.
CHG: "hf mf sim" command nonce is increase with every new auth.  This is for the "mfkey32_moebius" attack to work.
2016-04-18 13:26:16 +02:00
iceman1001
c01d8e21ea CHG: deviceside changes to deal with sniffing UID's with length of 10. 2016-04-18 13:19:11 +02:00
iceman1001
13fc2e9c71 ADD: added triplesided UID to "hf mf sniff" 2016-04-14 11:35:49 +02:00
iceman1001
c981c53ff3 MOV: moved the #DEFINES into protocols.h 2016-04-14 11:34:36 +02:00
iceman1001
68410a4892 Syntaxt suger 2016-04-14 11:34:02 +02:00
iceman1001
0194ce8fc8 ADD: simulating can now handle triplesized UID (10b)
CHG: moved some mifare #DEFINES into protocols.h  (ACK,NACK..)
2016-04-14 11:09:17 +02:00
iceman1001
91c7a7ccb7 Syntaxt suger,
and some clean up in the "hf mf mifare" code.  I removed the three strategies Pivi added to make the code easier and added a lot of comments to understand.
the WDT bug is still there in this code. Needs further testing yet, before I commit the fix.
So far the fix is quite stable on ubuntu, but on mingw/win is breaking still. Which at this point doesnt make any sense.
2016-04-12 11:36:52 +02:00
iceman1001
88e20c9f6d syntax suger 2016-04-12 11:30:49 +02:00
iceman1001
46f983fe9e REM: removed an unused method MifareCollectNonces
ADD:  added some set_tracing(FALSE) calls for consistency.
and.. syntax suger
2016-04-12 11:29:40 +02:00
iceman1001
41863885d0 REM: removed some unused code, GetDeltaCountUS() and a global counter variable. Its not used anywere.
CHG:  syntax suger
2016-04-11 15:26:15 +02:00
iceman1001
86d597a510 ADD: added @pivi 's faster authentication method from 'hardnested' into "hf mf chk" (check keys) and removed the "halt" command.
the speedup is great. Together with the previous speedups from making changes how the client sends the keys to the device,  make it lightning fast. It would be fun to see how much fast it is now.
2016-04-11 15:25:00 +02:00
iceman1001
ca5bad3d73 CHG: syntax suger,
CHG: the nested call to readerreceive is not negated..
2016-04-10 13:05:01 +02:00
iceman1001
1b4a446aba CHG: syntax suger.. 2016-04-10 12:58:04 +02:00
iceman1001
2abdfa491c CHG: mostly syntax suger, trying to uniform the look 'n feel.. To make calls act to what is expected. 2016-04-10 12:56:59 +02:00
iceman1001
5eceba292f CHG: some textual change and some syntax suger changes. 2016-04-10 12:55:18 +02:00
iceman1001
cb832982c9 FIX: how to break a working thing by being blind... 2016-04-10 12:29:38 +02:00
iceman1001
06eb3b1a8c coverity fixes for my latest changes.
Forgot some breaks in 7816 annotation, and  presco used an uninitalized char array.
2016-03-22 08:40:20 +01:00
iceman1001
9206d3b034 ADD: copied all EMV files from peter filmoores fork. Have not started with making it work in current fork. (a lot of work) 2016-03-20 19:37:29 +01:00