]>
git.zerfleddert.de Git - proxmark3-svn/blob - client/cmdlfhid.c
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
4 // This code is licensed to you under the terms of the GNU GPL, version 2 or,
5 // at your option, any later version. See the LICENSE.txt file for the text of
7 //-----------------------------------------------------------------------------
8 // Low frequency HID commands
9 //-----------------------------------------------------------------------------
13 //#include "proxusb.h"
14 #include "proxmark3.h"
17 #include "cmdparser.h"
20 static int CmdHelp(const char *Cmd
);
22 int CmdHIDDemod(const char *Cmd
)
24 if (GraphTraceLen
< 4800) {
25 PrintAndLog("too short; need at least 4800 samples");
30 for (int i
= 0; i
< GraphTraceLen
; ++i
) {
31 if (GraphBuffer
[i
] < 0) {
41 int CmdHIDDemodFSK(const char *Cmd
)
43 UsbCommand c
={CMD_HID_DEMOD_FSK
};
48 int CmdHIDSim(const char *Cmd
)
50 unsigned int hi2
= 0, hi
= 0, lo
= 0;
54 if (strchr(Cmd
,'l') != 0) {
55 while (sscanf(&Cmd
[i
++], "%1x", &n
) == 1) {
56 hi2
= (hi2
<< 4) | (hi
>> 28);
57 hi
= (hi
<< 4) | (lo
>> 28);
58 lo
= (lo
<< 4) | (n
& 0xf);
61 PrintAndLog("Cloning tag with long ID %x%08x%08x", hi2
, hi
, lo
);
66 while (sscanf(&Cmd
[i
++], "%1x", &n
) == 1) {
67 hi
= (hi
<< 4) | (lo
>> 28);
68 lo
= (lo
<< 4) | (n
& 0xf);
71 PrintAndLog("Cloning tag with ID %x%08x", hi
, lo
);
77 c
.cmd
= CMD_HID_CLONE_TAG
;
82 // UsbCommand c = {CMD_HID_SIM_TAG, {hi, lo, 0}};
87 int CmdHIDClone(const char *Cmd
)
89 unsigned int hi
= 0, lo
= 0;
92 while (sscanf(&Cmd
[i
++], "%1x", &n
) == 1) {
93 hi
= (hi
<< 4) | (lo
>> 28);
94 lo
= (lo
<< 4) | (n
& 0xf);
97 PrintAndLog("Cloning tag with ID %x%08x", hi
, lo
);
99 UsbCommand c
= {CMD_HID_CLONE_TAG
, {hi
, lo
}};
104 static command_t CommandTable
[] =
106 {"help", CmdHelp
, 1, "This help"},
107 {"demod", CmdHIDDemod
, 1, "Demodulate HID Prox Card II (not optimal)"},
108 {"fskdemod", CmdHIDDemodFSK
, 1, "Realtime HID FSK demodulator"},
109 {"sim", CmdHIDSim
, 1, "<ID> -- HID tag simulator"},
110 {"clone", CmdHIDClone
, 1, "<ID> ['l'] -- Clone HID to T55x7 (tag must be in antenna)(option 'l' for 84bit ID)"},
111 {NULL
, NULL
, 0, NULL
}
114 int CmdLFHID(const char *Cmd
)
116 CmdsParse(CommandTable
, Cmd
);
120 int CmdHelp(const char *Cmd
)
122 CmdsHelp(CommandTable
);