X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/cee5a30d53c7aff4c4830eae53eaf58414ecf806..69f8a37be03089ccf5e579fb94a7cc02edd779fc:/client/cmdhficlass.c diff --git a/client/cmdhficlass.c b/client/cmdhficlass.c index 03241467..6064b4e7 100644 --- a/client/cmdhficlass.c +++ b/client/cmdhficlass.c @@ -19,6 +19,7 @@ #include "cmdparser.h" #include "cmdhficlass.h" #include "common.h" +#include "util.h" static int CmdHelp(const char *Cmd); @@ -170,11 +171,74 @@ int CmdHFiClassSnoop(const char *Cmd) return 0; } +int CmdHFiClassSim(const char *Cmd) +{ + uint8_t simType = 0; + uint8_t CSN[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + + if (strlen(Cmd)<2) { + PrintAndLog("Usage: hf iclass sim "); + PrintAndLog(" sample: hf iclass sim 0 031FEC8AF7FF12E0"); + return 0; + } + + simType = param_get8(Cmd, 0); + if (param_gethex(Cmd, 1, CSN, 16)) { + PrintAndLog("A CSN should consist of 16 HEX symbols"); + return 1; + } + PrintAndLog("--simtype:%02x csn:%s", simType, sprint_hex(CSN, 8)); + + UsbCommand c = {CMD_SIMULATE_TAG_ICLASS, {simType}}; + memcpy(c.d.asBytes, CSN, 8); + SendCommand(&c); + + /*UsbCommand * resp = WaitForResponseTimeout(CMD_ACK, 1500); + if (resp != NULL) { + uint8_t isOK = resp->arg[0] & 0xff; + PrintAndLog("isOk:%02x", isOK); + } else { + PrintAndLog("Command execute timeout"); + }*/ + + return 0; +} + +int CmdHFiClassReader(const char *Cmd) +{ + uint8_t readerType = 0; + + if (strlen(Cmd)<1) { + PrintAndLog("Usage: hf iclass reader "); + PrintAndLog(" sample: hf iclass reader 0"); + return 0; + } + + readerType = param_get8(Cmd, 0); + PrintAndLog("--readertype:%02x", readerType); + + UsbCommand c = {CMD_READER_ICLASS, {readerType}}; + //memcpy(c.d.asBytes, CSN, 8); + SendCommand(&c); + + /*UsbCommand * resp = WaitForResponseTimeout(CMD_ACK, 1500); + if (resp != NULL) { + uint8_t isOK = resp->arg[0] & 0xff; + PrintAndLog("isOk:%02x", isOK); + } else { + PrintAndLog("Command execute timeout"); + }*/ + + return 0; +} + static command_t CommandTable[] = { {"help", CmdHelp, 1, "This help"}, {"list", CmdHFiClassList, 0, "List iClass history"}, {"snoop", CmdHFiClassSnoop, 0, "Eavesdrop iClass communication"}, + {"sim", CmdHFiClassSim, 0, "Simulate iClass tag"}, + {"reader", CmdHFiClassReader, 0, "Read an iClass tag"}, {NULL, NULL, 0, NULL} };