Commit graph

147 commits

Author SHA1 Message Date
pwpiwi 4cb4b588c2 Deduplicate mfkey32 and mfkey64
- rename client/nonce2key.[ch] to mfkey.[ch]
- leave only main() wrapper in tools/mfkey
- add mfkey32 and mfkey64 to .gitignore
2017-03-23 18:38:17 +01:00
pwpiwi 7779d73c71 Code cleanup: Refactoring nonce2key
- include nonce2key() in mifarehost.c
- remove tools/nonce2key
- simplify mifare_autopwn.lua
2017-03-20 21:16:57 +01:00
pwpiwi acf0582d53 Provide msclock() as Milliseconds timer for performance measures (#231)
- don't use clock(). It has different functionalities in Windows and Linux
- move sleep functions to util.h
2017-03-12 15:06:27 +01:00
pwpiwi 7cb8516cb5 Client code cleanup:
- cleanup some header files and respective #includes
- rearrange functions (definition before first use)
- use SCNxxx instead of PRIxxx macros in scanf()
- use stdbool true/false instead of self defined TRUE/FALSE
2017-03-06 21:03:13 +01:00
marshmellow42 40c6a02bc9 Add a retry loop to hf mf dump
helps get the data dumped even if positioning isn't 100% perfect.

also switched em4x05 commands to WaitUS instead of SpinDelayUs, per
@pwpiwi 's suggestion.
2017-02-28 11:09:42 -05:00
pwpiwi 4c16ae80f0 Code cleanup:
- correctly using stdtypes.h printf and scanf format string macros (PRIx64 et al)
- coverity fixes to client/cmdhfmf.c
- fix linker warning re missing entry point when linking fullimage.elf
2017-02-23 18:29:03 +01:00
pwpiwi 43534cbad2 Code cleanup:
- correctly use inttypes.h scanf and printf macros (PRIx64 et al)
- fix indendation warnings
2017-02-22 22:45:00 +01:00
Michael Farrell 5b5489baf4 hf mf sim: Multiple fixes from review of PR #209.
- Don't increment the nonce when random mode is disabled (this breaks the
  standard attack).

- Don't attempt the standard attack when random mode is enabled (there's no
  point as it won't work, per comments from @pwpiwi).

- Attempt the moebius attack if the standard attack fails.
2017-01-26 20:30:13 +11:00
Michael Farrell f9c1dcd9f6 Adds random nonce (r) option to hf mf sim.
This makes the PM3 generate pseudo-random nonces rather than sequential
nonces, to make it act a bit more like a "real" MFC card.  A reader would
otherwise be able to detect the PM3 probing based on the predictable nonces
and throw different authentication challenges (or refuse to authenticate at
all).

The code includes an implementation of a rand-like function (prand), similar
to the one from libc, which is seeded automatically based on the time it
takes between the PM3 starting up and the first call to the RNG.

This isn't cryptographically random, but should be "good enough" to be able
to evade basic detection.
2017-01-26 18:32:25 +11:00
marshmellow42 ef3f88bca9 disable extra attack - disable stats.txt
Moebius attack didn't yield any better results in my testing so
disabling it, but allowing it to be re-enabled at will.
also disabled the auto logging of all keys with uid delimited file
stats.txt - can be uncommented when needed
2016-07-28 12:52:18 -04:00
marshmellow42 91f4d53123 couple bug fixes - clean up 2016-06-28 21:02:26 -04:00
marshmellow42 76ef5273d8 hf mf sim code cleanup - update changelog 2016-06-27 00:09:40 -04:00
marshmellow42 73ab92d14c mf 1k sim reader attack cleanup
add abort options - keyboard & button press.
2016-06-25 00:53:53 -04:00
marshmellow42 bbd118760b allow mf1k reader attack from file full of UIDs
also add UID to stats.txt collection.
2016-06-24 23:43:53 -04:00
marshmellow42 6eae192c41 fix bug in moebius nonce collection - now finishes
also cleaned up some comments
note previous update added the creation of a stats.txt file to generate
statistics of the differences between std mfkey32 and the moebius
version.
2016-06-24 16:46:11 -04:00
marshmellow42 c872d8c177 update hf mf sim x attack mode - start 10byte uid..
..support  (some from @iceman1001)
(sim reader attack currently testing std mfkey32 vs mfkey32_moebius
version...)  possibly will remove one later.
2016-06-24 01:31:27 -04:00
marshmellow42 79dcb9e090 improve hf mf sim x reader attack
can now directly extract multiple keys for multiple sectors
2016-06-22 11:03:37 -04:00
Martin Holst Swende be6250d31b Merge pull request #140 from marshmellow42/iclass
iClass major updates
2015-10-13 09:39:04 +02:00
pwpiwi 8c6b22980c hf mf mifare: (finally) fix watchdog reset
- minor changes to sync
- try alternative strategies when debugging
2015-10-10 15:04:17 +02:00
marshmellow42 c54dff4f4a Merge remote-tracking branch 'Proxmark/master' into iclass
Conflicts:
	CHANGELOG.md
