Brute forcing "+pinBITS+"bit Wiegand Format PIN from "+(server.arg("bruteSTART"))+" to "+(server.arg("bruteEND"))+" with a "+pinHTMLDELAY+"ms delay between \"keypresses\" This may take a while, your device will be busy until the sequence has been completely transmitted! Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. You can view if the brute force attempt has completed by returning to the Experimental TX page and checking the status located under \"Bruteforce PIN\"
Brute forcing "+pinBITS+"bit Wiegand Format PIN from "+(server.arg("bruteSTART"))+" to "+(server.arg("bruteEND"))+" with a "+pinHTMLDELAY+"ms delay between \"keypresses\" This may take a while, your device will be busy until the sequence has been completely transmitted! Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. You can view if the brute force attempt has completed by returning to the Experimental TX page and checking the status located under \"Transmit Status\"
");
delay(50);
}
@@ -1489,41 +1490,103 @@ void setup() {
}
if (server.arg("fuzzType")=="simultaneous") {
+
+ int fuzzTimes=0;
+ dos=0;
+ if ((server.arg("fuzzTimes"))=="dos") {
+ dos=1;
+ server.send(200, "text/html", String()+
+ "<- BACK TO INDEX
"
+ "Denial of Service mode active. Transmitting D0 and D1 bits simultaneously until stopped."
+ " This may take a while, your device will be busy until the sequence has been completely transmitted!"
+ " Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. "
+ "You can view if the fuzzing attempt has completed by returning to the Experimental TX page and checking the status located under \"Transmit Status\"
"
+ "");
+ delay(50);
+ }
+ else {
+ fuzzTimes=server.arg("fuzzTimes").toInt();
+ server.send(200, "text/html", String()+
+ "<- BACK TO INDEX
"
+ "Transmitting D0 and D1 bits simultaneously "+fuzzTimes+" times."
+ " This may take a while, your device will be busy until the sequence has been completely transmitted!"
+ " Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. "
+ "You can view if the fuzzing attempt has completed by returning to the Experimental TX page and checking the status located under \"Transmit Status\"
"
+ "");
+ delay(50);
+ }
+
wg.pause();
digitalWrite(DATA0, HIGH);
pinMode(DATA0,OUTPUT);
digitalWrite(DATA1, HIGH);
pinMode(DATA1,OUTPUT);
- int fuzzTimes=server.arg("fuzzTimes").toInt();
+ TXstatus=1;
- for (int i=0; i<=fuzzTimes; i++) {
+ for (int i=0; i<=fuzzTimes || dos==1; i++) {
digitalWrite(DATA0, LOW);
digitalWrite(DATA1, LOW);
delayMicroseconds(txdelayus);
digitalWrite(DATA0, HIGH);
digitalWrite(DATA1, HIGH);
delay(txdelayms);
+ server.handleClient();
+ if (TXstatus!=1) {
+ break;
+ }
}
pinMode(DATA0, INPUT);
pinMode(DATA1, INPUT);
wg.clear();
+ TXstatus=0;
+ dos=0;
- experimentalStatus=String()+"Transmitting D0 and D1 bits simultaneously "+fuzzTimes+" times.";
+ //experimentalStatus=String()+"Transmitting D0 and D1 bits simultaneously "+fuzzTimes+" times.";
}
if (server.arg("fuzzType")=="alternating") {
+
+ int fuzzTimes=0;
+ dos=0;
+ if ((server.arg("fuzzTimes"))=="dos") {
+ dos=1;
+ server.send(200, "text/html", String()+
+ "<- BACK TO INDEX
"
+ "Denial of Service mode active. Transmitting bits alternating between D0 and D1 until stopped."
+ " This may take a while, your device will be busy until the sequence has been completely transmitted!"
+ " Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. "
+ "You can view if the fuzzing attempt has completed by returning to the Experimental TX page and checking the status located under \"Transmit Status\"
"
+ "");
+ delay(50);
+ }
+ else {
+ fuzzTimes=server.arg("fuzzTimes").toInt();
+ server.send(200, "text/html", String()+
+ "<- BACK TO INDEX
"
+ "Transmitting "+fuzzTimes+" bits alternating between D0 and D1."
+ " This may take a while, your device will be busy until the sequence has been completely transmitted!"
+ " Please \"STOP CURRENT TRANSMISSION\" before attempting to use your device or simply wait for the transmission to finish. "
+ "You can view if the fuzzing attempt has completed by returning to the Experimental TX page and checking the status located under \"Transmit Status\"
"
""
- "Warning: "
- "This mode is highly experimental, use at your own risk! "
- "This device operates at 3v3 and may not reliably trigger 5v devices. "
- "Recieving Wiegand data during a transmission may damage your device. "
- "Do not scan any cards during this time, use at your own risk! "
- "Note: Timings for Wiegand data pulse width and data interval may be changed on the settings page. "
+ ""
+ "Warning: This mode is highly experimental, use at your own risk! "
+ "Note: Timings for the Wiegand Data Pulse Width and Wiegand Data Interval may be changed on the settings page."
+ ""
+ " "
""
" "
" "
" "
- "Brute force status: ")+activeTX+F(" "
""
" "
"Fuzzing:
"
""
+ " "
+ ""
+ " "
"Push Button for Door Open: "
"Connect \"Push to Open\" wire from the reader to the RX pin(GPIO3) on the programming header on ESP-RFID-Tool. "
- "Warning! Selecting the wrong trigger signal type may cause damage to the connected reader.
"
+ "Warning! Selecting the wrong trigger signal type may cause damage to the connected hardware.