Commit graph

181 commits

Author SHA1 Message Date
iceman1001 1903696e2a chg: uncomment -DWITH EMV to compile for EMV. 2017-02-06 00:57:31 +01:00
iceman1001 6a1687cc3e ADD: 'hf emv' - forgot to add some file 2017-02-05 22:16:50 +01:00
iceman1001 d760c7b3d9 FIX: 'standalone_14a mode' - cleaned up the standalone14a mode code. It now detects and simulates 4,7byte uids, like it should. code refactored to be easier to understand. 2017-02-01 14:09:26 +01:00
iceman1001 74dde713b1 CHG: should remove the OSX linker warning: ld: warning: directory not found for option '-L/opt/local/lib' 2017-01-26 21:13:17 +01:00
iceman1001 bf5d7992ce ADD: @micolous random nonce, adjusted to fit in. Icemanfork only uses Moebius attack, so no need for an extra parameter in client.
ref: https://github.com/Proxmark/proxmark3/pull/209
2017-01-26 14:21:51 +01:00
iceman1001 de39bf505a CHG: moved some from THUMB to ARM.. Looks like usb communication became bad. 2017-01-25 13:00:49 +01:00
iceman1001 53d5dc643f CHG: fiddled with the headerfiles... and makefile... Tried to make them behave nice. So it isnt a hell to add new functions from third-party (like des, aes etc)
Added a lot of #ifndef ,   extern C,
Move inside from ARMSRC -> THUMBS,  which made the compiled image smaller.. I don't know if it broke anything.
Moved MF_DBGLEVEL definitions into common.h
Moved print_result from util.c into appmain.c
Also split up some struct typedef  into header files so they could be reused in other code places.

''' danger '''  this might have broken stuff...
2017-01-25 00:33:03 +01:00
iceman1001 e4a8d1e2ac CHG: started the process of fixing "hf legic write" and "hf legic sim" commands. 2016-10-07 00:15:47 +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 1615d06a2e CHG: breaking up a long line in armsrc/Makefile to make it easier for ppl to understand how to compile for different standalone modes.. 2016-03-13 07:12:54 +01:00
iceman1001 0db11b71ef ADD: Added the HitagS from @spenneb ref:https://events.ccc.de/congress/2015/Fahrplan/events/7166.html
PM3 Master PR: https://github.com/Proxmark/proxmark3/pull/167

Adjusted the ENUM names to fit in my fork.  We need a better namestandard for it.
2016-03-04 19:06:47 +01:00
iceman1001 810f53792e ADD: added the possibility to choose which block num to attack with "hf mf mifare" Before it only worked on block 0. 2016-01-20 22:26:01 +01:00
iceman1001 f8ada309e9 ADD: @pwpiwi 's latest code from his 'hardnested' branch. 2015-12-15 08:51:29 +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 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 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 5ce7e22af6 ADD: forgot the zlib and some new fpga compress file.s 2015-06-25 12:29:41 +02:00
iceman1001 9783989b40 ADD: pwpiwi 's FPGA compress 2015-06-25 12:22:34 +02:00
iceman1001 489ef36cf6 ADD: @pwpiwi 's fixes for 14b. Including a rename from iso14443.c -> iso14443b.c 2015-06-02 12:17:34 +02:00
iceman1001 c3c241f389 CHG: moved a xor function into util.c
CHG: added some calls to clearCommandBuffer() in /hf mfu/hf 14a sim/hf mf sim/ commands.
CHG: minor adjustments to relative pathing.
2015-05-26 11:04:57 +02: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 e204bb7fb2 CHG: revert -O2 -> -Os compile 2015-04-01 17:52:24 +02:00
pwpiwi e335ca2846 Reclaim more than 19K of ARM flash memory.
- added compiler options -fdata-sections and -ffunction-sections (thanks to iceman for the hint)
- removed float operations from common/lfdemod.c to avoid adding float libraries to the ARM os image
- moved the fpga images to the data section to avoid reserving unused space for a separate section
2015-03-31 08:07:26 +02:00
iceman1001 0ec548dc21 Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/lfops.c
	client/cmddata.c
	client/cmdlf.c
	client/cmdlft55xx.c
	client/cmdlft55xx.h
	client/scripts/test_t55x7_bi.lua