2015-10-07 09:34:47 -04:00
marshmellow42 1a5a73abae Add mifare crypto trace decryption utility
allows manual decryption of hf 14a snoop traces of a mf card.
someday we should fix hf mf sniff...
2015-10-07 00:24:55 -04:00
pwpiwi dfb387bf0f hf mf mifare:
- gracefully exit on unsuccessful syncs instead of hard watchdog reset
2015-09-30 20:59:50 +02:00
pwpiwi 5330f5329f - fix: trace of hf mf mifare had always been cleared by mfCheckKeys() in nonce2key()
- fix: parity was not checked for reader commands in hf list 14a
- add: enable tracing for hf mf nested
2015-07-07 09:02:00 +02:00
pwpiwi dc8ba239fb (implementing suggestion #94)
hf mf mifare: gracefully exit if tag isn't vulnerable to this attack
hf mf nested: dito
2015-06-25 08:32:29 +02:00
Pierre LALET 1d537ad65c Ported hf mf esave trick for unreadable UIDs to hf mf csave
Thanks: iceman1001
2015-05-25 11:47:27 +02:00
Pierre LALET 292fe72535 Fix filenames for hf mf cload / csave 2015-05-24 22:43:08 +02:00
Pierre LALET 0b14440dce Fix filenames for hf mf esave / eload 2015-05-24 20:14:22 +02:00
marshmellow42 e6432f0579 @iceman1001 s coverity scan fixes 2015-05-13 11:14:17 -04:00
marshmellow42 664f658650 nexwatch fix .h file + icemans mf csetblk w arg
forgot to include the new nexwatch command in the header...
added icemans hf mf csetblk w parameter fix
2015-04-08 15:08:05 -04:00
Martin Holst Swende 83602affe5 Fixed buffer initialization errors, as reported in http://www.proxmark.org/forum/viewtopic.php?pid=15337#p15337 2015-04-08 13:31:04 +02:00
marshmellow42 9f7bbd24c9 data autocorr additions 2015-03-13 12:23:26 -04:00
pwpiwi 16a95d76ac fix: (issue #73) hf mf cload didn't work. Add more annotations for Magic Cards operation. 2015-03-09 21:36:27 +01:00
Jesse Hallio 3bba7deac0 Add settable ATQA and SAK to hf mf csetuid command. 2015-02-10 04:31:53 +02: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
iceman1001 e3c235654f Minor fixes to some help-texts. 2015-01-20 21:48:39 +01:00
iceman1001 5ee701292f Step 2 - Ultralight / Ultralight-C
With this the Pentura Labs / Midnitsnakes's original ultralight / ultralight-c implementation is enhanced and move to its own file. cmdhfmfu.c
2015-01-20 21:23:04 +01:00
Martin Holst Swende 31d1caa526 Reverted some minor things, altered other things to get it to compile cleanly 2015-01-08 17:51:52 +01:00
iceman1001 787b5bd8a4 CHG: minor code clean up in ArmSrc.
ADD: added some more default keys in Hf mf nested,  maybe it runs faster :)
2015-01-08 00:08:33 +01:00
iceman1001 b915fda392 FIX: a solution for the issue "hf mf esave - always saves 4K"
FIX: a solution for the issue "hf eload, esave, cload, save - filepath variable too short"
CHG: minor code clean up.
ADD: AES / CRC16 for lua. (and tnp3xx scripts.)
ADD: tnp3dump.lua  script to dump tnp3xx tags.
ADD: tnp3sim.lua script to let PM3 imitate an tnp3xx tag. Needs to be tested live
2015-01-07 22:00:29 +01:00
iceman1001 52ab55ab0d ADD: added a lot of ic ids to cmdhf15.c Thanks to Asper for the list.
ADD: added a manufacturer list in "hf 14a reader",  only viable when UID is double or triple size.  Thanks to Asper for the list.
ADD: detect chinese magic backdoor commands in "hf 14a reader"
CHG: minor code clean up.
2015-01-07 21:06:15 +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
pwpiwi 6a1f2d82bb bugfixes iso14443a (hf 14a commands)
- buffers were too small to handle 256 byte frames
- parity bits were only handled for up to 32 byte frames
- trace format was inefficient
- removed parity calculation from decoders in iclass.c (parity not used on air anyway)
2014-12-16 07:41:07 +01:00
Martin Holst Swende ca4714cd23 More coverity fixes 2014-10-30 21:49:18 +01:00
Martin Holst Swende 97d582a692 More coverity findings 2014-10-27 22:33:37 +01:00
Martin Holst Swende 90e278d3da Fixed several issues found using a coverity-scan 2014-10-27 21:46:04 +01:00
pwpiwi c626c56ef5 hf mf dump bugfix: wrongly tried key A instead of key B for a specific Access Condition 2014-09-12 07:45:04 +02:00
pwpiwi 79db03ef63 hf mf dump error handling, revive hf mf chk d option, provide known keys dictionary file
- hf mf dump: abort on unrecoverable errors. Don't create file dumpdata.bin in this case.
- hf mf chk: re-enabled and fixed option d (dump keys to dumpkeys.bin).
  if there are unknown keys, write 0xffffffffffff instead to the file.
- provide a default key dictionary file for hf mf chk (default_keys.dic). Contents taken from
  mf_default_keys.lua
2014-09-11 20:58:34 +02:00
pwpiwi baeaf57950 fix/add support for 4K (and other non 1K) card sizes in hf mf commands
- hf mf rdsc (fix): didn't account for 16 block sectors, allowed max sector 63 instead of 39
- hf mf ecfill (add): added (optional) card size parameter and support for non 1K cards
- hf mf dump (add): added (optional) card size parameter and support for non 1K cards
- hf mf dump (fix): Access Condition 011 not handled correctly (tried to access with key A)
- hf mf restore (add): added (optional) card size parameter and support for non 1K cards
- hf mf nested (fix): didn't account for 16 block sectors, allowed max sector 63 instead of 39
- hf mf nested (fix): always dumped 16 keys to dumpkeys.bin instead of correct number
- hf mf chk (fix): always dumped 16 keys to dumpkeys.bin instead of correct number
- hf mf eget (fix): displayed three instead of one block
- hf mf eload (add): load 4K .eml files (but accepts 1K .eml files for backwards compatibility)
- hf mf esave (add): always save the whole emulator memory (4K) instead of 1K only
- hf mf ecfill (add): added (optional) card size parameter and support for non 1K cards
2014-09-10 19:04:50 +02:00
pwpiwi b03c0f2d86 bugfixes hf mf sim
- output of debug messages caused communication failures due to timing issues.
  hf mf dbg 4 now required to see these debug messages.
- changed help text for hf mf dbg
- fixed minor bugs in help texts for hf mf sim and hf mf ecset
- display "key A" or "key B" instead of "key=0" or "key=1 in hf mf sim
2014-07-30 21:23:02 +02:00
pwpiwi 991f13f27d minor bugfixes to hf mf sniff and hf 14a snoop
- tracing was not always enabled when starting hf mf sniff or hf 14a snoop
- ATQA was displayed in wrong byte order in hf mf sniff
- 4 Byte UIDs were displayed as 7 Byte UIDs (padded with 0x000000) in hf mf sniff
- same for logfile names.
- assignment (=) had been used instead of == in comparisons (shouldn't have been relevant though)
2014-07-15 08:39:56 +02:00
holiman f5a1a9ce47 Merge pull request #8 from pwpiwi/master
add .gitignore and merge svn r852
2014-03-25 21:49:05 +01:00
pwpiwi d714d3effc Improvements/Fixes to 14443 sniffing/snooping
- fixed a circular buffer rollover bug in iso14443a.c
- fixed 7 Byte UID handling in hf mf sniff
- fixed "cannot append" error in hf mf sniff d
- fixed hint on mfkey32 in hf mf sim x
- fixed hf mf sniff sometimes showing rogue data from previous calloc
- improve snooping/sniffing by syncing modulation detector window with reader signal (hi_iso14443a.v)
- code cleanup of hi_iso14443a.v
2014-03-25 21:38:24 +01:00
PenturaLabs 1801456ede Re-submitting Midnitesnake's Mifare Ultralight Patch 2014-03-18 14:02:32 +00:00
martin.holst@gmail.com 0c12504a5a Patch submitted by 'FireFart', for some issues with 'hf mf chk'. See http://www.proxmark.org/forum/viewtopic.php?id=1888 for more info 2014-02-27 18:10:12 +00:00
micki.held@gmx.de 7bc95e2e43 - fixed iso1443a ManchesterDecoder in order to fix broken Snoop/Sniff
- enhanced tracing: hf 14a list now shows meaningful timing information. With new option f it also shows the frame delay times (fdt)
- small fix for hf 14b list - it used to run into the trace trailer
- hf 14a sim now obeys iso14443 timing (fdt of 1172 or 1234 resp.)
Note: you need to flash FPGA as well.
More details in http://www.proxmark.org/forum/viewtopic.php?pid=9721#p9721
2014-02-19 20:35:04 +00:00
martin.holst@gmail.com d2f487af9c Various improvements on the Mifare1kSimulation. Fixed issue with tracebuffer not being cleared, fixed issue with 'static' errors, added modes for doing reader-only attack, added interactive mode, added possibility to set UID from cmdline, either 7-byte or 4-byte. See http://www.proxmark.org/forum/viewtopic.php?id=1529 and http://www.proxmark.org/forum/viewtopic.php?id=1649&p=3 for some more background and discussion 2014-01-31 21:17:34 +00:00
dn337t@gmail.com a00411152f use CLOCKS_PER_SEC instead of platform-specific hardcoded value 2013-10-22 12:14:32 +00:00
roel@libnfc.org 981bd4292e integrated MIFARE ultralight features, contributed by 'midnitesnake' 2013-10-11 08:43:23 +00:00
martin.holst@gmail.com 6a2c1d8e14 Minor issue, usability 2013-10-04 18:47:38 +00:00
martin.holst@gmail.com 05ed5c496a Made script-based default key check a bit more intelligent, so it works not only on 4k cards. Also added option to save data to a dump-file 2013-10-01 19:58:42 +00:00
micki.held@gmx.de 9492e0b098 Major rework of hf mf nested:
- PM: used GetCountMifare in MifareNested() for improved timing accuracy and to deliver better quality nonces
- PM: MifareNested now delivers exactly two different nonces to avoid time consuming multiple lfsr_recovery32() on client side
- Client: replaced quicksort by bucketsort in crapto1.c which is faster 
- Client: use multithreading (two parallel calls to lfsr_recovery32())
- Client: fixed a small bug in mfnested() (always showed trgkey=0)
- Client: introduced a mutex for PrintAndLog() to avoid interlaced printing
Minor rework of hf mf chk:
- Avoid time consuming off/on cycles. Send a "halt" instead.
2013-09-15 09:33:17 +00:00
micki.held@gmx.de 1c611bbd26 2013-07-08 17:56:05 +00:00
martin.holst@gmail.com e772353f72 Major changes to hf mf mifare 2013-06-26 21:13:02 +00:00
roel@libnfc.org 759c16b31f client should compile without warnings on linux, mac, windows 2013-03-14 15:03:04 +00:00
roel@libnfc.org 125a98a110 fixed stupid 64-bit formatting for x86/amd64 and unix/windows 2013-02-28 22:22:24 +00:00
roel@libnfc.org 7dd1908b24 fixed 'hf mf' command and some others 2012-12-07 22:37:22 +00:00
roel@libnfc.org 902cb3c00b major USB update 2012-12-04 23:39:18 +00:00
Merlokbr@gmail.com bfaecce6eb there was bug in hf mf mifare. and speed up this command. 2012-11-08 09:48:02 +00:00
dn337t@gmail.com e50d95165c removed dead check of uint8_t > 255 2012-08-13 19:52:22 +00:00
dn337t@gmail.com eede7162bc commented set but unread variable wantSaveToEml 2012-07-20 09:04:23 +00:00
Merlokbr@gmail.com 71d90e54cd hf mf sniff transfered parity from arm to decoding procedure 2012-07-17 15:19:15 +00:00
Merlokbr@gmail.com c948cbde8c small fix 2012-07-17 11:29:34 +00:00
Merlokbr@gmail.com e0c635d19c hf mf sniff - working with emulator files 2012-07-17 11:28:12 +00:00
Merlokbr@gmail.com 55acbb2a39 improved command hf mf sniff. Now it cant decode nested authentication and cant write emulator files 2012-07-16 14:49:51 +00:00
Merlokbr@gmail.com 39864b0bd4 "hf mf sniff" low level logics works. 2012-07-11 15:52:33 +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
douniwan5788 ac14bee321 Fixed auto nt bug 2012-07-06 13:44:37 +00:00
Merlokbr@gmail.com 545a1f385c another "magic card" backdoor - command "read block". Added several commands to manipulate card data. 2012-07-05 14:05:01 +00:00
Merlokbr@gmail.com 208a0166b9 magic Chinese card fully supported. Added commands:csetuid-set card uid and wipe it, csetblk-set 16 byte block, cload-load dump from emulator memory or emulator file 2012-07-05 10:59:15 +00:00
Merlokbr@gmail.com f774db9598 added magic card write block 2012-07-05 08:09:41 +00:00
Merlokbr@gmail.com 0675f200e6 Added work with "magic Chinese" card (card from: ouyangweidaxian@live.cn) with wipe support). Change UID and wipe only. 2012-07-05 07:31:56 +00:00
dn337t@gmail.com 836138032c use char instead of uint8_t to avoid warnings/casting 2012-06-07 09:24:49 +00:00
douniwan5788 99a71a0d01 replaced the getline which does't support by minGW on windows 2012-05-31 09:46:02 +00:00
douniwan5788 aea4d76687 Enhanced hf mf chk , add default key,support dic file and so on.
modify hf mf mifare to automatically use an invalid key'nt try again.
make some changes to support mifare classic 4k.
2012-05-30 03:45:55 +00:00
dn337t@gmail.com 31b6e9af2b Removed unused variables, added implicitly used headers 2012-05-14 14:48:23 +00:00
caioxmag 6c064e161c small updates to hf mf restore1k 2011-09-19 12:58:58 +00:00
roel@libnfc.org 0f7f9edc14 fixed iso14443b snoop, plus compiling issue of redefined parameter, please take care about this next time before a commit 2011-09-06 10:28:22 +00:00
caioxmag 9d71094388 updates to function hf mf retore1k 2011-09-06 09:16:32 +00:00
caioxmag 3d77fdfab5 Dump1k now writes keys to dumpdata.bin even when they are masked with zeroes in a read command 2011-09-02 08:33:45 +00:00
caioxmag 2115626711 Fixes to Mifare nested function... 2011-09-01 08:13:18 +00:00
caioxmag 5ff9150e3b Corrected some errors from r487, WHICH I FORGOT TO COMMENT.
Log for r487 should have been:
"added hf mf dump1k and hf mf restore1k functions"
"modified hf mf nested function to add option to create dumpkeys.bin file from its output"
2011-08-31 07:09:50 +00:00
caioxmag 26fdb4ab49 2011-08-30 09:52:18 +00:00
Merlokbr@gmail.com 0014cb46da 1. emulator works. tested on ARC1302, NXP pegoda, touchtag, my firm's readers.
2. added increment, decrement, restore, transfer commands
3. fixed several small bugs and small code cleaning
4. there is strange behavier in the emulator: for 7BUID is seems that there is must be a feature that cam make work card withouth 2nd anticollision loop. NXP reader authenticates, but cant read card contents. all the rest readers works, BUT.... my 7BUID mifare card dont work AT ALL  .... I dont know what i should do )
2011-06-25 13:03:01 +00:00
Merlokbr@gmail.com 51969283ec 1. fixed (it seems) readline behavior. Now there is no proxmark3 prompts on the data.
2. emulator goes into beta stage.
works:
- work with 4BUID and 7BUID dumps
- load/save/grab dumps
- emulate select
- emulate authentication (with nested)
- emulate read/write blocks
- emulate NACK-ACK ping-pong
2011-06-23 16:49:39 +00:00
Merlokbr@gmail.com ab8b654efa added functionality: dump card memory, save|load card memory.
50% fixed problem with readline lib
2011-06-22 01:25:16 +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 9ca155ba44 0. its alpha version!!!
1. commands changed from "hf 14a" to "hf mf" 
2. some code cleaning and small bugfixes
3. alpha version hf mf sim
4. added internal function GetTickCount() for time measuring
2011-06-10 13:35:10 +00:00