Browse files

first commit

  • Loading branch information...
Adam Laurie
Adam Laurie committed Oct 31, 2011
0 parents commit 447c38477e1a178823bc6ddbdbe560ae582bb622
Showing with 9,635 additions and 0 deletions.
  1. +229 −0 CHANGES
  2. +45 −0 Makefile
  3. +39 −0 README.TXT
  4. +2,226 −0
  5. +7 −0 RFIDIOtconfig.opts
  6. +185 −0
  7. +77 −0
  8. +53 −0
  9. +92 −0
  10. +12 −0 delete-smartcafe.gpsh
  11. +35 −0
  12. +42 −0
  13. +175 −0
  14. +64 −0
  15. +79 −0
  16. +88 −0
  17. +68 −0
  18. +86 −0
  19. +556 −0
  20. +81 −0
  21. +111 −0 java/Makefile
  22. +16 −0 java/jcop_delete_atr_hist.gpsh
  23. BIN java/jcop_set_atr_hist.cap
  24. +17 −0 java/jcop_set_atr_hist.gpsh
  25. +30 −0 java/src/jcop_set_atr_hist/
  26. +68 −0 java/src/jcop_set_atr_hist/
  27. BIN jcop_mifare_access.cap
  28. +20 −0 jcop_mifare_access.gpsh
  29. +181 −0
  30. +128 −0
  31. +490 −0
  32. +50 −0
  33. +49 −0
  34. BIN mifare.pdf
  35. +127 −0
  36. +1,580 −0
  37. +57 −0
  38. +140 −0
  39. +171 −0
  40. +412 −0
  41. +269 −0
  42. +87 −0
  43. +174 −0
  44. +104 −0
  45. +279 −0
  46. +140 −0
  47. +52 −0
  48. +45 −0
  49. +3 −0
  50. +4 −0
  51. +133 −0
  52. +152 −0
  53. +14 −0 upload2cosmo.gpsh
  54. +15 −0 upload2jcop.gpsh
  55. +15 −0 upload2nokia.gpsh
  56. +13 −0 upload2smartcafe.gpsh
  57. +178 −0
  58. +72 −0