2015-03-24 11:45:31 +01:00
iceman1001 b1db38e1b7 ADD: piwi's compiler flags -O2 2015-03-18 20:29:58 +01:00
iceman1001 3ac59c7fed Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/crapto1.c
	armsrc/iclass.c
	client/nonce2key/crapto1.c
2015-03-06 09:02:15 +01:00
Martin Holst Swende 10a8875c72 Implemented new optimized version of MAC-calculation for iclass 2015-02-26 20:35:35 +01:00
iceman1001 f4a57e861d Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/iclass.c
	client/loclass/cipher.c
	client/loclass/fileutils.h
2015-02-19 11:32:11 +01:00
Martin Holst Swende b67f7ec359 Further implementation of iclass 'fullsim'. Moved protocol definitions to shared file. Had to add some loclass-function to arm-side to support authentication in fullsim mode 2015-02-18 20:02:44 +01:00
iceman1001 2b61c24212 Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/appmain.c
	armsrc/apps.h
	armsrc/lfops.c
2015-02-10 08:58:14 +01: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
iceman1001 64d1b4efc9 Merge branch 'master' of https://github.com/Proxmark/proxmark3
Conflicts:
	armsrc/Makefile
	armsrc/appmain.c
	armsrc/apps.h
	armsrc/epa.c
	armsrc/iclass.c
	armsrc/iso14443a.c
	armsrc/iso14443a.h
	armsrc/iso15693.c
	armsrc/lfops.c
	armsrc/mifarecmd.c
	armsrc/mifareutil.c
	armsrc/mifareutil.h
	armsrc/string.h
	armsrc/util.h
	bootrom/bootrom.c
	client/Makefile
	client/cmddata.c
	client/cmddata.h
	client/cmdhf.c
	client/cmdhf14a.c
	client/cmdhf14b.c
	client/cmdhf15.c
	client/cmdhficlass.c
	client/cmdhfmf.c
	client/cmdhfmfu.c
	client/cmdlf.c
	client/cmdlfem4x.c
	client/cmdlfhid.c
	client/cmdlfhitag.c
	client/cmdlfio.c
	client/cmdmain.c
	client/data.h
	client/flash.c
	client/graph.c
	client/graph.h
	client/loclass/elite_crack.c
	client/loclass/fileutils.c
	client/lualibs/commands.lua
	client/lualibs/html_dumplib.lua
	client/lualibs/mf_default_keys.lua
	client/lualibs/utils.lua
	client/mifarehost.c
	client/nonce2key/crapto1.c
	client/proxmark3.c
	client/scripting.c
	client/scripts/tnp3dump.lua
	client/scripts/tnp3sim.lua
	client/scripts/tracetest.lua
	common/Makefile.common
	common/cmd.c
	common/cmd.h
	common/lfdemod.c
	common/lfdemod.h
	common/usb_cdc.c
	common/usb_cdc.h
	include/usb_cmd.h
2015-01-29 21:39:33 +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
iceman1001 a631936e84 ADD: Midnitesnaks's & Pentura labs Ultralight-c modifications in ARMSRC.
ADD:  des.c  ,  aes.c  in ARMSRC
2015-01-13 23:18:04 +01:00
iceman1001 9484ff3d6e ADD: tnp3xxx identification in luascripts.
CHG: minor code clean up.
2015-01-06 21:20:41 +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
iceman1001 6ff6ade2f5 ADD: midnitesnakes desfire, ultralight changes from Unstable branch.
ADD: Marshmellows fixes for the LF (demods) commands,  (LF SEACH)
ADD: Holimans changes with hash1_brute

