int CmdIndalaDemod(const char *Cmd)
{
+ // PSK1, Bitrate 32,
+
// Usage: recover 64bit UID by default, specify "224" as arg to recover a 224bit UID
-
int state = -1;
int count = 0;
int i, j;
count = 0;
}
}
+ if ( rawbit<1 ) return 0;
- if ( rawbit>0 ){
+ if (g_debugMode) {
PrintAndLog("Recovered %d raw bits, expected: %d", rawbit, GraphTraceLen/32);
PrintAndLog("worst metric (0=best..7=worst): %d at pos %d", worst, worstPos);
- } else {
- return 0;
}
// Finding the start of a UID
}
if (start == rawbit - uidlen + 1) {
- PrintAndLog("nothing to wait for");
+ if (g_debugMode) PrintAndLog("nothing to wait for");
return 0;
}
// Inverting signal if needed
if (first == 1) {
- for (i = start; i < rawbit; i++) {
+ for (i = start; i < rawbit; i++)
rawbits[i] = !rawbits[i];
- }
}
// Dumping UID
times += 1;
}
- PrintAndLog("Occurrences: %d (expected %d)", times, (rawbit - start) / uidlen);
+ if (g_debugMode) PrintAndLog("Occurrences: %d (expected %d)", times, (rawbit - start) / uidlen);
// Remodulating for tag cloning
// HACK: 2015-01-04 this will have an impact on our new way of seening lf commands (demod)
for (i = 0; i < GraphTraceLen; i += USB_CMD_DATA_SIZE) {
UsbCommand c = {CMD_DOWNLOADED_SIM_SAMPLES_125K, {i, 0, 0}};
- for (j = 0; j < USB_CMD_DATA_SIZE; j++) {
+ for (j = 0; j < USB_CMD_DATA_SIZE; j++)
c.d.asBytes[j] = GraphBuffer[i+j];
- }
+
clearCommandBuffer();
SendCommand(&c);
WaitForResponse(CMD_ACK, NULL);
printf(".");
}
- PrintAndLog("Starting to simulate");
+ PrintAndLog("Simulating");
UsbCommand c = {CMD_SIMULATE_TAG_125K, {GraphTraceLen, gap, 0}};
clearCommandBuffer();
if (!offline && (cmdp != '1')){
CmdLFRead("s");
- getSamples("30000",false);
+ getSamples("30000", TRUE);
} else if (GraphTraceLen < 1000) {
PrintAndLog("Data in Graphbuffer was too small.");
return 0;
PrintAndLog("False Positives ARE possible\n");
PrintAndLog("\nChecking for known tags:\n");
-
-
ans=CmdFSKdemodIO("");
if (ans>0) {
PrintAndLog("\nValid IO Prox ID Found!");
PrintAndLog("\nValid NexWatch ID Found!");
return 1;
}
+ ans=CmdPSKIdteck("");
+ if (ans>0) {
+ PrintAndLog("\nValid Idteck ID Found!");
+ return 1;
+ }
ans=CmdJablotronDemod("");
if (ans>0) {
PrintAndLog("\nValid Jablotron ID Found!");
PrintAndLog("\nValid NEDAP ID Found!");
return 1;
}
+ ans=CmdVisa2kDemod("");
+ if (ans>0) {
+ PrintAndLog("\nValid Visa2000 ID Found!");
+ return 1;
+ }
+ ans=CmdNoralsyDemod("");
+ if (ans>0) {
+ PrintAndLog("\nValid Noralsy ID Found!");
+ return 1;
+ }
+ ans=CmdPrescoDemod("");
+ if (ans>0) {
+ PrintAndLog("\nValid Presco ID Found!");
+ return 1;
+ }
// TIdemod?
+ if (!offline && (cmdp != '1')){
+ ans=CmdLFHitagReader("26");
+ if (ans==0) {
+ return 1;
+ }
+ }
PrintAndLog("\nNo Known Tags Found!\n");
if (testRaw=='u' || testRaw=='U'){
static command_t CommandTable[] =
{
{"help", CmdHelp, 1, "This help"},
+ {"animal", CmdLFFdx, 1, "{ Animal RFIDs... }"},
{"awid", CmdLFAWID, 1, "{ AWID RFIDs... }"},
{"em4x", CmdLFEM4X, 1, "{ EM4X RFIDs... }"},
{"guard", CmdLFGuard, 1, "{ Guardall RFIDs... }"},
{"hid", CmdLFHID, 1, "{ HID RFIDs... }"},
{"hitag", CmdLFHitag, 1, "{ HITAG RFIDs... }"},
+// {"indala", CmdLFIndala, 1, "{ Indala RFIDs... }"},
{"io", CmdLFIO, 1, "{ IOPROX RFIDs... }"},
- {"jablotron", CmdLFJablotron, 1, "{ JABLOTRON RFIDs... }"},
- {"nedap", CmdLFNedap, 1, "{ NEDAP RFIDs... }"},
+ {"jablotron", CmdLFJablotron, 1, "{ Jablotron RFIDs... }"},
+ {"nedap", CmdLFNedap, 1, "{ Nedap RFIDs... }"},
+ {"noralsy", CmdLFNoralsy, 1, "{ Noralsy RFIDs... }"},
{"pcf7931", CmdLFPCF7931, 1, "{ PCF7931 RFIDs... }"},
{"presco", CmdLFPresco, 1, "{ Presco RFIDs... }"},
{"pyramid", CmdLFPyramid, 1, "{ Farpointe/Pyramid RFIDs... }"},
{"ti", CmdLFTI, 1, "{ TI RFIDs... }"},
{"t55xx", CmdLFT55XX, 1, "{ T55xx RFIDs... }"},
{"viking", CmdLFViking, 1, "{ Viking RFIDs... }"},
+ {"visa2000", CmdLFVisa2k, 1, "{ Visa2000 RFIDs... }"},
{"config", CmdLFSetConfig, 0, "Set config for LF sampling, bit/sample, decimation, frequency"},
{"cmdread", CmdLFCommandRead, 0, "<off period> <'0' period> <'1' period> <command> ['h' 134] \n\t\t-- Modulate LF reader field to send command before read (all periods in microseconds)"},
{"flexdemod", CmdFlexdemod, 1, "Demodulate samples for FlexPass"},