}
int CmdHIDSim(const char *Cmd)
+{
+ unsigned int hi = 0, lo = 0;
+ int n = 0, i = 0;
+
+ while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
+ hi = (hi << 4) | (lo >> 28);
+ lo = (lo << 4) | (n & 0xf);
+ }
+
+ PrintAndLog("Emulating tag with ID %x%16x", hi, lo);
+
+ UsbCommand c = {CMD_HID_SIM_TAG, {hi, lo, 0}};
+ SendCommand(&c);
+ return 0;
+}
+
+int CmdHIDClone(const char *Cmd)
{
unsigned int hi2 = 0, hi = 0, lo = 0;
int n = 0, i = 0;
UsbCommand c;
if (strchr(Cmd,'l') != 0) {
- while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
+ while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
hi2 = (hi2 << 4) | (hi >> 28);
hi = (hi << 4) | (lo >> 28);
lo = (lo << 4) | (n & 0xf);
}
-
+
PrintAndLog("Cloning tag with long ID %x%08x%08x", hi2, hi, lo);
-
+
c.d.asBytes[0] = 1;
- }
- else {
- while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
+ }
+ else {
+ while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
hi = (hi << 4) | (lo >> 28);
lo = (lo << 4) | (n & 0xf);
}
-
+
PrintAndLog("Cloning tag with ID %x%08x", hi, lo);
-
+
hi2 = 0;
c.d.asBytes[0] = 0;
}
-
- c.cmd = CMD_HID_SIM_TAG;
+
+ c.cmd = CMD_HID_CLONE_TAG;
c.arg[0] = hi2;
c.arg[1] = hi;
c.arg[2] = lo;
-
-// UsbCommand c = {CMD_HID_SIM_TAG, {hi, lo, 0}};
- SendCommand(&c);
- return 0;
-}
-
-int CmdHIDClone(const char *Cmd)
-{
- unsigned int hi = 0, lo = 0;
- int n = 0, i = 0;
-
- while (sscanf(&Cmd[i++], "%1x", &n ) == 1) {
- hi = (hi << 4) | (lo >> 28);
- lo = (lo << 4) | (n & 0xf);
- }
-
- PrintAndLog("Cloning tag with ID %x%08x", hi, lo);
- UsbCommand c = {CMD_HID_CLONE_TAG, {hi, lo}};
SendCommand(&c);
return 0;
}