FIXES:  minor fixes with some calls to "free" and redundant debug statement and code cleanup. removal of commented code.
2014-12-31 11:35:43 +01: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
iceman1001 f6c18637ca chg: LF t55xx trace
new:  LF t55xx info
2014-10-06 19:42:50 +02:00
iceman1001 f38a152863 First check in. 2014-09-11 23:23:46 +02:00
iZsh 7cc204bff8 THIS REQUIRES A BOOTROM UPDATE!! To save FPGA area, split the LF and HF bitstreams and load them on-demand. 2014-06-20 01:02:59 +02:00
roel@libnfc.org 28fdb04fd8 Finally, rewrote bootrom and flasher program, much faster now 2013-02-28 15:11:52 +00:00
roel@libnfc.org 6e82300dda removed all old usb calls 2012-12-05 16:14:10 +00:00
roel@libnfc.org 902cb3c00b major USB update 2012-12-04 23:39:18 +00:00
roel@libnfc.org d19929cbe8 MAJOR update, added hitag2 reader, emulation and eavesdropping, lots of new code, including FPGA tweaks, part 2 2012-09-18 13:53:17 +00:00
frederikmoellers@aol.de 5acd09bdfb Basic support for EAC documents (e.g. German Identification Card)
-new files armsrc/epa.[ch] for ePA (electronic "Personalausweis") related functions
    -Offers elementary functions (EPA_PACE_MSE_Set_AT etc.)
    -Also offers one new USB command: EPA_PACE_Collect_Nonce
-created new command subtree in client: client/hfepa.[ch] ("hf epa")
    -offers "hf epa cnonces" (collect encrypted PACE nonces)
-more to come
2012-08-28 21:39:50 +00:00
Merlokbr@gmail.com b62a5a8444 small improvements, added new command hf mf sniff (there will be cool sniffer). But now... here is optimized hf 14a snoop. As I see it works the same as th old version. 2012-07-06 16:19:05 +00:00
roel@libnfc.org 7e67e42f7e cleaned up some if-def routines 2011-12-16 11:00:51 +00:00
Merlokbr@gmail.com 8556b852ed 1. updated usb commands
2. added abilities to: clear, get, set, load from card, load from nested card emulator dump
3. tried to fix proxmark promt have seen everywhere (not so good)
4. reorganized arm code
2011-06-17 18:39:54 +00:00
Merlokbr@gmail.com 20f9a2a1d5 1. Mifare read block command
2. Mifare read sector (via 1)
3. Mifare write block
4. fixed several bugs in iso 14443 select
added
Issue 23
Issue 26
2011-05-26 12:55:15 +00:00
dekoninggans@gmail.com cee5a30d53 Added iClass eavesdrop support for Proxmark3 2011-05-18 12:33:32 +00:00
adam@algroup.co.uk 9455b51c2a Issue 20 patch (refactored code of the iso15693 implementation as well as several enhancements) [Adrian Dabrowski "atrox"] 2010-10-19 14:25:17 +00:00
adam@algroup.co.uk bd84638614 create target for binary file archive (linux version) 2010-05-09 12:17:42 +00:00
marcansoft 928727a45b Use sane optimization for armsrc 2010-03-03 13:19:29 +00:00
marcansoft 98540684df Link using gcc and get rid of the LIBGCC stuff
GCC knows how to find libgcc, and the proper way to link C code is to
use gcc, not ld.
2010-02-26 14:03:03 +00:00
marcansoft bd20f8f478 Add license headers to armsrc/bootrom/common stuff
I have kept whatever copyright notices exist. Please add your own
copyright notice if you have made any nontrivial changes or additions to
the code. There are several files without any attribution, currently.
2010-02-21 00:12:52 +00:00
marcansoft 9ab7a6c755 Split str* and mem* into string.[ch] 2010-02-21 00:10:28 +00:00
marcansoft 15c4dc5ace Clean up line endings, switch everything to LF instead of CRLF
Doing this for bootrom and armsrc for now. If you're using Windows,
please configure your editor for LF line endings.
2010-02-20 21:24:25 +00:00
izsh@fail0verflow.com 5e174a511b marcan's patch until he gets commit access. Remove C library's includes from the firmware side since it's not available anyway and not used 2010-02-20 03:07:55 +00:00
adam@algroup.co.uk 8e220a9126 put legic back in the system and add rumpletux's fast legic / prng code from forum 2010-02-05 08:18:02 +00:00
izsh.f0f 7fe9b0b742 Client cleanup and restructuring. Stage 1...
Next Step is refactoring some of the giant functions which are
just copy/paste of some other ones with just a few line changes,
removing unnecessary 'goto' etc.