@@ -0,0 +1,229 @@
+v0.1: 2006-04-28
+First release.
+v0.1a: 2006-05-16
+Add 'Value' commands:
+ readvalueblock
+ writevalueblock
+ MIFAREvb (set variables from value block)
+v0.1b: 2006-05-29
+Make readblock non MIFARE specific
+Add readMIFAREblock command
+Add reset() call to all test programs (to switch off constant read)
+Add readlfx program to support ACG LFX reader
+v0.1c: 2006-05-30
+Add LFXTags hash (125 kHz tag types)
+Add (command line tag identifier)
+v0.d: 2006-06-01
+Add access control block user data byte to MIFARE structure
+Add LFX tag type detection to
+v0.e: 2006-09-29
+Add ICAO 9303 structures for Machine Readable Passports
+New test program: for ICAO 9303
+Move reader config to
+Add EM4x05 ID decode
+v0.f: 2006-10-24
+Emergency release - 0.e lost in webserver disk crash
+Contains work in progress!!!
+Rename EM4x05 decode to more generic FDX-B
+Add EM4x02 'Unique' ID decode/encode
+Add passport file reads and image display
+v0.g: 2006-10-27
+Tidy up!
+Update all version numbers
+Add Hitag2 reading (readlfx)
+Add fdx-b cloning to Q5 / Hitag2 (fdxbnum)
+Add q5unfuck (does what it say on the tin!)
+mrpkey - display all data in GUI
+fdxbnum - add ability to write raw 16 digit HEX (to clone non-compliant tags)
+v0.i: 2006-12-10
+Fix login error for sector 0
+Fix iso_7816_fail to allow non-passports to fail properly
+Add support for Frosch Hitag reader/writer
+Start to rationalise routines to always return True or False
+fdxbnum - add Frosch support for Hitag2
+fdxbnum - wait for blank tag in WRITE mode
+was release j - forgot to update version number!
+add facility to set Q5 native ID in ''
+fix 'EM4x02' ID mode in '' (was reversed)
+allow forcing of tag type in ''
+add '' - read data blocks with no login
+add '' - copy data blocks to matching blank
+add '' - determine HF tag types
+add CHECK for Machine Readable Document in ''
+fix bruteforce for non complete document numbers in ''
+fix bruteforce length of field in ''
+add offsets for usa & netherlands to ''
+add global overrides for line/speed etc. in [AL & Philippe Biondi]
+add CLONE mode to ''
+make '' more intelligent about reading passport contents:
+ read all data groups
+ extract image from CBEFF block in EF.DG2
+ extract public key certificate from EF.SOD (requires openssl installation)
+ add asn.1 field length encoding rules
+add '' tool for brute force finding of certificates in EF_SOD.BIN (requires openssl installation)
+add PCSC support ( and [hints/tips/inspiration Henryk Plötz]
+fix and to check for presence of card
+fix 'waitfor/do nothing' in [Philippe Biondi]
+cleaner check digit calc in [Philippe Biondi]
+change -r to -R (reader type) to allow -r to be used for PCSC compatibility
+add speed/framesize reporting to
+increase MAX read chunk size to 118 in (needs fixing to go up to device supported size ISO_FRAMESIZE)
+fix bit allignment issue in FDXBID encoding/decoding [Matsche]
+add global uid variable
+add locked block reporting to readmifare
+fix asn1 field length calculation in
+add human readable config block for Q5 in
+add Manchester encoding to and
+add serial port opening and baud rate checking for ACG / Frosch in
+add Q5 emulation detection in
+add SCM Microsystems reader support
+add -d (debug) option
+switch to T=1 protocol for PC/SC
+add auto-detect of PC/SC reader types
+fix minor reporting issues in
+fix setting of tag type 'ALL' on ACG readers (different for LF or HF)
+added a bunch of PCSC ATR card types
+add reading of previously stored files to
+fix CBEFF processing in
+fix bruteforcing of first character in [Petter Bjorklund]
+add ID Card processing to [vonJeek <>]
+fix -L issue in RFIDIOtconfig (readernum must be 0)
+add human readable dump to (ReadablePrint() in RFIDIOt)
+fix logic in tag selection in (would not use hitag2)
+add hitag2 login (password mode) to
+add hitag2bruteforce program
+start migrating definitions into smaller files to aid sharing with other apps (e.g.
+add Windows distribution [Zac Franken]
+v0.t - October 2008
+add WRITE function to for vonJeek JCOP emulator (
+add Makefile and vonJeek.gpsh for installing vonJeek epassport.cap to JCOP
+add VONJEEK declarations for vonJeek emulator to
+set mrpkey file types to binary for windows compatibility [Jeroen van Beek / vonJeek <>]
+use windows compatible command execution for external commands in mrpkey [Jeroen van Beek / vonJeek <>]
+add WRITE function to for JMRTD JCOP emulator (
+allow mrpkey to skip objects (e.g. fingerprint (EF.DG3) protected by active authentication)
+add - calculate 3DES MifarePWD for Access to Mifare memory/functions on Dual Interface JCOP cards
+ as per Philips Application Note AN02105,
+add some country codes to [Jeroen van Beek / vonJeek <>]
+add -g 'No GUI' option to
+v0.u - November 2008
+add script for testing LAHF units
+fix -R reader type override in
+add checking for global overrides in one of the following locations (in search order):
+ $(RFIDIOtconfig_opts)
+ ./RFIDIOtconfig.opts
+ /etc/RFIDIOtconfig.opts
+ options should be specified on the first line as if typed on the command line, e.g.
+ -s 9600 -l /dev/ttyUSB0
+ command line options will take precedence over this file.
+add -n (No Init) command to - allow modules to run without hardware
+add display of checksum-corrected MRZ to
+add jcop_mifare_access.cap - mifare access applet for JCOP
+add jcop_mifare_access.gpsh and target in Makefile for installation of jcop_mifare_access.cap
+add test program for JCOP mifare emulation
+add display of biometric features on FACE in
+v0.v - January 2009
+fix ATS position & length in
+add - sets ATR Historical Bytes (ATS) on JCOP cards
+add jcop_set_atr_hist.cap - java applet for setting ATR/ATS
+add JAVA source for jcop_set_atr_hist.cap
+move iso_7816 routines into RFIDIOt (from
+fix exit status of all test programs and RFIDIOt (should be True on error)
+fix ACG reset/info sequence in
+fix facial image display bug in where conversion is required [Andreas Schmidt]
+fix RANDOM_UID setting in jcop_mifare_access.cap/ (you will need a secret key from NXP)
+add - JCOP toolkit (work in progress) changes:
+ fix binary mode when reading files under Windows (for WRITE to card)
+ fix computation of composite checksum digit
+ support reading non-BAC passports
+ specify a dummy MRZ or simply the keyword 'PLAIN' for Plain Access if there is no Basic Access Control
+ support writing non-BAC passports (only for vonJeek cards)
+ new commands SETBAC and UNSETBAC to toggle the BAC mode on vonJeek cards
+ extract & display signature image stored in DG7, if any
+ fix bug in Jpeg 2000 handling & add Jpeg 2000 support for DG7
+ better error handling if PCSC daemon is down or no reader is found
+ support clone mode by specifying PLAIN/MRZ and WRITE: first read then write
+ support shortened MRZ (as in mrp0wn)
+ strip AA & EAC by default when writing, set STRIP_INDEX=False to disable stripping
+change Makefile to match vonJeek gpshell files (upload2jcop.gpsh & upload2nokia.gpsh)
+add support for ACS readers and Alcatel-Lucent Tikitag/Touchatag [props to pytey for]
+rationalise PCSC subtypes
+add for reading HID ProxCards (only tested with OmniKey 5325)
+add - definitions for nxp pn532 chip
+add - run nxp pn532 in emulator mode
+add - relay traffic between reader and emulator, and log APDU and responses
+fix support for ACS PCSC-2 devices (e.g. ACR 122U)
+add - test write LF devices
+fix 3DES key setting for ID cards in
+allow missing files to be skipped if running in files mode in
+add - search for valid final byte of rolling LRC [input from Henryk Plötz]
+add - program Q5 with FDI Matalec 'TRANSIT 500' or 'TRANSIT 999' standard UID [input from Proxmark Community]
+make slightly easier to add new document types to
+add COPY and RESET functions to
+add automatic keytype and default key checking to
+fix MIFARE KeyA and KeyB handling on all supported readers
+add - read Mifare UltraLight tags [Keith Howell]
+add support for libnfc devices [Nick von Dadelszen] (work in progress)
+allow global overrides to be specified in ENV variable, e.g.
+ export RFIDIOtconfig="-s 9600 -l /dev/ttyUSB1 -R RFIDIOt.rfidiot.READER_ACG"
+use latest (ver 0.2) for libnfc devices
+add device listing to libnfc support (-N)
+add more keys to [nethemba]
+strip leading character from ACG LFX UID
+add cosmo card (alternative to jcop) upload files for gpshell
+fix init for
+make sure all programs exit with status (also removes annoying PCSC error on close)
+wait for passport in [Adam Urban]
+add lifecycle data to
+fix reading unknown block size in readblock()
+detect more ACS readers [Keith Howell]
@@ -0,0 +1,45 @@
+# Makefile for uploading vonJeek epassport emulator and Mifare acccess applet
+# gpshell can be found here:
+# blank JCOP cards can be got here:
+# (note vonJeek applet requires 72K card)
+# This makefile by Adam Laurie, 2008
+# GPShell...
+GPSHELL= "gpshell"
+# install passport applet
+ # first clean the script of nasty windows <CR>s
+# install passport applet to Nokia
+# phone must have been unlocked with the unlock midlet:
+# Nokia NFC Unlock Service MIDlet -
+# install mifare access applet
+# install ATR History applet
+# delete ATR History applet
@@ -0,0 +1,39 @@
+/* - RFID IO tools for python
+ *
+ * Adam Laurie <>
+ *
+ *
+ * This code is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This code is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * GNU General Public License for more details.
+ */
+Copyright (c) 2006-2011 Adam Laurie <>
+q: What is RFIDIOt?
+a: A collection of tools and libraries for exploring RFID technology, written
+in python.
+q: Why RFIDIOt?
+a: I like silly puns. Also, I'm coming at this from an idiot's point of view:
+I know nothing about RFID tags, and even less about python. As such, I felt a
+complete idiot when I started. :)
+q: How can I contribute?
+a: Send me patches, info, new tools, coffee, money, drugs and/or loose women.
+q: What hardware is supported?
+a: So far this works with the ACG serial readers. I use the CF Card model,
+but it should also work with the USB version by changing the serial port to
+/dev/ttyUSB0. You can find more details here:
+q: So what exactly is here?
+a: Please see
Oops, something went wrong.

0 comments on commit 447c384

Please sign in to comment.