diff --git a/COMPILING.txt b/COMPILING.txt index 536aa229..c894f0ff 100644 --- a/COMPILING.txt +++ b/COMPILING.txt @@ -94,10 +94,10 @@ http://sourceforge.net/projects/devkitpro/files/devkitARM Select the one you need (32bit or 64bit) and unpack to a convinient place, eg $HOME/proxmark3/. It will create a devkitARM/ subdirectory. -Of course, you will need a general compiling environment on your computer for +You will also need a general compiling environment on your computer for the client and the libusb headers. In most distributions you will get all you need with the lsb-package (Linux Standard Base). In debian/ubuntu you simply -call `aptitude install lsb libusb-dev`. +call `aptitude install lsb libusb-dev libreadline-dev libreadline6`. For the graphical plot view, you might need the qtlibs (debian/ubuntu: libqt4-dev), too. diff --git a/client/cmdhf15.c b/client/cmdhf15.c index 298e47e2..a13ac4d0 100644 --- a/client/cmdhf15.c +++ b/client/cmdhf15.c @@ -1,7 +1,6 @@ //----------------------------------------------------------------------------- // Copyright (C) 2010 iZsh -// Modified 2010 by -// Modified 2010, 2011 by +// Modified 2010-2012 by // Modified 2012 by // // This code is licensed to you under the terms of the GNU GPL, version 2 or, @@ -56,6 +55,7 @@ typedef struct { const productName uidmapping[] = { + // UID, #significant Bits, "Vendor(+Product)" { 0xE001000000000000LL, 16, "Motorola" }, { 0xE002000000000000LL, 16, "ST Microelectronics" }, { 0xE003000000000000LL, 16, "Hitachi" }, @@ -67,6 +67,7 @@ const productName uidmapping[] = { { 0xE007000000000000LL, 16, "Texas Instrument; " }, { 0xE007000000000000LL, 20, "Texas Instrument; Tag-it HF-I Plus Inlay; 64x32bit" }, { 0xE007100000000000LL, 20, "Texas Instrument; Tag-it HF-I Plus Chip; 64x32bit" }, + { 0xE007800000000000LL, 23, "Texas Instrument; Tag-it HF-I Plus (RF-HDT-DVBB tag or Third Party Products)" }, { 0xE007C00000000000LL, 23, "Texas Instrument; Tag-it HF-I Standard; 8x32bit" }, { 0xE007C40000000000LL, 23, "Texas Instrument; Tag-it HF-I Pro; 8x23bit; password" }, { 0xE008000000000000LL, 16, "Fujitsu" }, @@ -80,8 +81,10 @@ const productName uidmapping[] = { { 0xE010000000000000LL, 16, "LG-Semiconductors" }, { 0xE012000000000000LL, 16, "HID Corporation" }, { 0xE016000000000000LL, 16, "EM-Marin SA (Skidata)" }, - { 0xE016040000000000LL, 24, "EM-Marin SA (Skidata Keycard-eco); no memory" }, + { 0xE016040000000000LL, 24, "EM-Marin SA (Skidata Keycard-eco); EM4034? no 'read', just 'readmulti'" }, + { 0xE0160c0000000000LL, 24, "EM-Marin SA; EM4035?" }, { 0xE016100000000000LL, 24, "EM-Marin SA (Skidata); EM4135; 36x64bit start page 13" }, + { 0xE016940000000000LL, 24, "EM-Marin SA (Skidata); 51x64bit" }, { 0,0,"no tag-info available" } // must be the last entry }; @@ -534,6 +537,11 @@ int CmdHF15CmdRaw (const char *cmd) { } +/** + * parses common HF 15 CMD parameters and prepares some data structures + * Parameters: + * **cmd command line + */ int prepareHF15Cmd(char **cmd, UsbCommand *c, uint8_t iso15cmd[], int iso15cmdlen) { int temp; uint8_t *req=c->d.asBytes, uid[8]; @@ -622,8 +630,6 @@ int prepareHF15Cmd(char **cmd, UsbCommand *c, uint8_t iso15cmd[], int iso15cmdle return 1; } - - /** * Commandline handling: HF15 CMD SYSINFO * get system information from tag/VICC @@ -643,7 +649,7 @@ int CmdHF15CmdSysinfo(const char *Cmd) { // usage: if (strlen(cmd)<1) { - PrintAndLog("Usage: hf 15 cmd sysinfo [options] "); + PrintAndLog("Usage: hf 15 cmd sysinfo [options] "); PrintAndLog(" options:"); PrintAndLog(" -2 use slower '1 out of 256' mode"); PrintAndLog(" uid (either): "); @@ -714,7 +720,6 @@ int CmdHF15CmdSysinfo(const char *Cmd) { return 0; } - /** * Commandline handling: HF15 CMD READMULTI * Read multiple blocks at once (not all tags support this) @@ -733,7 +738,7 @@ int CmdHF15CmdReadmulti(const char *Cmd) { // usage: if (strlen(cmd)<3) { - PrintAndLog("Usage: hf 15 cmd readmulti [options] "); + PrintAndLog("Usage: hf 15 cmd readmulti [options] "); PrintAndLog(" options:"); PrintAndLog(" -2 use slower '1 out of 256' mode"); PrintAndLog(" uid (either): "); @@ -767,7 +772,7 @@ int CmdHF15CmdReadmulti(const char *Cmd) { c.arg[0]=reqlen; SendCommand(&c); - + r=WaitForResponseTimeout(CMD_ACK,1000); if (r!=NULL && r->arg[0]>2) { @@ -796,7 +801,6 @@ int CmdHF15CmdReadmulti(const char *Cmd) { return 0; } - /** * Commandline handling: HF15 CMD READ * Reads a single Block @@ -815,7 +819,7 @@ int CmdHF15CmdRead(const char *Cmd) { // usage: if (strlen(cmd)<3) { - PrintAndLog("Usage: hf 15 cmd read [options] "); + PrintAndLog("Usage: hf 15 cmd read [options] "); PrintAndLog(" options:"); PrintAndLog(" -2 use slower '1 out of 256' mode"); PrintAndLog(" uid (either): "); @@ -892,7 +896,7 @@ int CmdHF15CmdWrite(const char *Cmd) { // usage: if (strlen(cmd)<3) { - PrintAndLog("Usage: hf 15 cmd write [options] "); + PrintAndLog("Usage: hf 15 cmd write [options] "); PrintAndLog(" options:"); PrintAndLog(" -2 use slower '1 out of 256' mode"); PrintAndLog(" -o set OPTION Flag (needed for TI)"); @@ -971,7 +975,7 @@ static command_t CommandTable15Cmd[] = {"read", CmdHF15CmdRead, 0, "Read a block"}, {"write", CmdHF15CmdWrite, 0, "Write a block"}, {"readmulti",CmdHF15CmdReadmulti, 0, "Reads multiple Blocks"}, - {"sysinfo", CmdHF15CmdSysinfo, 0, "Get Card Information"}, + {"sysinfo",CmdHF15CmdSysinfo, 0, "Get Card Information"}, {"raw", CmdHF15CmdRaw, 0, "Send raw hex data to tag"}, {"debug", CmdHF15CmdDebug, 0, "Turn debugging on/off"}, {NULL, NULL, 0, NULL} diff --git a/common/iso15693tools.h b/common/iso15693tools.h index fff008ff..c831fec4 100644 --- a/common/iso15693tools.h +++ b/common/iso15693tools.h @@ -1,5 +1,5 @@ // ISO15693 commons -// Adrian Dabrowski 2010, GPLv2 +// Adrian Dabrowski 2010 and others, GPLv2 #ifndef ISO15693_H__ #define ISO15693_H__