The MS Windows version is broken with this commit but will be fixed
soon. Everything can't be done all at once :P

The commands are now hierarchical, for example:
"hf 14a read" vs. "hf 14b read".
You can also request help:
"hf help", "data help", "hf 15 help" etc.

Indents are now space-based, not tab-based anymore. Hopefully
no one will be trolling about it, considering the suicide-prone work
being done here ;)

client/cmdhw.c, client/proxusb.c, client/cmdhw.h, client/proxusb.h,
client/cmdmain.c, client/cmdlfhid.c, client/cmdmain.h, client/cmdlfhid.h,
client/data.c, client/data.h, client/cmdhf.c, client/cmdlf.c,
client/cmdhf.h, client/cmdhf15.c, client/cmdhf14b.c, client/cmdlf.h,
client/cmdhf15.h, client/cmdhf14b.h, client/cmddata.c, client/cmddata.h,
client/ui.c, client/cmdparser.c, client/cmdlfti.c, client/ui.h,
client/cmdlfem4x.c, client/cmdparser.h, client/cmdlfti.h, client/cmdlfem4x.h,
client/graph.c, client/graph.h, client/cmdhf14a.c, client/cmdhf14a.h,
client/cmdhflegic.c, client/cmdhflegic.c: New files.

client/cli.c, client/flasher.c, client/snooper.c, client/proxmark3.c,
client/proxmark3.h, client/Makefile: Update accordingly.

client/flash.h, client/flash.c, client/proxgui.cpp: Cosmetic changes.

client/translate.h, client/command.c, client/gui.c,
client/usb.c, client/prox.h: Remove.

include/usb_cmd.h (CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443_SIM): Remove dead cmd.

common/crc16.h: New file.
common/crc16.c: Modify accordingly.
common/iso14443crc.h: New file.
common/iso14443_crc.c: Rename to
common/iso14443crc.c: and modify accordingly.

armsrc/lfops.c, armsrc/iso14443.c,
armsrc/iso14443a.c: include .h files from
the common directory instead of including the c files.

common/Makefile.common, armsrc/Makefile: Modify accordingly.
2010-02-04 01:27:07 +00:00
bushing 6f5cb60c46 Add printf, and start transitioning away from DbpInteger 2009-12-30 02:18:25 +00:00
bushing d5be6f7cd4 fix OS detection, libgcc detection 2009-12-22 12:50:34 +00:00
henryk@ploetzli.ch 68d9d60a4d Add generic CRC calculation code 2009-11-25 20:41:41 +00:00
d18c7db c0d04e9540 Also defines to carve out LF related code 2009-11-12 07:23:12 +00:00
henryk@ploetzli.ch aac23b2434 Fix and generify legic response code 2009-10-16 22:07:00 +00:00
henryk@ploetzli.ch a7247d858b Add basic LEGIC RF communication in tag simulation mode 2009-10-12 11:47:39 +00:00
d18c7db d3ae0de746 Small changes to some armsrc makefile to allow conditional compilation of various protocols via defines, change winsrc makefile to allow override of compiler location via external defines, finally change fpgaloader to actually check that the image upload succeeded instead of just blindly sending it and hoping for the best. 2009-09-22 09:57:03 +00:00
henryk@ploetzli.ch 4271e82d56 Only re-compile version.c as often as necessary
Make bootrom version information pointer a proper symbol (with hacky ld strangeness workaround)
2009-08-29 06:14:28 +00:00
henryk@ploetzli.ch 0fa9ca5b53 Add command and code for bidirectional LF emulation of Hitag2. Should be extended for other types of tags 2009-08-28 21:56:43 +00:00
henryk@ploetzli.ch 8a6aec16d8 Implement version information storage and retrieval for the bootrom and the osimage.
Use perl to create the version information (thereby re-creating the perl dependency and adding an svn dependency) but fall back in case of missing perl or svn
2009-08-28 06:40:44 +00:00
henryk@ploetzli.ch e73e717239 Add Makefile for fpga directory (Windows codepath is untested, in any case, go.bat is still there)
Retire rbt2c.pl, instead use objcopy to directly convert the .bit file into an .o that can be linked with the flash image
Rename armsrc/fpga.c to armsrc/fpgaloader.c (since there is now a new fpga.o, created from fpga.bit)
Remove fpgaimg.c from subversion, add fpga.bit
Instead of creating fpgaimage.elf and osimage.elf separately, now create a joined fullimage.elf 
  first (obsoleting ldscript-full), then extract only the fpga and os sections with objcopy
  (This creates unspecific warnings about an empty segment, need to investigate)
Implement a rudimentary .bit parser in the firmware, use that to locate the bitstream in the new
  fpgaimage (which is just a plain copy of the fpga.bit file) and send it to the FPGA
  The code will check the format that's in flash and fall back to the legacy format
2009-08-27 23:29:49 +00:00
henryk@ploetzli.ch 8652988d62 Merge linker scripts in bootrom to have a single linker script for the bootloader proper (previously known as bootrom-merged.s19)
Remove the now unnecessary files (merge-srec.pl, ldscript-ram-jtag)
Note that this drops the dependency on perl for bootrom build, so end-users who don't touch the FPGA bitstream will not need perl anymore
2009-08-27 04:25:34 +00:00
henryk@ploetzli.ch 0fc0fca583 Move most rules to Makefile.common
Add automatic dependency generation
Compile ISO14443 files in ARM mode, as was the case with the Linux Makefile before
2009-08-26 17:34:19 +00:00
henryk@ploetzli.ch 7e931bbd32 Consolidate Linux/Windows Makefiles into one, see http://www.proxmark.org/forum/topic/312/consolidating-makefile/
+ Needs GNU make for Windows, a new release of the Windows development environment will follow
 + Is based on the Windows Makefile, so will build everything in Thumb mode, doesn't have flash commands (yet)
2009-08-26 11:17:05 +00:00
d18c7db 0422e2a471 Reduced the size of BigBuf to make more room for stack/vars 2009-07-29 13:37:09 +00:00
d18c7db 9bea179a71 added tiwrite command, split LF code from appmain into lfops.c 2009-07-25 11:47:43 +00:00
skamkar e6b13a5718 Don't depend on local path/lib settings for easier compilation 2009-07-02 01:29:48 +00:00
edouard@lafargue.name aa4d9d9b73 - Added new Makefile.linux in bootrom directory
- Cleaned up Makefile.linux in armsrc directory
- Added Linux toolchain build script in tools directory
- Made LCD support optional (disabled by default) in armsrc
- Small formatting changes
2009-04-25 21:19:59 +00:00
edouard@lafargue.name 6658905f18 Initial commit for the firmware. Used the 20090306_ela version as baseline.
It is identical to the popular 20081211, with the doob addition (20090301), a
linux client, and two additional commands for LF analysis. Let me know if
you find issues here!
2009-04-09 06:43:20 +00:00