Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.

This commit is contained in:
2019-05-30 23:41:53 +02:00
parent 2d047634f2
commit 6c84b31f2c
1480 changed files with 198581 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
<script src="js/attack.js"></script>
</head>
<body onload="loadLang()">
<nav>
<a href="scan.html" data-translate="scan">Scan</a>
<a href="ssids.html" data-translate="ssids">SSIDs</a>
<a href="attack.html" data-translate="attacks">Attacks</a>
<a href="settings.html" data-translate="settings">Settings</a>
<a class="right" href="info.html" data-translate="info">Info</a>
</nav>
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="attacks">Attacks</h1>
<p>
<span class="red" data-translate="info_span">INFO:</span><br>
<span data-translate="attack_info">
- You might lose connection when starting an attack!<br>
- You need to select a target for the deauth attack.<br>
- You need a saved SSID for the beacon and probe attack.<br>
- Click reload to refresh the packet rate.<br>
</span>
<span data-translate="info_disclaimer">In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.</span><br>
</p>
<button onclick="load()" class="right" data-translate="reload">reload</button>
<table>
<tr>
<th data-translate="attacks">Attacks</th>
<th data-translate="targets">Targets</th>
<th>Pkts/s</th>
<th data-translate="start_stop">START / STOP</th>
</tr>
<tr>
<td>Deauth</td>
<td id="deauthTargets">0</td>
<td id="deauthPkts">0/0</td>
<td><button id="deauth" onclick="start(0)" class="select" data-translate="start">START</button></td>
</tr>
<tr>
<td>Beacon</td>
<td id="beaconTargets">0</td>
<td id="beaconPkts">0/0</td>
<td><button id="beacon" onclick="start(1)" class="select" data-translate="start">START</button></td>
</tr>
<tr>
<td>Probe</td>
<td id="probeTargets">0</td>
<td id="probePkts">0/0</td>
<td><button id="probe" onclick="start(2)" class="select" data-translate="start">START</button></td>
</tr>
<tr>
<td colspan="2">All Pkts/s:</td>
<td colspan="2" id="allpkts">0</td>
</tr>
</table>
<h2>Deauth</h2>
<p data-translate="deauth_desc">
Closes the connection of WiFi devices by sending deauthentication frames to access points and client devices you selected.<br>
This is only possible because a lot of devices don't use the 802.11w-2009 standard that offers a protection against this attack.<br>
Please only select one target! When you select multiple targets that run on different channels and start the attack,
it will quickly switch between those channels and you have no chance to reconnect to the access point that hosts this web interface.
</p>
<h2>Beacon</h2>
<p data-translate="beacon_desc">
Beacon packets are used to advertise access points. By continuously sending beacon packets out, it will look like you created new WiFi networks.<br>
You can specify the network names under SSIDs.<br>
</p>
<h2>Probe</h2>
<p data-translate="probe_desc">
Probe requests are sent by client devices to ask if a known network is nearby.<br>
Use this attack to confuse WiFi trackers by asking for networks that you specified in the SSID list.<br>
It's unlikely you will see any impact by this attack with your home network.<br>
</p>
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
[[false,0,0,0],[false,0,0,0],[false,0,0,0],0]

View File

@@ -0,0 +1,52 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
</head>
<body onload="loadLang()">
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="warning">WARNING</h1>
<p class="centered" data-translate="disclaimer">
This project is a proof of concept for testing and educational purposes.<br>
Neither the ESP8266, nor its SDK was meant or build for such purposes. Bugs can occur!<br>
<br>
Use it only against your own networks and devices!<br>
<br>
It uses valid Wi-Fi frames described in the IEEE 802.11 standard and does not block or disrupt any frequencies.<br>
Please check the legal regulations in your country before using it.<br>
<br>
Please don't refer to this project as "jammer", that totally undermines the real purpose of this project!<br>
If you do, it only proves that you didn't understand anything of what this project stands for.<br>
Publishing content about this without without a proper explanation shows that you only do it for the clicks,
fame and/or money and have no respect for intellectual property, the community behind it and the fight for a better WiFi standard.<br>
<br>
For more information visit:
</p>
<p class="centered bold">
<a href="https://github.com/spacehuhn/esp8266_deauther">github.com/spacehuhn/esp8266_deauther</a><br>
<br>
<br>
<a class="button" href="scan.html" data-translate="disclaimer-button">I have read and understood the notice above</a>
</p>
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,88 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
</head>
<body onload="loadLang()">
<nav>
<a href="scan.html" data-translate="scan">Scan</a>
<a href="ssids.html" data-translate="ssids">SSIDs</a>
<a href="attack.html" data-translate="attacks">Attacks</a>
<a href="settings.html" data-translate="settings">Settings</a>
<a class="right" href="info.html" data-translate="info">Info</a>
</nav>
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="info">Info</h1>
<h2>ESP8266 Deauther</h2>
<p>
<span class="bold">Copyright (c) 2018 Stefan Kremser</span><br />
<br />
This project is licensed under the MIT License. See the <a href="LICENSE">license file</a> for details.<br />
The source code is available on <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a>.<br />
<br />
Use it only for testing or educational purposes against your own networks and devices!<br />
<br />
<span class="bold">Please don't refer to this project as "jammer", that totally undermines the real purpose of this project!</span>
</p>
<h2>Credits</h2>
<p>
A huge thanks to:<br>
<ul>
<li><a href="http://github.com/deantonious" target="_blank">@deantonious</a></li>
<li><a href="http://github.com/jLynx" target="_blank">@jLynx</a></li>
<li><a href="http://github.com/lspoplove" target="_blank">@lspoplove</a></li>
<li><a href="http://github.com/schinfo" target="_blank">@schinfo</a></li>
<li><a href="http://github.com/tobozo" target="_blank">@tobozo</a></li>
<li><a href="http://github.com/xdavidhu" target="_blank">@xdavidhu</a></li>
<li><a href="http://github.com/PwnKitteh" target="_blank">@PwnKitteh</a></li>
</ul>
for helping out with various things regarding this project and keeping it alive!<br>
<br>
I also want to thank Espressif and their community for this awesome chip and all the software and hardware projects around it and the countless tutorials you can find online!<br>
<br>
Shoutout to everyone working on the libraries used for this project:<br>
<ul>
<li><a href="https://github.com/ThingPulse/esp8266-oled-ssd1306" target="_blank">esp8266-oled-ssd1306</a></li>
<li><a href="https://github.com/bblanchon/ArduinoJson" target="_blank">ArduinoJson</a></li>
<li><a href="https://github.com/ivanseidel/LinkedList" target="_blank">LinkedList</a></li>
</ul>
<br>
Also thanks to everyone that supports this project by <a href="http://spacehuhn.de/donate" target="_blank">donating]</a>, beeing my <a href="http://patreon.com/spacehuhn" target="_blank">patron</a> or buying one of the <a href="https://www.tindie.com/stores/lspoplove" target="_blank">official Deauther boards</a> from DSTIKE.<br>
</p>
<h2>Contact</h2>
<p>
Web: <a target="_blank" href="http://spacehuhn.com/">spacehuhn.com</a><br>
GitHub: <a target="_blank" href="http://github.com/spacehuhn/">github.com/spacehuhn</a><br />
Twitter: <a target="_blank" href="http://twitter.com/spacehuhn/">@spacehuhn</a><br />
E-mail: mail@spacehuhn.com<br />
<br>
If you would like to support me with my projects, please consider becoming a patron on <a target="_blank" href="https://patreon.com/spacehuhn">patreon.com/spacehuhn</a>.<br />
<br>
Or buy the official hardware for this project from DSTIKE on <a target="_blank" href="https://www.tindie.com/stores/lspoplove/">tindie.com/stores/lspoplove</a>.
</p>
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,41 @@
var attackJSON = [[false,0,0],[false,0,0],[false,0,0]];
function draw(){
getE("deauth").innerHTML = attackJSON[0][0] ? lang("stop") : lang("start");
getE("beacon").innerHTML = attackJSON[1][0] ? lang("stop") : lang("start");
getE("probe").innerHTML = attackJSON[2][0] ? lang("stop") : lang("start");
getE("deauthTargets").innerHTML = esc(attackJSON[0][1]+"");
getE("beaconTargets").innerHTML = esc(attackJSON[1][1]+"");
getE("probeTargets").innerHTML = esc(attackJSON[2][1]+"");
getE("deauthPkts").innerHTML = esc(attackJSON[0][2] + "/" + attackJSON[0][3]);
getE("beaconPkts").innerHTML = esc(attackJSON[1][2] + "/" + attackJSON[1][3]);
getE("probePkts").innerHTML = esc(attackJSON[2][2] + "/" + attackJSON[2][3]);
getE("allpkts").innerHTML = esc(attackJSON[3]+"");
}
function start(mode){
switch(mode){
case 0:
attackJSON[0][0] = !attackJSON[0][0];
break;
case 1:
attackJSON[1][0] = !attackJSON[1][0];
break;
case 2:
attackJSON[2][0] = !attackJSON[2][0];
break;
}
getFile("run?cmd=attack"+(attackJSON[0][0] ? " -d":"")+(attackJSON[1][0] ? " -b":"")+(attackJSON[2][0] ? " -p":""),function(){
draw();
});
}
function load(){
getFile("attack.json",function(response){
attackJSON = JSON.parse(response);
draw();
});
}

View File

@@ -0,0 +1,262 @@
var nameJson = [];
var scanJson = {aps:[],stations:[]};
function drawScan(){
var html;
var selected;
var width;
var color;
var macVendor;
// Access Points
getE("apNum").innerHTML = scanJson.aps.length;
html = "<tr>"
+ "<th class='id'></th>"
+ "<th class='ssid'>SSID</th>"
+ "<th class='name'>Name</th>"
+ "<th class='ch'>Ch</th>"
+ "<th class='rssi'>RSSI</th>"
+ "<th class='enc'>Enc</th>"
+ "<th class='lock'></th>"
+ "<th class='mac'>MAC</th>"
+ "<th class='vendor'>Vendor</th>"
+ "<th class='selectColumn'></th>"
+ "<th class='remove'></th>"
+ "</tr>";
for(var i=0;i<scanJson.aps.length;i++){
selected = scanJson.aps[i][scanJson.aps[i].length-1];
width = parseInt(scanJson.aps[i][3]) + 130;
if(width < 50) color = "meter_red";
else if(width < 70) color = "meter_orange";
else color = "meter_green";
html += (selected ? "<tr class='selected'>" : "<tr>")
+ "<td class='id'>"+i+"</td>" // ID
+ "<td class='ssid'>"+esc(scanJson.aps[i][0])+"</td>" // SSID
+ "<td class='name'>"+(scanJson.aps[i][1].length > 0 ? esc(scanJson.aps[i][1]) : "<button onclick='add(0,"+i+")'>"+lang("add")+"</button>")+"</td>" // Name
+ "<td class='ch'>"+esc(scanJson.aps[i][2])+"</td>" // Ch
// RSSI
+ "<td class='rssi'><div class='meter_background'> <div class='meter_forground "+color+"' style='width: "+width+"%;'><div class='meter_value'>" + scanJson.aps[i][3] + "</div></div> </div></td>"
+ "<td class='enc'>"+esc(scanJson.aps[i][4])+"</td>" // ENC
+ "<td class='lock'>"+(scanJson.aps[i][4] == "-" ? "":"&#x1f512;")+"</td>" // Lock Emoji
+ "<td class='mac'>"+esc(scanJson.aps[i][5])+"</td>" // MAC
+ "<td class='vendor'>"+esc(scanJson.aps[i][6])+"</td>" // Vendor
// Select
+ "<td class='selectColumn'><label class='checkBoxContainer'><input type='checkbox' "+(selected ? "checked" : "")+" onclick='selectRow(0,"+i+","+(selected ? "false" : "true")+")'><span class='checkmark'></span></label></td>"
+ "<td class='remove'><button class='red' onclick='remove(0,"+i+")'>X</button></td>" // Remove
+ "</tr>";
}
getE("apTable").innerHTML = html;
// Stations
getE("stNum").innerHTML = scanJson.stations.length;
html = "<tr>"
+ "<th class='id'></th>"
+ "<th class='vendor'>Vendor</th>"
+ "<th class='mac'>MAC</th>"
+ "<th class='ch'>Ch</th>"
+ "<th class='name'>Name</th>"
+ "<th class='pkts'>Pkts</th>"
+ "<th class='ap'>AP</th>"
+ "<th class='lastseen'>Last seen</th>"
+ "<th class='selectColumn'></th>"
+ "<th class='remove'></th>"
+ "</tr>";
for(var i=0;i<scanJson.stations.length;i++){
selected = scanJson.stations[i][scanJson.stations[i].length-1];
ap = "";
if(scanJson.stations[i][5] >= 0)
ap = esc(scanJson.aps[scanJson.stations[i][5]][0]);
html += (selected ? "<tr class='selected'>" : "<tr>")
+ "<td class='id'>"+i+"</td>" // ID
+ "<td class='vendor'>"+esc(scanJson.stations[i][3])+"</td>" // Vendor
+ "<td class='mac'>"+esc(scanJson.stations[i][0])+"</td>" // MAC
+ "<td class='ch'>"+esc(scanJson.stations[i][1])+"</td>" // Ch
+ "<td class='name'>"+(scanJson.stations[i][2].length > 0 ? esc(scanJson.stations[i][2]) : "<button onclick='add(1,"+i+")'>"+lang("add")+"</button>")+"</td>" // Name
+ "<td class='pkts'>"+esc(scanJson.stations[i][4])+"</td>" // Pkts
+ "<td class='ap'>"+ap+"</td>" // AP
+ "<td class='lastseen'>"+esc(scanJson.stations[i][6])+"</td>" // Last seen
// Select
+ "<td class='selectColumn'><label class='checkBoxContainer'><input type='checkbox' "+(selected ? "checked" : "")+" onclick='selectRow(1,"+i+","+(selected ? "false" : "true")+")'><span class='checkmark'></span></label></td>"
+ "<td class='remove'><button class='red' onclick='remove(1,"+i+")'>X</button></td>" // Remove
+ "</tr>";
}
getE("stTable").innerHTML = html;
}
function drawNames(){
var html;
var selected;
// Names
getE("nNum").innerHTML = nameJson.length;
html = "<tr>"
+ "<th class='id'></th>"
+ "<th class='mac'>MAC</th>"
+ "<th class='vendor'>Vendor</th>"
+ "<th class='name'>Name</th>"
+ "<th class='ap'>AP-BSSID</th>"
+ "<th class='ch'>Ch</th>"
+ "<th class='save'></th>"
+ "<th class='selectColumn'></th>"
+ "<th class='remove'></th>"
+ "</tr>";
for(var i=0;i<nameJson.length;i++){
selected = nameJson[i][nameJson[i].length-1];
html += (selected ? "<tr class='selected'>" : "<tr>")
+ "<td class='id'>"+i+"</td>" // ID
+ "<td class='mac' contentEditable='true' id='name_"+i+"_mac'>"+esc(nameJson[i][0])+"</td>" // MAC
+ "<td class='vendor'>"+esc(nameJson[i][1])+"</td>" // Vendor
+ "<td class='name' contentEditable='true' id='name_"+i+"_name'>"+esc(nameJson[i][2].substring(0,16))+"</td>" // Name
+ "<td class='ap' contentEditable='true' id='name_"+i+"_apbssid'>"+esc(nameJson[i][3])+"</td>" // AP-BSSID
+ "<td class='ch' contentEditable='true' id='name_"+i+"_ch'>"+esc(nameJson[i][4])+"</td>" // Ch
+ "<td class='save'><button class='green' onclick='save("+i+")'>"+lang("save")+"</button></td>" // Save
// Select
+ "<td class='selectColumn'><label class='checkBoxContainer'><input type='checkbox' "+(selected ? "checked" : "")+" onclick='selectRow(2,"+i+","+(selected ? "false" : "true")+")'><span class='checkmark'></span></label></td>"
+ "<td class='remove'><button class='red' onclick='remove(2,"+i+")'>X</button></td>" // Remove
+ "</tr>";
}
getE("nTable").innerHTML = html;
}
function scan(type){
var cmdStr = "scan "
+ (type == 0 ? "aps " : "stations -t "+getE("scanTime").value+"s")
+ " -ch "+getE("ch").options[getE("ch").selectedIndex].value;
getFile("run?cmd="+cmdStr);
}
function load(){
// APs and Stations
getFile("run?cmd=save scan", function(){
getFile("scan.json",function(res){
scanJson = JSON.parse(res);
drawScan();
});
});
// Names
getFile("run?cmd=save names", function(){
getFile("names.json",function(res){
nameJson = JSON.parse(res);
drawNames();
});
});
}
function selectRow(type,id,selected){
switch(type){
case 0:
scanJson.aps[id][7] = selected;
drawScan();
getFile("run?cmd="+(selected ? "":"de")+"select ap "+id);
break;
case 1:
scanJson.stations[id][7] = selected;
drawScan();
getFile("run?cmd="+(selected ? "":"de")+"select station "+id);
break;
case 2:
save(id);
nameJson[id][5] = selected;
drawNames();
getFile("run?cmd="+(selected ? "":"de")+"select name "+id);
}
}
function remove(type,id){
switch(type){
case 0:
scanJson.aps.splice(id, 1);
drawScan();
getFile("run?cmd=remove ap "+id);
break;
case 1:
scanJson.stations.splice(id, 1);
drawScan();
getFile("run?cmd=remove station "+id);
break;
case 2:
nameJson.splice(id, 1);
drawNames();
getFile("run?cmd=remove name "+id);
}
}
function save(id){
var mac = getE("name_"+id+"_mac").innerHTML.replace("<br>","");
var name = getE("name_"+id+"_name").innerHTML.replace("<br>","");
var apbssid = getE("name_"+id+"_apbssid").innerHTML.replace("<br>","");
var ch = getE("name_"+id+"_ch").innerHTML.replace("<br>","");
var changed = mac != nameJson[id][0] || name != nameJson[id][2] || apbssid != nameJson[id][3] || ch != nameJson[id][4];
if(changed){
nameJson[id][0] = mac;
nameJson[id][2] = name;
nameJson[id][3] = apbssid;
nameJson[id][4] = ch;
if(nameJson[id][0].length != 17){
showMessage("ERROR: MAC invalid");
return;
}
getFile("run?cmd=replace name "+id+" -n \""+nameJson[id][2]+"\" -m \""+nameJson[id][0]+"\" -ch "+nameJson[id][4]+" -b \""+nameJson[id][3]+"\" "+(nameJson[id][5] ? "-s" : ""));
drawNames();
}
}
function add(type,id){
if(nameJson.length >= 25){
showMessage("Device Name List is full!");
return;
}
switch(type){
case 0:
getFile("run?cmd=add name \""+scanJson.aps[id][0]+"\" -ap "+id);
scanJson.aps[id][1] = scanJson.aps[id][0]; // name = SSID
nameJson.push([scanJson.aps[id][5],scanJson.aps[id][6],scanJson.aps[id][0],"",scanJson.aps[id][2],false]);
drawScan();
break;
case 1:
getFile("run?cmd=add name \""+scanJson.stations[id][0]+"\" station "+id);
scanJson.stations[id][2] = "device_"+nameJson.length; // name = device_
nameJson.push([scanJson.stations[id][0],scanJson.stations[id][3],"device_"+nameJson.length,scanJson.aps[scanJson.stations[id][5]][5],scanJson.stations[id][1],false]);
drawScan();
break;
case 2:
getFile("run?cmd=add name device_"+nameJson.length+" -m 00:00:00:00:00:00 -ch 1");
nameJson.push(["00:00:00:00:00:00","","device_"+nameJson.length,"",1,false]);
drawNames();
}
drawNames();
}
function selectAll(type,select){
switch(type){
case 0:
getFile("run?cmd="+(select ? "":"de")+"select aps");
for(var i=0;i<scanJson.aps.length;i++) scanJson.aps[i][7] = select;
drawScan();
break;
case 1:
getFile("run?cmd="+(select ? "":"de")+"select stations");
for(var i=0;i<scanJson.stations.length;i++) scanJson.stations[i][7] = select;
drawScan();
break;
case 2:
getFile("run?cmd="+(select ? "":"de")+"select names");
for(var i=0;i<nameJson.length;i++) nameJson[i][5] = select;
drawNames();
}
}

View File

@@ -0,0 +1,51 @@
var settingsJson = {};
function load(){
getFile("settings.json",function(res){
settingsJson = JSON.parse(res);
draw();
});
}
function draw(){
var html = "";
for (var key in settingsJson) {
key = esc(key);
if (settingsJson.hasOwnProperty(key)) {
html += "<div class='row'>"
+ "<div class='col-6'>"
+ "<label class='settingName "+(typeof settingsJson[key] == "boolean" ? "labelFix":"")+"' for='"+key+"'>"+key+":</label>"
+ "</div>"
+ "<div class='col-6'>";
if(typeof settingsJson[key] == "boolean"){
html += "<label class='checkBoxContainer'><input type='checkbox' name='"+key+"' "+(settingsJson[key] ? "checked" : "")+" onchange='save(\""+key+"\",!settingsJson[\""+key+"\"])'><span class='checkmark'></span></label>";
}else if(typeof settingsJson[key] == "number"){
html += "<input type='number' name='"+key+"' value="+settingsJson[key]+" onchange='save(\""+key+"\",parseInt(this.value))'>";
}else if(typeof settingsJson[key] == "string"){
html += "<input type='text' name='"+key+"' value="+settingsJson[key]+" "+(key=="version"?"readonly":"")+" onchange='save(\""+key+"\",this.value)'>";
}
html += "</div>"
+ "</div>"
+ "<div class='row'>"
+ "<div class='col-12'>"
+ "<p>"+lang("setting_"+key)+"</p>"
+ "<hr>"
+ "</div>"
+ "</div>";
}
}
getE("settingsList").innerHTML = html;
}
function save(key, value){
if(key){
settingsJson[key] = value;
getFile("run?cmd=set "+key+" \""+value+"\"");
}else{
getFile("run?cmd=save settings",function(res){
load();
});
}
}

View File

@@ -0,0 +1,118 @@
var langJson = {};
function getE(name){
return document.getElementById(name);
}
function esc(str) {
if(str){
return str.toString()
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/\"/g, '&quot;')
.replace(/\'/g, '&#39;')
.replace(/\//g, '&#x2F;');
}
return "";
}
function convertLineBreaks(str){
if(str){
str = str.toString();
str = str.replace(/(?:\r\n|\r|\n)/g,'<br>');
return str;
}
return "";
}
function showMessage(msg, closeAfter){
var elmt = getE("error");
elmt.innerHTML = esc(msg)+"<a onclick='closeMessage()' id='closeError'>x</a>";
elmt.classList.remove('hide');
elmt.classList.add('show');
if(closeAfter !== undefined){
setTimeout(closeMessage(),closeAfter);
}
}
function closeMessage(){
var elmt = getE("error");
elmt.innerHTML = "";
elmt.classList.remove('show');
elmt.classList.add('hide');
}
function getFile(adr, callback, timeout, method, onTimeout, onError){
/* fallback stuff */
if(adr === undefined) return;
if(callback === undefined) callback = function(){};
if(timeout === undefined) timeout = 8000;
if(method === undefined) method = "GET";
if(onTimeout === undefined) {
onTimeout = function(){
showMessage("ERROR: timeout loading file "+adr);
};
}
if(onError === undefined){
onError = function(){
showMessage("ERROR: loading file: "+adr);
};
}
/* create request */
var request = new XMLHttpRequest();
/* set parameter for request */
request.open(method, encodeURI(adr), true);
request.timeout = timeout;
request.ontimeout = onTimeout;
request.onerror = onError;
request.overrideMimeType("application/json");
request.onreadystatechange = function() {
if(this.readyState == 4){
if(this.status == 200){
callback(this.responseText);
}
}
};
/* send request */
request.send();
console.log(adr);
}
function lang(key){
return convertLineBreaks(esc(langJson[key]));
}
function parseLang(fileStr){
langJson = JSON.parse(fileStr);
if(langJson["lang"] != "en"){// no need to update the HTML
var elements = document.querySelectorAll("[data-translate]");
for (i = 0; i < elements.length; i++) {
var element = elements[i];
element.innerHTML = lang(element.getAttribute("data-translate"));
}
}
document.querySelector('html').setAttribute("lang", langJson["lang"] );
if(typeof load !== 'undefined') load();
}
function loadLang(){
var language = "default"; //navigator.language.slice(0, 2);
getFile("lang/" + language + ".lang",
parseLang,
2000,
"GET",
function(){
getFile("lang/en.lang", parseLang);
}, function(){
getFile("lang/en.lang", parseLang);
}
);
}

View File

@@ -0,0 +1,105 @@
var ssidJson = {"random":false,"ssids":[]};
function load(){
getFile("run?cmd=save ssids", function(){
getFile("ssids.json",function(res){
ssidJson = JSON.parse(res);
draw();
});
});
}
function draw(){
var html;
html = "<tr>"
+ "<th class='id'></th>"
+ "<th class='ssid'></th>"
+ "<th class='lock'></th>"
+ "<th class='save'></th>"
+ "<th class='remove'></th>"
+ "</tr>";
for(var i=0;i<ssidJson.ssids.length;i++){
html += "<tr>"
+ "<td class='id'>"+i+"</td>" // ID
+ "<td class='ssid' contenteditable='true' id='ssid_"+i+"'>"+esc(ssidJson.ssids[i][0].substring(0,ssidJson.ssids[i][2]))+"</td>" // SSID
+ "<td class='lock clickable' onclick='changeEnc("+i+")' id='enc_"+i+"'>"+(ssidJson.ssids[i][1] ? "&#x1f512;" : "-")+"</td>" // Enc
+ "<td class='save'><button class='green' onclick='save("+i+")'>"+lang("save")+"</button></td>" // Save
+ "<td class='remove'><button class='red' onclick='remove("+i+")'>X</button></td>" // Remove
+ "</tr>";
}
getE("randomBtn").innerHTML = ssidJson.random ? lang("disable_random") : lang("enable_random");
getE("ssidTable").innerHTML = html;
}
function remove(id){
ssidJson.ssids.splice(id, 1);
getFile("run?cmd=remove ssid "+id);
draw();
}
function add(){
var ssidStr = getE("ssid").value;
var wpa2 = getE("enc").checked;
var clones = getE("ssidNum").value;
var force = getE("overwrite").checked;
if(ssidStr.length > 0){
var cmdStr = "add ssid \""+ssidStr+"\""+(force ? " -f":" ")+" -cl "+clones;
if(wpa2) cmdStr += " -wpa2";
getFile("run?cmd="+cmdStr);
for(var i=0;i<clones;i++){
if(ssidJson.ssids.length >= 60) ssidJson.ssids.splice(0,1);
ssidJson.ssids.push([ssidStr,wpa2]);
}
draw();
}
}
function enableRandom(){
if(ssidJson.random){
getFile("run?cmd=disable random",function(){
load();
});
}else{
getFile("run?cmd=enable random "+getE("interval").value,function(){
load();
});
}
}
function disableRandom(){
}
function addSelected(){
getFile("run?cmd=add ssid -s"+(getE("overwrite").checked ? " -f":""));
}
function changeEnc(id){
ssidJson.ssids[id][1] = !ssidJson.ssids[id][1];
draw();
save(id);
}
function removeAll(){
ssidJson.ssids = [];
getFile("run?cmd=remove ssids");
draw();
}
function save(id){
var name = getE("ssid_"+id).innerHTML.replace("<br>","").substring(0,32);
var wpa2 = ssidJson.ssids[id][1];
ssidJson.ssids[id] = [name,wpa2];
getFile("run?cmd=replace ssid "+id+" -n \""+name+"\" "+(wpa2 ? "-wpa2" : ""));
}

View File

@@ -0,0 +1,74 @@
{
"lang": "cn",
"warning": "注意!",
"disclaimer": "该项目仅用于个人学习和研究使用\nESP8266及其SDK都不是为此目的而设计或构建的。可能会有 Bug 出现!\n请仅在自己的网络和设备上使用\n本项目使用IEEE 802.11标准中描述的有效Wi-Fi帧不会阻止或破坏任何频带。\n使用前请检查您的国家的法律法规。\n\n请不要将这个项目称为“干扰器”这完全破坏了这个项目的真正目的\n如果你这样做它只能证明你不了解这个项目意味着什么。\n请勿用于商业用途或为了自身利益发布该项目的消息这只能说明你不尊重知识产权以及背后的社区和为了更好的WiFi标准的斗争。\n\n详情请访问",
"disclaimer-button": "我已阅读并明白上述注意事项。",
"reload": "刷新",
"scan": "扫描",
"ssids": "SSIDs",
"attacks": "攻击",
"settings": "设置",
"info": "关于",
"info_span": "注意: ",
"all": "全部",
"channel": "信道",
"devices": "保存的设备",
"select_all": "全选",
"deselect_all": "全不选",
"remove_all": "移除全部",
"station_scan_time": "Station扫描时间",
"new": "新建",
"save": "保存",
"add": "添加",
"add_selected": "克隆所选接入点",
"overwrite": "覆盖",
"time_interval": "时间间隔",
"number": "数量",
"targets": "目标",
"scan_info": "- 点击扫描并等待直到主板上的蓝色LED指示灯熄灭或变为绿色然后点击刷新。\n- 在Station扫描期间Web界面将不可用您可能需要重新连接\n- 请只选择一个目标!\n",
"ssids_info": "- 此SSID列表用于信标(beacon)和探测(probe)攻击。\n- 每个SSID最多可以有32个字符。\n- 修改SSID后不要忘记点击保存。\n- 您需要在克隆SSID后点击刷新。\n",
"attack_info": "- 您在开始攻击时可能会失去连接!\n- 你需要为取消验证洪水攻击(deauth)攻击选择一个目标。\n- 您需要保存一个SSID来进行信标和探测攻击。\n- 点击刷新以刷新数据包速率。\n",
"settings_info": "- 某些设置需要重启后才能生效。\n- 修改设置后请务必点击保存以生效。\n",
"info_disclaimer": "如果发生了不可预计的错误,请重载网页并使用串口监视器以进一步调试。",
"start_stop": "开始 / 停止",
"start": "开始",
"stop": "停止",
"wifi_off": "WiFi关闭",
"reboot": "重启",
"reset": "重置",
"enable_random": "开启随机模式",
"disable_random": "关闭随机模式",
"random_desc": "启用随机模式以在给定时间间隔内生成随机的SSID列表",
"deauth_desc": "通过向您选择的接入点和客户端设备发送解除认证帧来关闭WiFi设备的连接。\n因为很多设备不使用802.11w-2009标准来抵御这种攻击。\n- 请只选择一个目标当您开始攻击的不同信道上的多个目标时它将在这些信道之间快速切换届时您将无法重新连接到此Web界面。\n",
"beacon_desc": "信标帧(Beacon)数据包用于宣告接入点。通过不断发送信标帧数据包看起来就像您创建了新的WiFi网络。\n您可以通过SSID指定网络名称。",
"probe_desc": "探测请求帧由客户端设备发送,以询问一个已知网络是否在附近。\n通过请求您在SSID列表中指定的网络以此来混淆WiFi跟踪器。\n您可能不会在家庭网络中看到此次攻击的任何影响。",
"setting_version": "版本号,比如说 v2.0.1\n这个选项只能在源代码中更改",
"setting_ssid" : "Wi-Fi 热点 SSID (如果已启用)。\nSSID长度必须在8到31个字符之间。",
"setting_password": "Wi-Fi 密码(如果已启用)。\n密码长度必须在8到31个字符之间。",
"setting_channel": "启动时默认使用的信道。",
"setting_hidden": "隐藏接入点的SSID。",
"setting_captivePortal": "启用captive portal无线认证系统。",
"setting_autosave": "自动保存SSIDs、设备名和设置。",
"setting_autosavetime": "自动保存的时间间隔(ms)。",
"setting_display": "启用OLED界面。",
"setting_displayTimeout": "OLED超时时间(s)。\n若需要关闭超时请设置成0。",
"setting_serial": "启用串口控制界面.\n推荐不要关闭。",
"setting_serialEcho": "开启串口输入回显",
"setting_web": "启用Web界面。",
"settings_webSpiffs": "对所有文件启用 SPIFFS",
"setting_led": "启用 (RGB) LED灯。",
"setting_maxch": "扫描的最大信道。\nUS = 11, EU = 13, Japan = 14.",
"setting_macAP": "接入点模式下的MAC地址。\n只有在接入点模式开启时才会改变MAC地址。",
"setting_macSt": "客户端模式下的MAC地址。\n只有在客户端模式开启时才会改变MAC地址。",
"setting_chtime": "扫描第一个信道到第二个信道的时间间隔(ms)(只有在信道跳变开启时有效)。",
"setting_minDeauths": "扫描最小解除认证攻击帧的数量改变取消验证洪水攻击模式下的LED。",
"setting_attacktimeout": "指定时间(s)后自动停止攻击。\n设定为0以关闭。",
"setting_forcepackets": "发送多少数据包来用于攻击。\n如果要在繁忙区域达到更好的数据包速率则将此值设置得更高。\n小心这个设置可能使设备更慢或者更不稳定。\n最大值为255!",
"setting_deauthspertarget": "发送给每个目标的解除关联帧与解除认证帧。",
"setting_deauthReason": "解除认证帧的原因代码。告知目标设备其为什么连接会被关闭。",
"setting_beaconchannel": "如果启用,在运行信标帧(Beacon)攻击时,会在不同信道上广播。",
"setting_beaconInterval": "启用时每隔1s会发送一次信标帧(Beacon)。关闭时时间间隔会变成100ms。\n一个长的时间间隔意味着更稳定和更高效的数据包但在扫描客户端和接入点时会花费您更多时间。",
"setting_randomTX": "启用随机传输功率来发送信标帧和探测请求帧。",
"setting_probesPerSSID": "探测攻击模式下发送给每个SSID的探测请求帧。",
"setting_lang": "Web界面的默认语言。\n请确认语言文件是否存在"
}

View File

@@ -0,0 +1,75 @@
{
"lang": "cs",
"warning": "VAROVÁNÍ",
"disclaimer": "Tento projekt slouží pouze pro testovací a edukační využití.\nESP8266, nebo jeho SDK není určeno pro toto použití, proto se mohou vyskytnout chyby!\n\nPoužijte tento projekt jen proti vlastním zařízením a sítím!\n\nPoužíváme validní Wi-Fi rámce popsané v IEEE 802.11 standardu. Neblokujeme, ani nezasahujeme do jiných frekvencí.\nPřed použitím si zkontrolujte omezení ve vaší zemi.\n\nProsím neodkazujte na tento projekt jako na \"rušičku\", nebo \"jammer\", podkopává to reálný význam tohoto projektu!\nPokud tak budete nadále odkazovat, jen to ukazuje, že jste nic nepochopili.\nPublikování obsahu o tomto projektu bez řádného vysvětlení ukazuje, že to děláte pouze pro kliknutí, slávu, peníze a nemáte žádný respekt k duševnímu vlastnictví, komunitě za ním a boji za lepší standard WiFi.\n\nPro více informací navštivte:",
"disclaimer-button": "Přečetl jsem a pochopil výše uvedené oznámení",
"reload": "Obnovit",
"scan": "Skenovat",
"ssids": "SSID",
"attacks": "Útoky",
"settings": "Nastavení",
"info": "Info",
"info_span": "INFO: ",
"all": "Vše",
"channel": "Kanál",
"devices": "Uložená zařízení",
"select_all": "Označit vše",
"deselect_all": "Odoznačit vše",
"remove_all": "Odstranit vše",
"station_scan_time": "Čas skenování stanice",
"new": "Nový",
"save": "Uložit",
"add": "Přidat",
"add_selected": "Klonovat vybrané stanice",
"overwrite": "Přepsat",
"time_interval": "Časový interval",
"number": "Číslo",
"targets": "Cíle",
"scan_info": "- Klikněte na Skenovat a vyčkejte až se modrá LED vypne (nebo se změní na zelenou), poté klikněte na Obnovit.\n- Webové rozhraní nebude během skenu dostupné. Budete se muset připojit znovu!\n- Vyberte jenom jeden cíl!\n",
"ssids_info": "- Pro útok bude využit tento seznam SSID.\n- Každé SSID může mít do 32 znaků.\n- Po editaci nezapomeňte kliknout na Uložit.\n- Po klonování SSID budete muset kliknout na Obnovit.\n",
"attack_info": "- Při zahájení útoku možná ztratíte připojení!\n- Musíte vybrat cíl.\n- Pro útok potřebujete uložené SSID.\n- Klikněte na Obnovit pro obnovení rychlosti paketů.\n",
"settings_info": "- Některá nastavení vyžadují restart.\n- Pro aplikování změn klikněte na Uložit.\n",
"info_disclaimer": "V případě neočekávané chyby obnovte stránku a zkontrolujte sériové rozhraní pro další ladění.",
"start_stop": "START / STOP",
"start": "START",
"stop": "STOP",
"wifi_off": "WiFi Off",
"reboot": "Restartovat",
"reset": "Resetovat",
"enable_random": "Zapnout režim náhody",
"disable_random": "Vypnout režim náhody",
"random_desc": "Zapnout generování náhodného SSID seznamu.",
"deauth_desc": "Uzavře spojení WIFI zařízení odesláním deauth paketů klientům a AP, které jste si vybrali.\nToto je možné, protože většina zařízení neimplementuje 802.11w-2009 standard, který proti tomuto útoku brání.\n- Vyberte jenom jeden cíl! Pokud vyberete více cílů, které jsou na jíných kanálech a spustíte útok, tak ztratíte možnost se připojit do webového rozhraní.\n",
"beacon_desc": "Pro zviditelnění jsou použity beacon pakety. Odesíláním těchto paketů výtváříte dojem nových sítí.\nJména můžete specifikovat v sekci SSID.",
"probe_desc": "Probe požadavky jsou odesílány klienty, pro zjištění, jestli není blízko známá síť.\nPoužijte tento útok pro zmatení WIFI skenerů.\nVe vaší domácí sítí pravděpodobně nezaznamenáte žádné výsledky.",
"setting_version": "Číslo verze, tj. v2.0.\nMůže být změněno pouze ve zdrojovém kódu.",
"setting_ssid" : "SSID přístupového bodu AP (je-li zapnuto).\nDélka musí být mezi 1 a 31 znaky.",
"setting_password": "Heslo přístupového bodu AP (je-li zapnuto).\nDélka musí být mezi 8 a 31 znaky.",
"setting_channel": "Výchozí WIFI kanál, který bude použit při startu.",
"setting_hidden": "Skryje přístupový bod pro webové rozhraní (je-li zapnuto).",
"setting_captivePortal": "Aktivuje captive portal pro webové rozhraní (je-li zapnuto).",
"setting_autosave": "Aktivuje automatické ukládání SSID, jmen zařízení and nastavení.",
"setting_autosavetime": "Časový interval pro automatické ukládání v milisekundách.",
"setting_display": "Aktivuje rozhraní displaye.",
"setting_displayTimeout": "Čas v sekundách za který se display po nečinnosti automaticky vypne.\nPro vypnutí časovače použijte 0.",
"setting_serial": "Aktivuje sériové rozhraní.\nNení doporučeno ho vypínat!",
"setting_serialEcho": "Aktivuje odezvu (echo) pro každý řádek v sériové konzoli.",
"setting_web": "Aktivuje webové rozhraní.",
"settings_webSpiffs": "Zapnout SPIFFS pro všechny webové soubory.",
"setting_led": "Aktivuje (RGB) LED.",
"setting_maxch": "Max. kanál.\nUS = 11, EU = 13, Japonsko = 14.",
"setting_macAP": "MAC adresa v AP módu.\nMAC adresa bude nahrazena, pokud je AP mód aktivní.",
"setting_macSt": "MAC adresa v módu stanice.\nMAC adresa bude nahrazena, pokud je mód stanice aktivní.",
"setting_chtime": "Čas pro skenování jednoho kanálu v milisekundách (pokud je zapnuto přeskakování kanálů).",
"setting_minDeauths": "Minimální počet odhlašovacích rámců pro změnu LED indikátoru.",
"setting_attacktimeout": "Útok se automaticky zastaví po zadaném čase (v sekundách).\nPro vypnutí časovače nastavte 0.",
"setting_forcepackets": "Počet pokusů pro odeslání paketu.\nNastavte větší hodnotu, pokud potřebujete lepší výsledky v rušných prostředích.\nToto nastavení může vést ke zpomalení zařízení a nestabilitě.\nMaximální hodnota je 255!",
"setting_deauthspertarget": "Kolik deauth paketů bude odesláno každému cíli.",
"setting_deauthReason": "Kód, který určuje důvod odhlášení klientů za sítě.",
"setting_beaconchannel": "Pokud aktivní, beacon pakety budou odesílány na odlišných kanálech.",
"setting_beaconInterval": "Pokud aktivní, beacon interval bude 1s. Pokud ne, interval bude 100ms.\nDelší interval znamená větší stabilitu, ale skenování může trvat déle.",
"setting_randomTX": "Aktivuje náhodný vysílací výkon pro každý packet.",
"setting_probesPerSSID": "Kolik probe paketů bude odesláno k SSID.",
"setting_lang": "Výchozí jazyk pro webové rozhraní.\nUjistěte se, že definiční soubor jazyka existuje!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "de",
"warning": "WARNUNG",
"disclaimer": "Dieses Proof-of-Concept-Projekt ist zum Lernen und Testen.\nWeder der ESP8266, noch das SDK sind für solche Zwecke gemacht. Fehler können auftreten!\n\nBenutze es nur gegen eigene Netzwerke und Geräte!\n\nEs werden valide Wi-Fi-Frames nach IEEE 802.11 verwendet und keine Frequenzen gestört oder blockiert.\n\nBitte bezeichne dieses Projekt nicht als \"Jammer\" oder \"Störsender\", dass untergräbt den Sinn dieses Projektes!\nWenn du es doch tust, zeigt es nur, dass du nichts von dem, wofür das Projekt steht, verstanden hast.\nDie Veröffentlichung von Inhalten hierzu ohne entsprechende Erläuterung zeigt, dass du es nur für Aufmerksamkeit, Klicks und/oder Geld machst und keinen Respekt für geistiges Eigentum, die Gemeinschaft dahinter und den Kampf für einen besseren Wi-Fi-Standard hast.\n\nFür mehr Informationen, besuche:",
"disclaimer-button": "Ich habe den Hinweis gelesen und verstanden",
"reload": "Neu laden",
"scan": "Scan",
"ssids": "SSIDs",
"attacks": "Attacken",
"settings": "Einstellungen",
"info": "Info",
"info_span": "INFO: ",
"all": "Alle",
"channel": "Kanal",
"devices": "Gespeicherte Geräte",
"select_all": "Alle auswählen",
"deselect_all": "Auswahl aufheben",
"remove_all": "Alle entfernen",
"station_scan_time": "Station-Scan-Zeit",
"new": "Neu",
"save": "Speichern",
"add": "Hinzufügen",
"add_selected": "Klone ausgewählte APs",
"overwrite": "Überschreiben",
"time_interval": "Zeitintervall",
"number": "Anzahl",
"targets": "Ziele",
"scan_info": "- Drücke auf \"Scan\" und warte bis sich die blaue LED auf deinem Board ausschaltet (oder grün wird), dann drücke \"Neu laden\".\n- Das Webinterface schaltet sich während eines Station-Scans aus und Du musst dich neu verbinden!\n- Bitte wähle nur ein Ziel aus!\n",
"ssids_info": "- Die SSID-Liste wird für die Beacon- und Probe-Attacken verwendet.\n- Jede SSID kann bis zu 32 Zeichen haben.\n- Vergiss nicht auf Speichern zu klicken nachdem du eine Änderung vorgenommen hast.\n- Du musst auf \"Neu laden\" klicken nachdem du SSIDs geklont hast.\n",
"attack_info": "- Die Verbindung kann beim Starten einer Attacke unterbrochen gehen!\n- Für Deauth-Attacken wird ein ausgewähltes Ziel benötigt.\n- Für Beacon- und Probe-Attacken werden gespeicherte SSIDs benötigt.\n- Klicke \"Neu laden\" um die Paketrate zu aktualisieren.\n",
"settings_info": "- Einige Einstellungen benötigen einen Neustart.\n- Klicke \"Speichern\", um sicherzustellen, dass deine Änderungen übernommen werden.\n",
"info_disclaimer": "Im Falle eines unerwarteten Fehlers lade die Seite erneut und schaue auf den Serial-Monitor für weiteres Debugging.",
"start_stop": "START / STOPP",
"start": "START",
"stop": "STOPP",
"wifi_off": "WiFi aus",
"reboot": "Neu starten",
"reset": "Reset",
"enable_random": "Random Mode EIN",
"disable_random": "Random Mode AUS",
"random_desc": "Schalte den Random-Mode ein, um eine zufällige SSID-Liste im gegebenen Interval automatisch zu generieren.",
"deauth_desc": "Schließt die Verbindung von WiFi-Geräten durch das Senden von Deauthentication-Frames zu den ausgewählten Geräten.\nDas ist nur möglich, da viele Geräte nicht den 802.11w-2009-Standard nutzen. Dieser bietet einen Schutz gegen solche Attacken.\nBitte wähle nur ein Ziel aus! Bei mehreren Zielen auf verschiedenen Kanälen muss das Gerät ständig den Kanal wechseln und du wirst dich nicht mehr das Webinterface nutzen können.",
"beacon_desc": "Beacon-Pakete werden benutzt, um auf Netzwerke aufmerksam zu machen. Durch das ständige Senden von solchen Paketen macht es den Anschein, Du hättest neue WiFi-Netzwerke erstellt.\nDu kannst die Netzwerknamen in der SSID-Liste einstellen.",
"probe_desc": "Probe-Requests werden von Client-Geräten gesendet, um nach bekannten Netzwerken in Reichweite zu fragen.\nBenutze diese Attacke um WiFi-Trackers zu verwirren, indem Du ständig nach Netzwerken aus der SSID-Liste fragst.\nEs ist unwahrscheinlich, dass diese Attacke merkbare Auswirkungen auf Dein Heimnetzwerk hat.",
"setting_version": "Versionsnummer, z.B. v2.0.\nDiese Einstellung kann nur im Quellcode verändert werden.",
"setting_ssid" : "SSID des Access-Points, benutzt für das Webinterface (wenn aktiviert).\nDie Länge muss zwischen 1 und 31 Zeichen sein.",
"setting_password": "Passwort des Access-Points für Webinterface (wenn aktiviert).\nDie Länge muss zwischen 8 und 31 Zeichen sein.",
"setting_channel": "Standard WiFi-Kanal der beim Starten genutzt wird.",
"setting_hidden": "Versteckt Access-Point für Webinterface (wenn aktiviert).",
"setting_captivePortal": "Aktiviert Captive-Portal für Webinterface (wenn aktiviert).",
"setting_autosave": "Aktiviert automatisches Speichern der SSIDs, Geräte und Einstellungen.",
"setting_autosavetime": "Zeitintervall für automatisches Speichern in Millisekunden.",
"setting_display": "Aktiviert Display-Interface.",
"setting_displayTimeout": "Zeit in Sekunden nachdem der Display automatisch ausschaltet, wenn inaktiv.\nZum Deaktivieren des Timeouts, setze es auf 0.",
"setting_serial": "Aktiviere Serial-Interface.\nEs wird empfohlen es immer aktiviert zu lassen!",
"setting_serialEcho": "Erlaubt Echo für jede Nachricht über die serielle Verbindung.",
"setting_web": "Aktiviert Webinterface.",
"setting_webSpiffs": "Aktiviert SPIFFS für alle Web-Datein.",
"setting_led": "Aktiviert (RGB-)LED.",
"setting_maxch": "Max. Kanal zum Scannen.\nUS = 11, EU = 13, Japan = 14.",
"setting_macAP": "MAC-Adresse für Access-Point-Modus.\nBeachte, dass die Adresse nur angewendet wird wenn der Access-Point-Modus aktiviert ist.",
"setting_macSt": "MAC-Adresse für Station-Modus.\nBeachte, dass die Adresse nur angewendet wird, wenn der Station-Modus aktiviert ist.",
"setting_chtime": "Scan-Zeit in Millisekunden für einen Kanal, bevor zum nächsten gewechselt wird (nur wenn Channel-Hopping aktiviert ist).",
"setting_minDeauths": "Minimale Anzahl an Deauthentication-Frames beim Scannen, um den LED-Modus zu ändern.",
"setting_attacktimeout": "Nach wie viel Sekunden die Attacke automatisch gestoppt wird.\nSetze es auf 0 um diese Funktion zu deaktivieren.",
"setting_forcepackets": "Wie oft versucht werden soll ein Paket zu versenden.\nÄndere diesen Wert um weine bessere Paketrate zu erreichen.\nSei Vorsichtig, diese Einstellung kann das Gerät langsamer machen.\nDer maximal Wert ist 255!",
"setting_deauthspertarget": "Wie viele Deauthentication- und Disassociaten-Frames für jedes Ziel versendet werden sollen.",
"setting_deauthReason": "Der Reason-Code beim versenden der Deauth-Pakete um dem Ziel zu sagen, warum die Verbindung getrennt wird.",
"setting_beaconchannel": "Wenn aktiviert, sendet Beacon-Pakete auf verschiedenen Kanälen.",
"setting_beaconInterval": "Wenn aktiviert, versendet je SSID ein Beacon-Pakete jede Sekunde. Sonst alle 100ms.\nEin größeres Intervall bedeutet mehr Stabilität und weniger Paket-Spamming, aber es könnte länger dauern bis Client-Geräte die Netzwerke finden.",
"setting_randomTX": "Enables randomized transmission power for sending out beacon and probe request frames.",
"setting_probesPerSSID": "Wie viele Probe Requests pro SSID versendet werden sollen.",
"setting_lang": "Standardsprache für Webinterface.\nSei sicher, dass eine passende Sprachdatei existiert!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "en",
"warning": "WARNING",
"disclaimer": "This project is a proof of concept for testing and educational purposes.\nNeither the ESP8266, nor its SDK was meant or build for such purposes. Bugs can occur!\n\nUse it only against your own networks and devices!\n\nIt uses valid Wi-Fi frames described in the IEEE 802.11 standard and does not block or disrupt any frequencies.\nPlease check the legal regulations in your country before using it.\n\nPlease don't refer to this project as \"jammer\", that totally undermines the real purpose of this project!\nIf you do, it only proves that you didn't understand anything of what this project stands for.\nPublishing content about this without without a proper explanation shows that you only do it for the clicks, fame and/or money and have no respect for intellectual property, the community behind it and the fight for a better WiFi standard.\n\nFor more information visit:",
"disclaimer-button": "I have read and understood the notice above",
"reload": "Reload",
"scan": "Scan",
"ssids": "SSIDs",
"attacks": "Attacks",
"settings": "Settings",
"info": "Info",
"info_span": "INFO: ",
"all": "All",
"channel": "Channel",
"devices": "Saved Devices",
"select_all": "Select All",
"deselect_all": "Deselect All",
"remove_all": "Remove All",
"station_scan_time": "Station Scan Time",
"new": "New",
"save": "Save",
"add": "Add",
"add_selected": "Clone selected APs",
"overwrite": "Overwrite",
"time_interval": "Time Interval",
"number": "Number",
"targets": "Targets",
"scan_info": "- Click Scan and wait until the blue LED on your board turns off (or changes to green), then click on Reload.\n- The web interface will be unavailable during a station scan and you will have to reconnect!\n- Please select only one target!\n",
"ssids_info": "- This SSID list is used for the beacon and probe attack.\n- Each SSID can be up to 32 characters.\n- Don't forget to click save when you edited a SSID.\n- You have to click Reload after cloning SSIDs.\n",
"attack_info": "- You might lose connection when starting an attack!\n- You need to select a target for the deauth attack.\n- You need a saved SSID for the beacon and probe attack.\n- Click reload to refresh the packet rate.\n",
"settings_info": "- Some settings require a reboot.\n- Click save to make sure that your changes are applied.\n",
"info_disclaimer": "In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.",
"start_stop": "START / STOP",
"start": "START",
"stop": "STOP",
"wifi_off": "WiFi Off",
"reboot": "Reboot",
"reset": "Reset",
"enable_random": "Enable Random Mode",
"disable_random": "Disable Random Mode",
"random_desc": "Enable the random mode to generate a random SSID list in a given interval.",
"deauth_desc": "Closes the connection of WiFi devices by sending deauthentication frames to access points and client devices you selected.\nThis is only possible because a lot of devices don't use the 802.11w-2009 standard that offers a protection against this attack.\n- Please only select one target! When you select multiple targets that run on different channels and start the attack, it will quickly switch between those channels and you have no chance to reconnect to the web interface.\n",
"beacon_desc": "Beacon packets are used to advertise access points. By continuously sending beacon packets out, it will look like you created new WiFi networks.\nYou can specify the network names under SSIDs.",
"probe_desc": "Probe requests are sent by client devices to ask if a known network is nearby.\nUse this attack to confuse WiFi trackers by asking for networks that you specified in the SSID list.\nIt's unlikely you will see any impact by this attack with your home network.",
"setting_version": "Version number, i.e. v2.0.\nThis setting can only be changed in the source code.",
"setting_ssid" : "SSID of access point used for the web interface (if enabled).\nThe length must be between 1 and 31 characters.",
"setting_password": "Password of access point used for the web interface (if enabled).\nThe length must be between 8 and 31 characters.",
"setting_channel": "Default WiFi channel that is used when starting.",
"setting_hidden": "Hides the access point that is used for the web interface (if enabled).",
"setting_captivePortal": "Enables captive portal for access point (if enabled).",
"setting_autosave": "Enables automatic saving of SSIDs, device names and settings.",
"setting_autosavetime": "Time interval for automatic saving in milliseconds.",
"setting_display": "Enables display interface.",
"setting_displayTimeout": "Time in seconds after which the display turns off when inactive.\nTo disable the display timeout, set it to 0.",
"setting_serial": "Enables serial interface.\nIt's recommended not to disable it!",
"setting_serialEcho": "Enables echo for each incoming message over serial.",
"setting_web": "Enables web interface.",
"setting_webSpiffs": "Enables SPIFFS for all web files.",
"setting_led": "Enables the (RGB) LED feature.",
"setting_maxch": "Max. channel to scan on.\nUS = 11, EU = 13, Japan = 14.",
"setting_macAP": "MAC address used for the access point mode.\nPlease note that the MAC address will only replace the internal MAC address when the accesspoint mode is enabled.",
"setting_macSt": "MAC address used for the station mode.\nPlease note that the MAC address will only replace the internal MAC address when the station mode is enabled.",
"setting_chtime": "Time for scanning one channel before going to the next in milliseconds (only if channel hopping is enabled).",
"setting_minDeauths": "Minimum number of deauthentication frames when scanning to change the LED to deauth mode.",
"setting_attacktimeout": "After what amount of time (in seconds) the attack will stop automatically.\nSet it to 0 to disable it.",
"setting_forcepackets": "How many attempts to send out a packet.\nSet this value higher if you want to achieve a better packet rate in a busy area.\nBe careful this setting could make the device slower or more unstable.\nMax value is 255!",
"setting_deauthspertarget": "How many deauthentication and disassociation frames are sent out for each target.",
"setting_deauthReason": "The reason code that is sent with the deauth frames to tell the target device why the connection will be closed.",
"setting_beaconchannel": "If enabled, will send all frames on different channels when running a beacon attack.",
"setting_beaconInterval": "If set true, beacons will be sent out every second. If set to false, the interval will be 100ms.\nA longer interval means more stability and less spamming of packets, but it could take longer until the clients find the ssids when scanning.",
"setting_randomTX": "Enables randomized transmission power for sending out beacon and probe request frames.",
"setting_probesPerSSID": "How many probe request frames are sent for each SSID.",
"setting_lang": "Default language for the web interface.\nBe sure the language file exists!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "es",
"warning": "ADVERTENCIA",
"disclaimer": "Este proyecto es una prueba de concepto con un motivo didáctico y experimental. \nNi el modulo ESP8266, ni su relativo SDK fueron creados o proyectados para estos propósitos.\n\n¡Úsalo solo contra tus propias redes y dispostivos! \n\nEl software utiliza exclusivamente los marcos WiFi válidos descritos en el estándar IEEE 802.11 de manera que no se bloquea o interrumpe frecuencia alguna. \nPor favor, verifica la regulación vigente de tu país antes de utilizarlo. \n\nPor favor no referirse a este proyecto como \"jammer\" o \"inhibidor\", esto iría completamente en contra de la verdadera finalidad del proyecto\nSi lo haces tan solo demostarás no haber entendido absolutamente nada de lo que este proyecto representa. \nPublicar contenido sin una explicación adecuada demuestra que tan solo se hace por los clics, fama y/o dinero y que no se tiene ningún respeto por la propriedad intelectual, la comunidad detrás de ello y la lucha por un mejor estándar WiFi. \n\nPara más información visita:",
"disclaimer-button": "He leído y entendido el aviso anterior",
"reload": "Actualizar",
"scan": "Escanear",
"ssids": "SSIDs",
"attacks": "Ataques",
"settings": "Configuración",
"info": "Informacón",
"info_span": "INFO: ",
"all": "Todo",
"channel": "Canal",
"devices": "Dispositivos guardados",
"select_all": "Seleccionar todo",
"deselect_all": "Deseleccionar todo",
"remove_all": "Quitar todo",
"station_scan_time": "Tiempo de escaneo de la estación",
"new": "Nuevo",
"save": "Guardar",
"add": "Agregar",
"add_selected": "Clonar los APs seleccionados",
"overwrite": "Sobrescribir",
"time_interval": "Intervalo de tiempo",
"number": "Número",
"targets": "Objetivos",
"scan_info": "- Haz clic en Escanear y espera hasta que el led azul en la placa se apague (o cambie a verde), luego haz clic en Actualizar.\n- ¡La interfaz web no estará disponible durante el escaneo de una estación y tendrás que reconectarte!\n- ¡Selecciona solo un objetivo!\n",
"ssids_info": "- Esta lista SSID se utiliza para los ataques de tipo 'Beacon' y 'Probe'.\n- Cada SSID puede contener hasta 32 caráteres.\n- No olvides hacer clic en Guardar cuando se modifique un SSID.\n- Tienes que hacer clic en Actualizar después de clonar un SSID.\n",
"attack_info": "- ¡Puede que pierdas la conexión al iniciar el ataque!\n- Tienes que seleccionar un objetivo para el ataque de tipo 'Deauth'.\n- Se necesita un SSID guardado para el ataque tipo 'Beacon' o 'Probe'.\n- Haz clic en Actualizar para refrescar la velocidad de los paquetes.\n",
"settings_info": "- Algunas configuraciones necesitan un reinicio.\n- Haz clic en Guardar para asegurar que las modificaciones sean aplicadas.\n",
"info_disclaimer": "En caso de error, actualiza la página y echa un vistazo al monitor serial para una depuración más detallada.",
"start_stop": "INICIAR / DETENER",
"start": "INICIAR",
"stop": "DETENER",
"wifi_off": "Apagar WiFi",
"reboot": "Reiniciar",
"reset": "Restablecer",
"enable_random": "Habilita el modo aleatorio",
"disable_random": "Deshabilita el modo aleatorio",
"random_desc": "Habilitar el modo aleatorio para generar una lista SSID aleatoria en un intervalo dado.",
"deauth_desc": "Cierra la conexión de los dispositivos WiFi enviando los marcos de desautenticación a los APs y a los dispositivos clientes seleccionados.\nEsto es posible solo porque muchos dispositivos no utilizan el estándar 802.11w-2009, que ofrece una protección contra este tipo de ataque.\n- ¡Por favor, seleccione solo un blanco! Cuando se seleccionan más blancos que son llevados a cabo sobre canales diversos e inicia el ataque, pasará rápidamente de estos canales y no tendrá posibilidad alguna de reconectarse a la interfaz web.\n",
"beacon_desc": "Los paquetes 'Beacon' son utilizados para publicitar los APs. Enviando continuamente paquetes 'Beacon', parecería que se han creado nuevas redes WiFi.\nEs posible especificar los nombres de red bajo SSID.",
"probe_desc": "Las peticiones 'Probe' son enviadas por los dispositivos clientes para preguntar si una red determinada se encuentra al alcance.\nUtiliza este ataque para confundir los 'trackers' WiFi preguntando por redes especificadas en la lista SSID.\nEs improbable que no veas algún impacto de este ataque en tu red doméstica.",
"setting_version": "Número de versión, por ejemplo v2.0.\nEste ajuste sólo puede ser modificado en el código fuente.",
"setting_ssid" : "SSID del AP utilizado para la interfaz web (si habilitado).\nEl tamaño debe comprender entre 1 y 31 caracteres.",
"setting_password": "Contraseña del AP utilizada para la interfaz (si habilitado).\nEl tamaño debe comprender entre 8 y 31 caracteres.",
"setting_channel": "Canal WiFi predefinido que es utilizado al inicio.",
"setting_hidden": "Oculta el AP utilizado para la interfaz web (si habilitado).",
"setting_captivePortal": "Habilita el portal cautivo para el AP (si habilitado).",
"setting_autosave": "Habilita el guardado automático de SSID, nombres de dispositivos y configuraciones.",
"setting_autosavetime": "Intervalo de tiempo para el guardado automático en milisegundos.",
"setting_display": "Habilita la interfaz de la pantalla.",
"setting_displayTimeout": "Tiempo en segundos tras los que la pantalla se apaga al estar inactiva.\nPara deshabilitar el timeout de la pantalla, configurarlo en 0.",
"setting_serial": "Habilita la interfaz serial.\n¡Se recomienda no desactivarla!",
"setting_serialEcho": "Habilita la muestra de cada mensaje recibido por serial.",
"setting_web": "Habilita la interfaz web.",
"setting_webSpiffs": "Habilita SPIFFS para todos los archivos web.",
"setting_led": "Habilita la función led (RGB).",
"setting_maxch": "Canal máximo para el escaneo.\nEEUU = 11, EU = 13, Japón = 14.",
"setting_macAP": "Dirección MAC utilizada para el modo AP.\nLa dirección MAC reemplazará la MAC interna tan solo cuando el modo AP este habilitado.",
"setting_macSt": "Dirección MAC utilizada para el modo estación.\nLa dirección MAC reemplazará la MAC interna tan solo cuando el modo estación este habilitado.",
"setting_chtime": "Tiempo de escaneo de un canal antes di pasar al sucesivo en milisegundos (sólo si el pase de canales está habilitado).",
"setting_minDeauths": "Número mínimo de marcos de desautentifiación durante el escaneo para cambiar el modo led en 'Deauth'.",
"setting_attacktimeout": "Después de cuanto tiempo (en segundos) el ataque se detendrá automaticamente.\nConfigurarlo en 0 para deshabilitarlo.",
"setting_forcepackets": "Cuantos tentativos de envío de un paquete.\nConfigurar este valor más alto si se desea obtener una mejor velocidad de paquetes en un área ocupada.\nCuidado, esta configuración puede hacer que el dispositivo vaya más lento o hacerlo más inestable.\n¡El valor máximo es 255!",
"setting_deauthspertarget": "Cuantos marcos de desautentifiación y desasociación son enviados para cada blanco.",
"setting_deauthReason": "El código de motivo que se envía con los marcos tipo \"deauth\" para indicar al dispositivo de destino por qué la conexión será terminada.",
"setting_beaconchannel": "Si se habilita, se enviarán todos los marcos en diferentes canales durante la ejecución de un ataque tipo 'Beacon'.",
"setting_beaconInterval": "Habilitado los Beacons serán enviados cada segundo. Deshabilitado, el intervalo será de 100 ms.\nUn intervalo más largo significa mayor estabilidad y menos 'spammeo' de los paquetes, pero podría nesecitar más tiempo hasta que los clientes encuentren los SSID durante el escaneo.",
"setting_randomTX": "Habilita la potencia de transmisión aleatoria para el envío de peticiones de marcos 'Beacons' y 'Probe'.",
"setting_probesPerSSID": "Cantidad de marcos de peticiones 'Probe' enviados para cada SSID.",
"setting_lang": "Idioma predefinido para la interfaz web.\n¡Verifica que el archivo del idioma exista previamente!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "fi",
"warning": "VAROITUS",
"disclaimer": "Tämä laite on tarkoitettu verkon turvallisuustestien tekemiseen, eikä verkon murtautumiseen! ",
"disclaimer-button": "Olen lukenut ja käytän laitetta oikein",
"reload": "Lataa Uudelleen",
"scan": "Skannaa",
"ssids": "SSID:t",
"attacks": "Hyökkäykset",
"settings": "Asetukset",
"info": "Info",
"info_span": "INFO: ",
"all": "Kaikki",
"channel": "Kanavat",
"devices": "Tallennetut Laitteet",
"select_all": "Valitse Kaikki",
"deselect_all": "Poista valinnat",
"remove_all": "Poista Kaikki",
"station_scan_time": "Asemien skannausaika",
"new": "Uusi",
"save": "Tallenna",
"add": "Lisää",
"add_selected": "Kloonaa Valitut Verkot",
"overwrite": "Kirjoita päälle",
"time_interval": "Aikaväli",
"number": "Numero",
"targets": "Kohteet",
"scan_info": "- Napsauta Skannaa ja odota, kunnes sinisen LED-valo sammuu (tai muuttuu vihreäksi) ja napsauta sitten Lataa Sivu Uudelleen. \n- Web-käyttöliittymä ei ole käytettävissä asemien skannauksen aikana ja sinun on yhdistettävä uudelleen laitteeseen! \n- Ole hyvä valitse vain yksi kohde! \n",
"ssids_info": "- Tätä SSID-luetteloa käytetään Beacon- ja Probe hyökkäystä varten. \n- Jokainen SSID voi olla enintään 32 merkkiä. \n- Älä unohda klikata Tallenna, kun olet muokannut SSID-tunnuksia. \n- Sinun on napsautettava Lataa Sivu uudelleen, jos olet kloonannut SSID-tunnuksia. \n",
"attack_info": "- Voit menettää yhteyden aloittaessasi hyökkäyksen! \n- Sinun on valittava kohde deauth-hyökkäykstä varten. \n- Sinun on tallennettava SSID Beacon- ja Probe hyökkäyksiä varten. \n- Päivitä pakettien siirtonopeus napsauttamalla Lataa Sivu uudelleen. \n",
"settings_info": "- Jotkin asetukset edellyttävät uudelleenkäynnistystä..\n- Varmista, että muutokset ovat tallennettu, klikkamalla Tallenna nappia.\n",
"info_disclaimer": "Jos odottamaton virhe ilmenee, lataa sivu uudelleen ja katso laitteen sarjaportin lukijasta tulevaisuuden virheenkorjausta varten.",
"start_stop": "KÄYNNISTÄ / PYSÄYTÄ",
"start": "KÄYNNISTÄ",
"stop": "PYSÄYTÄ",
"wifi_off": "WiFi Pois",
"reboot": "Käynnistä uudelleen",
"reset": "Nollaa",
"enable_random": "Satunnainen tila päälle",
"disable_random": "Satunnainen tila pois päältä",
"random_desc": "Ota satunnaistoiminto käyttöön saadaksesi satunnaisen SSID-luettelon tietyllä kappaleväleillä (esim. 1-15 SSIDja).",
"deauth_desc": "Sulkee WiFi-laitteiden yhteyden lähettämällä autentikointikehykset valittuihin yhteyspisteisiin ja asiakaslaitteisiin.\nTämä on mahdollista vain, koska monet laitteet eivät käytä 802.11w-2009 -standardia, joka suojaa tätä hyökkäystä vastaan.\n - Valitse vain yksi kohde! Kun valitset useita kanavia, jotka toimivat eri kanavilla ja käynnistä hyökkäys, se siirtyy nopeasti näiden kanavien välillä ja sinulla ei ole mahdollisuutta yhdistää uudelleen verkkokäyttöön.",
"beacon_desc": "Beacon-paketteja käytetään tukiasemien mainostamiseen. Lähettämällä jatkuvasti beacon-paketteja ulos näyttää siltä, että olet luonut uusia WiFi-verkkoja.\nVoit muokata ja luoda omia SSID-verkkoja kohdassa SSIDt ",
"probe_desc": "Asiakkaan laitteita lähettävät koetinkyselypyynnöt kysyäkseen, onko tunnettu verkko lähellä.\nKäytä tätä hyökkäystä hämmentääkseen WiFi-seurantaohjelmia pyytämällä SSID-luettelossa määritettyjä verkkoja.\nOn epätodennäköistä, että tämä hyökkäys vaikuttaa kotiverkkoosi.",
"setting_version": "Versio, esim. v2.0.\nTämä asetus voidaan muuttaa vain lähdekoodissa.",
"setting_ssid": "Verkkokäyttöliittymän käytetyn tukiaseman SSID (jos käytössä).\nThe length must be between 1 and 31 characters.",
"setting_password": "Password of access point used for the web interface (if enabled).\nVerkon nimen pituuden on oltava 1 - 31 merkkiä.",
"setting_channel": "Oletus WiFi-kanava, jota käytetään käynnistettäessä.",
"setting_hidden": "Piilottaa Wi-FI tukiaseman, jota käytetään web-käyttöliittymässä (jos se on käytössä).",
"setting_captivePortal": "Ottaa käyttöön sidotun portaalin tukiasemalle (jos se on käytössä).",
"setting_autosave": "Mahdollistaa SSID-tunnusten, laitteen nimien ja asetusten automaattisen tallennuksen.",
"setting_autosavetime": "Automaattisen tallennuksen aikaväli millisekunteina.",
"setting_display": "Mahdollistaa käyttöliittymän näytöille (esim. OLED-näyttö).",
"setting_displayTimeout": "Aika sekunneissa, jonka jälkeen näyttö sammuu, kun se ei ole aktiivinen.\nVoit poistaa näytön aikakatkaisun käytöstä asettamalla sen arvoon 0.",
"setting_serial": "Mahdollistaa sarjaliitännän.\n Suositellaan, että sitä ei poisteta käytöstä.",
"setting_serialEcho": "Mahdollistaa jokaisen saapuvan viestin kaiun sarjamuotoon.",
"setting_web": "Ottaa käyttöön web-käyttöliittymän.",
"setting_webSpiffs": "Ottaa käyttöön SPIFFS-tiedoston kaikille web-tiedostoille.",
"setting_led": "Ottaa käyttöön (RGB) LED-ominaisuuden.",
"setting_maxch": "Max. kanava jolla skannataan.\n US = 11, EU = 13, Japani = 14.",
"setting_macAP": "MAC-osoite, jota käytetään tukiasematilassa.\n Huomaa, että MAC-osoite korvaa vain sisäisen MAC-osoitteen, kun tukiasematila on käytössä.",
"setting_macSt": "MAC-osoite, jota käytetään asematilassa.\n Katso, että MAC-osoite korvaa vain sisäisen MAC-osoitteen, kun asema on käytössä.",
"setting_chtime": "Aika skannaa yksi kanava ennen siirtymistä seuraavaan millisekunteina (vain jos kanavan hopping on käytössä).",
"setting_minDeauths": "Vähimmäismäärä autentikointikehyksiä skannauksen aikana, jotta LED-valo palautuisi pois käytöstä.",
"setting_attacktimeout": "Kun määräaika (sekunteina) hyökkäys pysähtyy automaattisesti.\n Aseta se lukuun 0 sen poistamiseksi käytöstä.",
"setting_forcepackets": "Kuinka monta yritystä paketin lähettämiseen. \n Aseta tämä arvo korkeammalle, jos haluat saavuttaa paremman pakettinopeuden kiireisellä alueella. \n Huomaa tämä asetus saattaa tehdä laitteesta hitaamman tai epävakaamman. \n Max-arvo on 255!",
"setting_deauthspertarget": "Kuinka monta deautentikointi- ja disassociation kehystä lähetetään jokaiselle kohteelle.",
"setting_deauthReason": "Syykoodi, joka lähetetään deauth-kehyksillä kertoo kohdelaitteelle, miksi yhteys suljetaan.",
"setting_beaconchannel": "Jos tämä toiminto on käytössä, lähetät kaikki kehykset eri kanaville, kun käytetään majakka-hyökkäystä.",
"setting_beaconInterval": "Jos asetetaan true, lähettimet lähetetään joka sekunti. Jos asetuksena on väärä, aikaväli on 100 ms. \n Pidempi aikaväli merkitsee pakettien vakautta ja vähemmän roskapostia, mutta saattaa kestää kauemmin, kunnes asiakkaat löytävät ssidit skannauksen aikana.",
"setting_randomTX": "Mahdollistaa satunnaistetun lähetystehon lähettämällä majakka- ja koetinkyselykehyksiä.",
"setting_probesPerSSID": "Kuinka monta koetinkyselyn kehystä lähetetään jokaiselle SSID: lle",
"setting_lang": "Web-käyttöliittymän oletuskieli. \n Varmista, että kielitiedosto on olemassa!"
}

View File

@@ -0,0 +1,75 @@
{
"lang": "fr",
"warning": "ATTENTION",
"disclaimer": "Ce projet est une preuve de concept destinée a l'usage éducatif.\nNi l'ESP8266 ni le SDK ne sont initialement prévus pour cette utilisation. Gare aux bugs !\n\nÀ n'utiliser qu'avec votre réseau privé et sur vos propres appareils !\n\nCe projet utilise des trames WiFi valides telles que décrites dans le standard IEEE 802.11; a noter qu'aucun blocage ou brouillage n'est effectué sur les fréquences utilisées.\nVeillez à bien vérifier les lois en vigueur dans votre pays avant de vous en servir.\n\nNote: ceux qui parlent de ce projet en tant que \"brouilleur\" ou \"jammer\" ou qui copient le contenu sans fournir d'explications ne font que prouver leur méconnaissance sur le sujet ou leurs intentions de générer des titres putaclic sans respecter la propriété intellectuelle, la communauté ou l'effort fourni pour obtenir un meilleur standard WiFi.\n\nPour plus d'informations sur le sujet, rendez-vous sur:",
"disclaimer-button": "J'ai lu et compris le texte ci-dessus",
"reload": "Rafraîchir",
"scan": "Scanner",
"ssids": "SSIDs",
"attacks": "Attaques",
"settings": "Paramètres",
"info": "Info",
"info_span": "INFO: ",
"all": "Tous",
"channel": "Channel",
"devices": "Appareils enregistrés",
"select_all": "Tout sélectionner",
"deselect_all": "Tout désélectionner",
"remove_all": "Tout supprimer",
"station_scan_time": "Durée du Scan de Stations",
"new": "Nouveau",
"save": "Enregistrer",
"add": "Ajouter",
"add_selected": "Cloner les APs",
"overwrite": "Écraser",
"time_interval": "Intervalle",
"number": "Nombre",
"targets": "Cibles",
"scan_info": "- Cliquer sur \"Scanner\" et attendre jusqu'à ce que la LED bleue s'éteigne ou passe au vert, puis cliquer sur \"Rafraîchir\".\n- L'interface web sera inaccessible pendant le scan des stations et il faudra probablement reconnecter le WiFi !\n- Ne sélectionner qu'une seule cible !\n",
"ssids_info": "- Les SSID dans cette liste sont utilisés pour les deux modes d'attaques Balise et Sonde.\n- Chaque SSID peut contenir jusqu'à 32 caractères.\n- Ne pas oublier denregistrer après l'édition :)\n- Il faut rafraîchir après avoir cloné un SSID.\n",
"attack_info": "- Toute attaque peut déclencher une déconnexion !\n- Il faut sélectionner une cible pour l'attaque deauth.\n- Il faut au moins un SSID enregistré pour que les modes d'attaque Balise et Sonde fonctionnent.\n- Cliquer sur Rafraîchir pour mettre à jour le taux de paquets.\n",
"settings_info": "- Certains changements de paramètres nécessitent de relancer l'appareil.\n- Pensez à cliquer sur Enregistrer.\n",
"info_disclaimer": "En cas d'erreur inattendue, le moniteur série peut fournir de précieuses informations et aider au debug.",
"start_stop": "DÉMARRER / STOPPER",
"start": "DÉMARRER",
"stop": "STOPPER",
"wifi_off": "WiFi arrêté",
"reboot": "Rebouter",
"reset": "Remise à zéro",
"enable_random": "Activer le mode entropique",
"disable_random": "Désactiver le mode entropique",
"random_desc": "Déclare un liste de SSID au hasard et à intervalle régulier.",
"deauth_desc": "Force la fermeture des appareils WiFi sélectionnés en envoyant des trames de désauthentification aux points daccès auquel ils sont connectés.\nCette situation n'existe que parce que la majorité des appareils WiFi actuels n'implémentent pas le standard 802.11w-2009 qui offre une protection contre ce genre d'attaque.\n- Attention a ne sélectionner qu'une seule cible, sans quoi vous perdrez accès à l'interface web à cause des sauts incessants entre les différents channels.\n",
"beacon_desc": "Un paquet 'balise' est généralement utilisé pour annoncer l'existence d'un point daccès. L'envoi incessant de paquets balise permet de faire croire à la création ininterrompue de ces réseaux WiFi.\nLes noms de ces réseaux peuvent être spécifiés dans la section SSIDs.",
"probe_desc": "Les demandes de sondes sont effectuées par l'appareil client afin de demander si un réseau connu est proche.\nCette attaque peut semer la confusion auprès des war walkers ou autres appareils de tracking WiFi, et peut être personnalisée en spécifiant une liste de SSIDs.\nElle est très peu impactante sur les réseaux domestiques.",
"setting_version": "Numéro de version, ex: v2.0.\nCe paramètre ne peut être changé qu'en recompilant le code.",
"setting_ssid": "Le SSID du point daccès utilisé pour l'interface web (si activée).\nEntre 1 et 31 caractères, maximum 8 émojis.",
"setting_password": "Le mot de passe du point daccès utilisé pour l'interface web (si activée).\nEntre 8 et 31 caractères.",
"setting_channel": "Le channel WiFi par défaut au démarrage.",
"setting_hidden": "Masque le point daccès qui est utilisé pour l'interface web (si activée).",
"setting_captivePortal": "Active le portail captif pour le point daccès (si activé).",
"setting_autosave": "Active l'enregistrement automatique des SSIDs et noms d'appareils dans les paramètres.",
"setting_autosavetime": "Intervalle de temps entre deux enregistrements automatiques (en millisecondes).",
"setting_display": "Active l'écran.",
"setting_displayTimeout": "Temps d'inactivité avant que l'écran ne s'éteigne automatiquement (en secondes).\nRenseigner 0 pour désactiver.",
"setting_serial": "Active l'interface série.\nIl n'est pas recommandé de la désactiver !",
"setting_serialEcho": "Enables echo for each incoming message over serial.",
"setting_web": "Active l'interface Web.",
"setting_webSpiffs": "Enables SPIFFS for all web files.",
"setting_led": "Active la LED RGB.",
"setting_maxch": "Nb Max. de channel a scanner.\nUS = 11, EU = 13, Japon = 14.",
"setting_macAP": "Adresse MAC utilisée par le mode point daccès.\nNote: ne remplace que l'adresse MAC interne quand le mode point daccès est actif.",
"setting_macSt": "Adresse MAC utilisée par le mode station.\nNote: ne remplace que l'adresse MAC interne quand le mode station est actif.",
"setting_chtime": "Temps passé a scanner un channel en millisecondes (seulement si le saut de channel est activé).",
"setting_minDeauths": "Nombre minimum de trames de désauthentification détectées pendant le scan pour passer la LED en mode deauth.",
"setting_attacktimeout": "Au bout de combien de secondes l'attaque doit stopper.\nRenseigner 0 pour désactiver la limite.",
"setting_forcepackets": "Nombre d'essais pour chaque envoi de paquet.\nRenseigner une valeur plus haute dans les zones saturées.\nCe paramètre peut aussi ralentir l'appareil, voire le rendre inutilisable.\nToujours renseigner une valeur Entre 0 et 255 !",
"setting_deauthspertarget": "Combien de trames de désauthentification et dissociation sont envoyées à chaque cible.",
"setting_deauthReason": "Le code 'raison' (ou mot d'excuse) qui est envoyé avec toutes les trames de désauthentification et qui précise pourquoi la connection va être fermée.",
"setting_beaconchannel": "Affecte l'attaque Balise en distribuant les paquets sur différents channels.",
"setting_beaconInterval": "Actif: envoie des balises toutes les secondes. Inactif: envoie des balises tous les 100ms.\nPlus l'intervalle est grand plus l'ESP reste stable, et mois les effets de l'attaque se font sentir.",
"setting_randomTX": "Fait varier la puissance de transmission en mode balise, sonde ou demande de sonde.",
"setting_probesPerSSID": "Combien de demandes de sondes sont envoyées pour chaque SSID.",
"setting_lang": "Langage par défaut dans l'interface web.\nAssurez vous que le langage existe !"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "it",
"warning": "AVVERTIMENTO",
"disclaimer": "Questo progetto è una prova di concetto per scopi di test e didattici. \nNè l'ESP8266, né il relativo SDK sono stati progettati o costruiti per tali scopi. \n\nUtilizza i frame Wi-Fi validi descritti nello standard IEEE 802.11 e non bloccare o interrompere alcuna frequenza. \nSi prega di verificare le normative legali del proprio paese prima di utilizzarlo. \n\nSi prega di non fare riferimento a questo progetto come \"jammer\", questo mina totalmente il vero scopo di questo progetto!\nSe lo fai, dimostri solo che non hai capito nulla di ciò che questo progetto rappresenta. \nPubblicare il contenuto senza una spiegazione adeguata dimostra che lo fai solo per clic, fama e/o denaro e non ha alcun rispetto per la proprietà intellettuale, la comunità dietro di esso e la lotta per un migliore standard WiFi. \n\nPer maggiori informazioni visita:",
"disclaimer-button": "Ho letto e capito l'avviso di cui sopra",
"reload": "Ricaricare",
"scan": "scansione",
"ssids": "SSIDs",
"attacks": "Attacchi",
"settings": "Impostazioni",
"info": "Informazioni",
"info_span": "INFO: ",
"all": "Tutti",
"channel": "Canale",
"devices": "Dispositivi salvati",
"select_all": "Seleziona Tutto",
"deselect_all": "Deseleziona Tutto",
"remove_all": "Rimuovi Tutto",
"station_scan_time": "Tempo di scansione della stazione",
"new": "Nuovo",
"save": "Salvare",
"add": "Inserisci",
"add_selected": "Clona gli APs selezionati",
"overwrite": "Sovrascrivere",
"time_interval": "Intervallo di tempo",
"number": "Numero",
"targets": "Obiettivi",
"scan_info": "- Fai clic su Scansione e attendi fino a quando il LED blu sulla scheda si spegne (o diventa verde), quindi fai clic su Ricarica.\n- L'interfaccia web non sarà disponibile durante la scansione di una stazione e dovrai riconnetterti!\n- Seleziona solo un obiettivo!\n",
"ssids_info": "- Questo elenco SSID viene utilizzato per l'attacco beacon e probe.\n- Ogni SSID può contenere fino a 32 caratteri.\n- Non dimenticare di fare clic su Salva quando hai modificato un SSID.\n- Devi fare clic su Ricarica dopo la clonazione SSID.\n",
"attack_info": "- Potresti perdere la connessione quando avvii un attacco!\n- Devi selezionare un bersaglio per l'attacco deauth.\n- Hai bisogno di un SSID salvato per l'attacco beacon e l'attacco Probe.\n- Fai clic su ricarica per aggiornare la velocità del pacchetto.\n",
"settings_info": "- Alcune impostazioni richiedono un riavvio.\n- Fai clic su Salva per assicurarti che le modifiche siano applicate.\n",
"info_disclaimer": "In caso di errore imprevisto, ricarica il sito e controlla il monitor seriale per ulteriori debug.",
"start_stop": "AVVIO / STOP",
"start": "AVVIO",
"stop": "STOP",
"wifi_off": "WiFi Off",
"reboot": "Riavvio",
"reset": "Reset",
"enable_random": "Abilita la modalità casuale",
"disable_random": "Disabilita la modalità casuale",
"random_desc": "Abilitare la modalità casuale per generare un elenco SSID casuale in un dato intervallo.",
"deauth_desc": "Chiude la connessione dei dispositivi WiFi inviando i frame di deautenticazione agli access point e ai dispositivi client selezionati.\nQuesto è possibile solo perché molti dispositivi non utilizzano lo standard 802.11w-2009 che offre una protezione contro questo attacco.\n- Si prega di selezionare solo un bersaglio! Quando selezioni più bersagli che vengono eseguiti su canali diversi e avvii l'attacco, passerà rapidamente da questi canali e non avrai alcuna possibilità di riconnetterti all'interfaccia web.\n",
"beacon_desc": "I pacchetti beacon vengono utilizzati per pubblicizzare i punti di accesso. Inviando continuamente pacchetti di beacon, sembrerà che tu abbia creato nuove reti WiFi.\nÈ possibile specificare i nomi di rete sotto SSID.",
"probe_desc": "Le richieste di probe vengono inviate dai dispositivi client per chiedere se una rete nota si trova nelle vicinanze.\nUtilizzare questo attacco per confondere i tracker WiFi chiedendo le reti specificate nell'elenco SSID.\nÈ improbabile che non vedrete alcun impatto da questo attacco con la vostra rete Casalinga.",
"setting_version": "Numero di versione, ad esempio v2.0.\nQuesta impostazione può essere modificata solo nel codice sorgente.",
"setting_ssid" : "SSID del punto di accesso utilizzato per l'interfaccia Web (se abilitato).\nLa lunghezza deve essere compresa tra 1 e 31 caratteri.",
"setting_password": "Password del punto di accesso utilizzata per l'interfaccia Web (se abilitata).\nLa lunghezza deve essere compresa tra 8 e 31 caratteri.",
"setting_channel": "Canale WiFi predefinito che viene utilizzato all'avvio.",
"setting_hidden": "Nasconde il punto di accesso utilizzato per l'interfaccia Web (se abilitato).",
"setting_captivePortal": "Abilita il captive portal per il punto di accesso (se abilitato).",
"setting_autosave": "Abilita il salvataggio automatico di SSID, nomi di dispositivi e impostazioni.",
"setting_autosavetime": "Intervallo di tempo per il salvataggio automatico in millisecondi.",
"setting_display": "Abilita l'interfaccia display.",
"setting_displayTimeout": "Tempo in secondi dopo il quale il display si spegne quando inattivo.\nPer disabilitare il timeout del display, impostarlo su 0.",
"setting_serial": "Abilita l'interfaccia seriale.\nSi consiglia di non disattivarlo!",
"setting_serialEcho": "Abilita la ripetizione per ogni messaggio in arrivo su seriale.",
"setting_web": "Abilita l'interfaccia web.",
"setting_webSpiffs": "Abilita SPIFFS per tutti i file Web.",
"setting_led": "Abilita la funzione LED (RGB).",
"setting_maxch": "Max. canale su cui eseguire la scansione.\nUS = 11, EU = 13, Japan = 14.",
"setting_macAP": "Indirizzo MAC utilizzato per la modalità punto di accesso.\nSi noti che l'indirizzo MAC sostituirà solo l'indirizzo MAC interno quando la modalità punto di accesso è abilitata.",
"setting_macSt": "Indirizzo MAC utilizzato per la modalità stazione.\nSi prega di notare che l'indirizzo MAC sostituirà solo l'indirizzo MAC interno quando la modalità stazione è abilitata.",
"setting_chtime": "Tempo di scansione di un canale prima di passare al successivo in millisecondi (solo se il passaggio del canale è abilitato).",
"setting_minDeauths": "Numero minimo di frame di deautenticazione durante la scansione per cambiare la modalità LED in Deauth.",
"setting_attacktimeout": "Dopo quanto tempo (in secondi) l'attacco si fermerà automaticamente.\nImpostalo su 0 per disabilitarlo.",
"setting_forcepackets": "Quanti tentativi di invio di un pacchetto.\nImpostare questo valore più alto se si desidera ottenere una migliore velocità di pacchetto in un'area occupata.\nAttenzione che questa impostazione può rendere il dispositivo più lento o più instabile.\nIl valore massimo è 255!",
"setting_deauthspertarget": "Quanti frame di deautenticazione e disassociazione vengono inviati per ciascun target.",
"setting_deauthReason": "Il codice motivo che viene inviato con i frame deauth per dire al dispositivo di destinazione perché la connessione verrà chiusa.",
"setting_beaconchannel": "Se abilitato, invierà tutti i frame su diversi canali durante l'esecuzione di un attacco beacon.",
"setting_beaconInterval": "Se impostato vero, i beacon verranno inviati ogni secondo. Se impostato su falso, l'intervallo sarà 100 ms.\nUn intervallo più lungo significa maggiore stabilità e meno spamming dei pacchetti, ma potrebbe richiedere più tempo fino a quando i client trovano gli SSID durante la scansione.",
"setting_randomTX": "Abilita potenza di trasmissione randomizzata per l'invio di richieste frames di beacon e probe.",
"setting_probesPerSSID": "Quanti frames di richiesta probe vengono inviati per ciascun SSID.",
"setting_lang": "Lingua predefinita per l'interfaccia Web.\nAssicurarsi che il file della lingua esista!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "ro",
"warning": "ATENȚIE",
"disclaimer": "Acest proiect este o dovadă a conceptului de testare și scopuri educaționale.\nESP8266 si SDK-ul nu au fost create pentru astfel de scopuri. Pot apărea bug-uri!\n\nUtilizați-l numai pe propriile rețele și dispozitive!\n\nAcest soft foloseste cadre valide Wifi descrise în standartul IEEE 802.11 și nu blochează sau întrerupe nici o frecvență.\nVerificați reglementările legale din țara dvs. înainte de a le utiliza.\n\nNu vă referiți la acest proiect ca o \"statie de brutaj\", acesta descridită complet scopul real al acestui proiect!\nDacă o faci,aceasta dovedește doar că nu ați înțeles nimic despre din ceea ce reprezintă acest proiect..\nPublicarea conținutului despre aceasta fără o explicație adecvată arată că o faceți doar pentru clicuri, faimă și / sau bani și că nu aveți respect pentru proprietatea intelectuală, comunitatea din spatele ei și lupta pentru un standard WiFi mai bun.\n\nPentru mai multe informații vizitați:",
"disclaimer-button": "Am citit și am înțeles nota de mai sus",
"reload": "Reîncarcă",
"scan": "Scanați",
"ssids": "SSID-uri",
"attacks": "Atacuri",
"settings": "Setări",
"info": "Info",
"info_span": "INFO: ",
"all": "Toate",
"channel": "Canal",
"devices": "Dispozitive salvate",
"select_all": "Selectează tot",
"deselect_all": "Deselectați tot",
"remove_all": "Inlătură tot",
"station_scan_time": "Timp de scanare a stației",
"new": "Nou",
"save": "Salvați",
"add": "Adăuga",
"add_selected": "Clonează AP-urile selectate",
"overwrite": "Suprascriere",
"time_interval": "Interval de timp",
"number": "Număr",
"targets": "Țintă",
"scan_info": "- Faceți clic pe Scanare și așteptați până când LED-ul albastru de pe tablă se oprește (sau se schimbă în verde), apoi faceți clic pe Reîncărcare.\n- Interfața web nu va fi disponibilă în timpul scanării unui post și va trebui să vă reconectați!\n- Selectați doar o singură țintă!\n",
"ssids_info": "- Această listă SSID este utilizată pentru atacul sondei și sondei.\n- Fiecare SSID poate avea până la 32 de caractere.\n- Nu uitați să faceți clic pe Salvați când ați editat un SSID.\n- Trebuie să faceți clic pe Reîncărcați după clonarea SSID-urilor.\n",
"attack_info": "- S-ar putea să pierdeți conexiunea când începeți un atac!\n- Trebuie să selectați o țintă pentru atacul deauth.\n- Aveți nevoie de un SSID salvat pentru atacul sondei și sondei.\n- Faceți clic pe reîncărcați pentru a actualiza rata de pachete.\n",
"settings_info": "- Unele setări necesită repornire.\n- Faceți clic pe Salvați pentru a vă asigura că modificările sunt aplicate.\n",
"info_disclaimer": "În cazul unei erori neașteptate, reîncărcați site-ul și examinați monitorul serial pentru o depanare ulterioară.",
"start_stop": "START / STOP",
"start": "START",
"stop": "STOP",
"wifi_off": "Stingeti wifi-ul",
"reboot": "Reporniți",
"reset": "Restabili",
"enable_random": "Activați modul aleatoriu",
"disable_random": "Dezactivați modul aleatoriu",
"random_desc": "Activați modul aleatoriu pentru a genera o listă aleatorie SSID într-un interval dat.",
"deauth_desc": "Închide conexiunea dispozitivelor WiFi prin trimiterea cadrelor de autentificare pentru a accesa punctele și dispozitivele client selectate.\nAcest lucru este posibil numai pentru că o mulțime de dispozitive nu utilizează standardul 802.11w-2009 care oferă o protecție împotriva acestui atac.\n- Selectați doar o singură țintă! Când selectați mai multe ținte care rulează pe diferite canale și începeți atacul, acesta va comuta rapid între acele canale și nu aveți nicio șansă să vă reconectați la interfața web.\n",
"beacon_desc": "Pachetele de baliză sunt utilizate pentru a face publicitate punctelor de acces. Prin trimiterea continuă a pachetelor de baliză, va părea că ați creat noi rețele WiFi.\nPuteți specifica numele rețelei sub SSID-uri.",
"probe_desc": "Solicitările sonde sunt trimise de dispozitivele client pentru a întreba dacă o rețea cunoscută este în apropiere.\nUtilizați acest atac pentru a confunda trackerele WiFi solicitând rețelele pe care le-ați specificat în lista SSID.\nEste puțin probabil că veți vedea impactul acestui atac cu rețeaua dvs. de domiciliu.",
"setting_version": "Versiunea numarul, i.e. v2.0.\nAceastă setare poate fi modificată numai în codul sursă.",
"setting_ssid" : "SSID al punctului de acces utilizat pentru interfața web (dacă este activat).\nLungimea trebuie să fie cuprinsă între 1 și 31 de caractere.",
"setting_password": "Parola punctului de acces utilizat pentru interfața web (dacă este activată).\nLungimea trebuie să aibă între 8 și 31 de caractere.",
"setting_channel": "Canal WiFi prestabilit utilizat la pornire.",
"setting_hidden": "Ascunde punctul de acces utilizat pentru interfața web (dacă este activat).",
"setting_captivePortal": "Activează portalul captiv pentru punctul de acces (dacă este activat).",
"setting_autosave": "Permite salvarea automată a SSID-urilor, a numelor dispozitivelor și a setărilor.",
"setting_autosavetime": "Interval de timp pentru salvarea automată în milisecunde.",
"setting_display": "Activează interfața de afișare.",
"setting_displayTimeout": "Timpul în secunde după care afișajul se stinge când este inactivă.\nPentru a dezactiva expirarea timpului de afișare, setați-l la 0.",
"setting_serial": "Activează interfața serială.\nNu este recomandat să-l dezactivați!",
"setting_serialEcho": "Permite ecou pentru fiecare mesaj primit peste serial.",
"setting_web": "Activează interfața web.",
"setting_webSpiffs": "Activează SPIFFS pentru toate fișierele web.",
"setting_led": "Permite caracteristica LED (RGB).",
"setting_maxch": "Max. canal pentru scanare.\nUS = 11, EU = 13, Japonia = 14.",
"setting_macAP": "Adresa MAC folosită pentru modul punct de acces.\nRețineți că adresa MAC va înlocui numai adresa MAC internă când modul de punct de acces este activat.",
"setting_macSt": "Adresa MAC folosită pentru modul stație.\nRețineți că adresa MAC va înlocui numai adresa MAC internă când modul stație este activat.",
"setting_chtime": "Timp pentru scanarea unui canal înainte de a trece la următoarea în milisecunde (numai dacă este activată alunecarea canalului).",
"setting_minDeauths": "Numărul minim de cadre de autentificare la scanare pentru a schimba modul LED-uri în modul de atestat.",
"setting_attacktimeout": "După ce timp (în secunde) atacul se va opri automat.\nSetați-l la 0 pentru al dezactiva.",
"setting_forcepackets": "Câte încercări de a trimite un pachet.\nSetați această valoare mai mare dacă doriți să obțineți o rată de pachet mai bună într-o zonă ocupată.\nAveți grijă ca această setare să facă aparatul mai lent sau mai instabil.\nValoarea maximă este 255!",
"setting_deauthspertarget": "Câte cadre de autentificare și de dezasociune sunt trimise pentru fiecare țintă.",
"setting_deauthReason": "Codul motiv care este trimis cu cadrele de deaut pentru a indica dispozitivului destinație de ce conexiunea va fi închisă.",
"setting_beaconchannel": "Dacă este activată, va trimite toate cadrele pe diferite canale atunci când rulează un atac de baliză.",
"setting_beaconInterval": "Dacă este setat corect, balize vor fi trimise în fiecare secundă. Dacă este setat la false, intervalul va fi de 100ms.\nUn interval mai lung înseamnă mai multă stabilitate și mai puțin spam de pachete, dar ar putea dura mai mult până când clienții găsesc ssids atunci când scanează.",
"setting_randomTX": "Permite puterea de transmisie randomizată pentru trimiterea cadrelor de baliză și a sondei.",
"setting_probesPerSSID": "Câte cadre de solicitare a sondei sunt trimise pentru fiecare SSID.",
"setting_lang": "Limba prestabilită pentru interfața web.\nAsigurați-vă că fișierul de limbă există!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "ru",
"warning": "ПРЕДУПРЕЖДЕНИЕ",
"disclaimer": "Этот проект можно использовать только для тестирования и в образовательных целях. \n Используйте его только для своих сетей и устройств! \n Использует действительные фреймы Wi-Fi, описанные в стандарте IEEE 802.11, не блокирует и не прерывает какие-либо частоты.\nПожалуйста, ознакомьтесь с правовыми нормами в своем страны, прежде чем использовать этот код. \n\nПожалуйста, не обращайтесь к этому проекту как «jammer», что полностью подрывает реальную цель этого проекта! \nЕсли вы это сделаете, это только докажет, что вы ничего не понимали из того, что этот проект означает. \n Публикация контента об этом без надлежащего объяснения показывает, что вы делаете это только за клики, славу и деньги и не уважаете интеллектуальную собственность, сообщество за ней и борьбу за лучший стандарт WiFi . \n\nДля получения дополнительной информации посетите:",
"disclaimer-button": "Я прочитал и понял сообщение выше",
"reload": "Обновить",
"scan": "Сканировать",
"ssids": "SSIDs",
"attacks": "Атаки",
"settings": "Конфигурация",
"info": "Информация",
"info_span": "Информация: ",
"all": "Все",
"channel": "Канал",
"devices": "Сохранить устройство",
"select_all": "Выбрать все",
"deselect_all": "Отменить все",
"remove_all": "Удалить все",
"station_scan_time": "Время сканирования станций",
"new": "Новое",
"save": "Сохранить",
"add": "Добавить",
"add_selected": "Клонировать выбранные APs",
"overwrite": "Затереть",
"time_interval": "Временной интервал",
"number": "Номер",
"targets": "Цели",
"scan_info": "- Нажмите «Сканировать» и подождите, пока синий светодиод на вашей плате не погаснет (или не станет зеленым), а затем нажмите «Обновить». \n- Веб-интерфейс будет недоступен во время сканирования сети, и вам нужно будет снова подключиться! \n- Пожалуйста, выберите только одну цель! \n",
"ssids_info": "- Этот список SSID используется для атаки маяка и зонда. \n- Каждый SSID может содержать до 32 символа. \n- Не забудьте нажать «Сохранить», когда вы отредактировали SSID. \n- Вы должны нажать «Обновить» после клонирования SSID. \n",
"attack_info": "- Вы можете потерять соединение при запуске атаки! \n- Вам нужно выбрать цель для атаки deauth. \n- Вам нужен сохраненный SSID для атаки маяка и зонда. \n- Нажмите перезагрузить, чтобы обновить скорость передачи пакетов. \n",
"settings_info": "- Некоторые настройки требуют перезагрузки. \n- Нажмите «Сохранить», чтобы убедиться, что ваши изменения применены. \n",
"info_disclaimer": "В случае непредвиденной ошибки перезагрузите сайт и посмотрите на последовательный монитор для дальнейшей отладки.",
"start_stop": "СТАРТ / СТОП",
"start": "СТАРТ",
"stop": "СТОП",
"wifi_off": "WiFi Выключить",
"reboot": "Перезагрузить",
"reset": "Сброс",
"enable_random": "Включить Рандомный режим",
"disable_random": "Выключить Рандомный режим",
"random_desc": "Включите случайный режим для создания случайного списка SSID в заданный интервал.",
"deauth_desc": "Закрывает подключение WiFi-устройств, отправляя фреймы деаутентификации для доступа к точкам и выбранным клиентским устройствам. \nЭто возможно только потому, что многие устройства не используют стандарт 802.11w-2009, который обеспечивает защиту от этой атаки. \n- Выберите только одну цель! Когда вы выбираете несколько целей, которые запускаются на разных каналах и запускают атаку, они быстро переключаются между этими каналами, и у вас нет шансов повторно подключиться к веб-интерфейсу. \n",
"beacon_desc": "Маяковые пакеты используются для рекламы точек доступа. Постоянно отправляя пакеты маяковых радиостанций, это будет выглядеть так, как будто вы создали новые WiFi-сети. \nВы можете указать сетевые имена под SSID.",
"probe_desc": "Запросы зонда отправляются клиентскими устройствами, чтобы спросить, находится ли известная сеть поблизости. \nИспользуйте эту атаку, чтобы запутать WiFi-трекеры, запросив сети, которые вы указали в списке SSID. \nВ маловероятно, что вы увидите какое-либо влияние этой атаки на ваш домашнюю сеть.",
"setting_version": "Номер версии, т. Е. V2.0. \nЭту настройку можно изменить только в исходном коде.",
"setting_ssid" : "SSID точки доступа, используемой для веб-интерфейса (если разрешено). \n Длина должна быть от 1 до 31 символа.",
"setting_password": "Пароль точки доступа, используемой для веб-интерфейса (если включен). \n Длина должна быть от 8 до 31 символа.",
"setting_channel": "Стандартный WiFi-канал, который используется при запуске.",
"setting_hidden": "Скрывает точку доступа, которая используется для веб-интерфейса (если включена).",
"setting_captivePortal": "Включает доступный портал для точки доступа (если включен).",
"setting_autosave": "Включает автоматическое сохранение SSID, имен устройств и настроек.",
"setting_autosavetime": "Интервал времени для автоматического сохранения в миллисекундах.",
"setting_display": "Включает интерфейс отображения.",
"setting_displayTimeout": "Время в секундах, после которого дисплей выключается, когда он неактивен. \nЧтобы отключить таймаут отображения, установите его в 0.",
"setting_serial": "Включает последовательный интерфейс. \nНе рекомендуется не отключать его!",
"setting_serialEcho": "Включает эхо для каждого входящего сообщения через последовательный порт.",
"setting_web": "Включает веб-интерфейс.",
"setting_webSpiffs": "Включает SPIFFS для всех веб-файлов.",
"setting_led": "Включает функцию (RGB) LED.",
"setting_maxch": "Максимальный канал для сканирования. \nUS = 11, EU = 13, Япония = 14.",
"setting_macAP": "MAC-адрес, используемый для режима точки доступа. \nОбратите внимание, что MAC-адрес заменяет только внутренний MAC-адрес, когда включен режим точки доступа.",
"setting_macSt": "MAC-адрес, используемый для режима станции. \nПожалуйста, обратите внимание, что MAC-адрес заменит только внутренний MAC-адрес, когда включен режим станции.",
"setting_chtime": "Время сканирования одного канала перед переходом к следующему в миллисекундах (только если включен переключение каналов).",
"setting_minDeauths": "Минимальное количество кадров деаутентификации при сканировании для изменения светодиода в режим deauth.",
"setting_attacktimeout": "Через какое время (в секундах) атака автоматически остановится. \nУстановите ее на 0, чтобы отключить ее.",
"setting_forcepackets": "Сколько попыток отправить пакет. \nУстановите это значение выше, если вы хотите достичь более высокой скорости передачи пакетов в загруженной области. \nУбедитесь, что этот параметр может сделать устройство более медленным или более неустойчивым. \nМаксимальное значение - 255!",
"setting_deauthspertarget": "Сколько кадров деаутентификации и дизассемблирования отправляется для каждой цели.",
"setting_deauthReason": "Код причины, который отправляется с кадрами deauth, чтобы сообщить целевому устройству, почему соединение будет закрыто.",
"setting_beaconchannel": "Если включено, будет отправлено все кадры по разным каналам при запуске атаки маяка.",
"setting_beaconInterval": "Если установлено true, маяки будут отправляться каждую секунду. Если установлено значение false, интервал будет равен 100 мкс. \nA более длительный интервал означает большую стабильность и меньше спама пакетов, но это может занять больше времени, пока клиенты не найдут ssids при сканировании.",
"setting_randomTX": "Позволяет рандомизированную мощность передачи для отправки кадров маяка и зонда запроса.",
"setting_probesPerSSID": "Сколько кадров запроса запроса отправляется для каждого SSID.",
"setting_lang": "Язык по умолчанию для веб-интерфейса. \nУбедитесь, что языковой файл существует!"
}

View File

@@ -0,0 +1,74 @@
{
"lang": "tlh",
"warning": "WARNING",
"disclaimer": "jInmol tob concept waH 'ej educational ngoQ. nneither qej esp8266, 'ej \nsdk joq vIq ngoQ qach. laH may' yotlhDaq ghew! nnuse 'oH neH against \nnetworks jan 'ej! mub regulations neH Sep check nnit lo' neH ieee 802.11\n Hol Del 'ej wej bot pagh vay' Se'. nplease nIS Dalbogh qeylIS-fi valid \npa' it.nnplease yIlo' Qo' refer je \"jammer jInmol\", wImevmo' jInmol real\n totally undermines 'e'! nif SoHvaD, 'e' vay' nuq for. npublishing 'a \nghIH vIHtaHbogh Hutlh Hutlh proper Qam jInmol vIchel yaj SoH neH tob 'oH\n 'e' neH ruch clicks, fame qoj Huch 'ej pagh wIqelDI', maHeDnIS \nintellectual bang ghaj, latlh De' Such De''e' 'oH je SuvtaHvIS Dunmo' \nwifi standard.nnfor community cha' SuvwI' explanation:",
"disclaimer-button": "laD je tu' wovbe' yaj jIH",
"reload": "Reload",
"scan": "Hotlh",
"ssids": "SSIDs",
"attacks": "HIv",
"settings": "HIjmeH",
"info": "De'",
"info_span": "De': ",
"all": "Hoch",
"channel": "Channel",
"devices": "toD jan",
"select_all": "Hoch wIv",
"deselect_all": "Hoch de-wIv",
"remove_all": "Hoch teq",
"station_scan_time": "yaH Hotlh poH",
"new": "chu'",
"save": "choq",
"add": "boq",
"add_selected": "wIv ap clone",
"overwrite": "rIn ghItlh",
"time_interval": "poH interva",
"number": "ml'",
"targets": "ray'",
"scan_info": "-Hotlh click 'ej loS until tlhe' (pagh choH SuD SuD led tIj), vaj click Reload. n-'ej bebvo' interface unavailable during yaH Hotlh 'ej reconnect Daghaj! DubelmoHchugh neH wa' DoS wIv n-! n\n",
"ssids_info": "-lo' tetlh ssid beacon 'op Reload click qaSpu'DI' ssid. n cloning nejwI' HIv. n-Hoch ssid laH Da'elDI' vItoDmeH ghorgh ssid.n-SoH edited SoH click ghewmey lIj 32 vuDmey'e'. \n",
"attack_info": "-connection chaq luj SoH HeghDI' HIv starting! n-DoS wIv bImejnIS deauth reload HIv. n-toD ssid nIS beacon 'ej HIv. n-Click nejwI' packet rate. n refresh",
"settings_info": "-toD reboot. n-Click vay' be 'e' applied choH, qatlh poQ 'op settings. n",
"info_disclaimer": "in case of unexpected Qagh, nuqneH Daq reload 'ej legh jIH serial qaStaHvIS debugging.",
"start_stop": "start ghap mev",
"start": "START",
"stop": "mev",
"wifi_off": "wofo DoH",
"reboot": "re DaS",
"reset": "re HIjmeH",
"enable_random": "Enable Random Mode",
"disable_random": "Disable Random Mode",
"random_desc": "random mode random ssid yoSvetlhDaq generate reH wInobqang interval enable.",
"deauth_desc": "wifi jan connection SoQ pong jan wIv SoHvaD ngeH deauthentication Dalbogh naw' lang client 'ej. nthis DuH neH SeH 802.11w ghewmey lo' jan nIvbogh-2009 Hol against HIv. n-protection offers nuqneH neH wa' DoS wIv! ghorgh multiple DoS 'e' qet pIm channels 'ej start HIv, nom leQ 'oH SabtaHbogh channels 'ej pagh 'eb reconnect 'ej bebvo' interface. n Daghaj wIv SoH",
"beacon_desc": "DanoHmeH beacon packets naw' lang advertise. pong continuously beacon packets 'e' yIQoy, 'oH ngeH network pong bopummeH ssid laH per legh rur chu' wifi networks. nyou chenmoH.",
"probe_desc": "ngeH nejwI' requests pong client jan tlhob vaj Sov network Sum. nuse networks wifi trackers mIS pong botlhobbogh HIv 'e' vay' mup DaqaSmoHbej pong HIv je juH Dachegh network per neH ssid tetlh. nit's ghaytanHa' SoH.",
"setting_version": "laH neH choH version mI', i.e. v2.0.nthis HIjmeH qaStaHvIS Hal ngoq.",
"setting_ssid": "naw' lang lo' 'ej bebvo' interface (vaj enabled) ssid. ghob'e' nthe 'ab SabtaHbogh vuDmey'e' 1 'ej 31.",
"setting_password": "naw' lang lo' 'ej bebvo' interface (vaj enabled) mu'wIj. ghob'e' nthe 'ab SabtaHbogh vuDmey'e' 8 'ej 31.",
"setting_channel": "default wifi channel choHwI'maj HeghDI' starting.",
"setting_hidden": "Hides the access point that is used for the web interface (if enabled).",
"setting_captivePortal": "naw' lang choHwI'maj 'ej bebvo' interface (vaj enabled) So'.",
"setting_autosave": "automatic saving ssid, jan pong 'ej settings enables.",
"setting_autosavetime": "poH interval automatic saving neH milliseconds.",
"setting_display": "interface cha' enables.",
"setting_displayTimeout": "qaSpu'DI' tlhe' bey' DoH HeghDI' inactive cha'DIch poH. bey' timeout Qotlh nto, 'oH lut'e' 0.",
"setting_serial": "serial interface. nit's 'oH Qotlh chup enables!",
"setting_serialEcho": "Enables echo for each incoming message over serial.",
"setting_web": "'ej bebvo' interface enables.",
"setting_webSpiffs": "Enables SPIFFS for all web files.",
"setting_led": "(rgb) led feature enables.",
"setting_maxch": "max. channel Hotlh. nus 11, eu = 13, nIpon = = 14.",
"setting_macAP": "mac SoQ lo' naw' lang mode. nplease note 'e' internal mac SoQ neH ngaSwI' yuvtlhe' wIngaQmoHta'DI' mac SoQ HeghDI' enabled accesspoint mode.",
"setting_macSt": "mac SoQ yaH mode. nplease note 'e' internal mac SoQ neH ngaSwI' yuvtlhe' wIngaQmoHta'DI' mac SoQ HeghDI' enabled yaH mode lo'.",
"setting_chtime": "Time for Qo'noS poH wa' channel Hotlh pa' ghoS jIbuSchoH neH milliseconds (neH vaj enabled channel hopping). one channel before going to the next in milliseconds (only if channel hopping is enabled).",
"setting_minDeauths": "deauthentication Dalbogh HeghDI' Hotlh led wIQaw'laH deauth mode minimum mI'.",
"setting_attacktimeout": "qaSpu'DI' poH (qaStaHvIS lup) amount nuq mev HIv automatically. nset 'oH 0 'oH Qotlh.",
"setting_forcepackets": "HoSghajbej janvam slower pagh vI'Iprup unstable vutmeH setting rate neH busy mIchHom. nbe chong 'ar nID lo'laHghach veb lungeH packet. nset vaj packet Dunmo' chav DaneH'a'. nmax lo'laHghach 255!",
"setting_deauthspertarget": "ngeH 'ar deauthentication disassociation 'ej Dalbogh Hoch DoS.",
"setting_deauthReason": "meq ngoq 'e' ngeH deauth Dalbogh jatlh DoS jan qatlh SoQ connection.",
"setting_beaconchannel": "vaj enabled, vaj Hoch Dalbogh ngeH pIm channels HeghDI' beacon HIv qet.",
"setting_beaconInterval": "vaj HIjmeH teH, ngeH beacons Hoch cha'DIch. tlhoy HIjmeH ngeb, interval 100ms.na nI'qu' neH stability 'ej qup spamming packets qej interval 'ach 'oH laH tlhap nI'qu' until ssids vItu' clients HeghDI' Hotlh.",
"setting_randomTX": "HoS ngeH beacon 'ej request Dalbogh nejwI' enables randomized transmission.",
"setting_probesPerSSID": "ngeH 'ar nejwI' request Dalbogh Hoch ssid.",
"setting_lang": "'ej bebvo' interface. nbe be nIv'e' Hol teywI' Hol default!"
}

View File

@@ -0,0 +1,23 @@
MIT License
Copyright (c) 2018 Stefan Kremser
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Do not redistribute, advertising or sell of this softwae as "jammer"!
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,26 @@
[
[
"b8:1d:aa:d5:6f:f0",
"don't!",
"[[[[not mine]]]]",
"",
1,
true
]
,[
"f4:6b:de:da:8d:95",
"Spacehuhn",
"--SpaceRouter!--",
"",
1,
false
]
,[
"00:11:22:33:44:55",
"TEST",
"JS sucks!",
"5c:37:3b:f7:67:be",
1,
true
]
]

View File

@@ -0,0 +1 @@
Empty file :D

View File

@@ -0,0 +1,110 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
<script src="js/scan.js"></script>
</head>
<body onload="loadLang()">
<nav>
<a href="scan.html" data-translate="scan">Scan</a>
<a href="ssids.html" data-translate="ssids">SSIDs</a>
<a href="attack.html" data-translate="attacks">Attacks</a>
<a href="settings.html" data-translate="settings">Settings</a>
<a class="right" href="info.html" data-translate="info">Info</a>
</nav>
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="scan">Scan</h1>
<button onclick="scan(0)">Scan APs</button>
<button onclick="scan(1)">Scan Stations</button>
<button onclick="load()" data-translate="reload" class="right">Reload</button>
</div>
</div>
<div class="row">
<div class="col-6">
<label for="ch" data-translate="channel">Channel</label>
</div>
<div class="col-6">
<select id="ch" name="ch">
<option value="all" data-translate="all">All</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
</select>
</div>
</div>
<div class="row">
<div class="col-6">
<label data-translate="station_scan_time">Station Scan Time</label>
</div>
<div class="col-6">
<input type="number" value="15" id="scanTime">s
</div>
</div>
<div class="row">
<div class="col-12">
<p>
<span class="red" data-translate="info_span">INFO: </span><br>
<span data-translate="scan_info">
- Click Scan and wait until the blue LED on your board turns off (or changes to green), then click on Reload.<br>
- The web interface will be unavailable during a station scan and you will have to reconnect!<br>
- Please select only one target!<br>
</span>
<span data-translate="info_disclaimer">In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.</span>
</p>
<hr>
<h2><span>Access Points</span>: <span id="apNum"></span></h2>
<table id="apTable"></table>
<button onclick="selectAll(0,true)" data-translate="select_all">select all</button>
<button onclick="selectAll(0,false)" data-translate="deselect_all">deselect all</button>
<hr>
<h2><span>Stations</span>: <span id="stNum"></span></h2>
<table id="stTable"></table>
<button onclick="selectAll(1,true)" data-translate="select_all">select all</button>
<button onclick="selectAll(1,false)" data-translate="deselect_all">deselect all</button>
<hr>
<h2><span data-translate="devices">Saved Devices</span>: <span id="nNum"></span></h2>
<table id="nTable"></table>
<button onclick="selectAll(2,true)" data-translate="select_all">select all</button>
<button onclick="selectAll(2,false)" data-translate="deselect_all">deselect all</button>
<button onclick="add(2)" data-translate="new">new</button>
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
{
"aps":[
[
"Don't",
"--SpaceRouter!--",
6,
-57,
"WPA2",
"f4:6b:de:da:8d:95",
"Spacehuhn",
false
],
[
"call",
"",
1,
-80,
"-",
"cc:cf:1e:d5:5b:2b",
"SpaceLtd",
true
],
[
"it",
"",
6,
-81,
"WPA*",
"5c:37:3b:f7:67:be",
"SpaceBox",
false
],
[
"a",
"",
8,
-82,
"WPA2",
"cd:ce:1e:0a:4e:9e",
"SpacEEE",
false
],
[
"jammer",
"",
8,
-83,
"WPA2",
"c7:0e:14:95:a1:3b",
"Chicken!",
false
],
[
"Don't call it a Jammer! DON'T !!",
"",
8,
-90,
"WPA2",
"c8:0e:14:95:a1:3b",
"Huhn",
false
]
],
"stations":[
[
"04:d7:aa:dc:6e:5a",
6,
"",
"Just",
168,
2,
"<1sec",
false
],
[
"b8:1d:aa:d5:6f:f0",
8,
"[[[[not mine]]]]",
"don't!",
2,
4,
"<1sec",
true
],
[
"58:41:4e:7a:dd:1b",
8,
"",
"OK?!",
2,
3,
"<1min",
false
]
]
}

View File

@@ -0,0 +1,64 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
<script src="js/settings.js"></script>
</head>
<body onload="loadLang()">
<nav>
<a href="scan.html" data-translate="scan">Scan</a>
<a href="ssids.html" data-translate="ssids">SSIDs</a>
<a href="attack.html" data-translate="attacks">Attacks</a>
<a href="settings.html" data-translate="settings">Settings</a>
<a class="right" href="info.html" data-translate="info">Info</a>
</nav>
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="settings">Settings</h1>
<button onclick="getFile('run?cmd=stopap')" class="red" data-translate="wifi_off">WiFi off</button>
<button onclick="getFile('run?cmd=reset;;save settings')" class="red" data-translate="reset">Reset</button>
<button onclick="getFile('run?cmd=reboot')" class="red right" data-translate="reboot">reboot</button>
<p>
<span class="red" data-translate="info_span">INFO:</span><br>
<span data-translate="settings_info">
- Some settings require a reboot.<br>
- Click save to make sure that your changes are applied.<br>
</span>
<span data-translate="info_disclaimer">In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.</span><br>
</p>
<button onclick="save()" data-translate="save">save</button>
<button onclick="load()" class="right" data-translate="reload">reload</button>
</div>
</div>
<div id="settingsList"></div>
<div class="row">
<div class="col-12">
<button onclick="save()" class="green">save</button>
<button onclick="load()">reload</button>
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,30 @@
{
"version":"over9000",
"ssid":"pwned",
"password":"deauther",
"channel":1,
"hidden":false,
"captivePortal":true,
"lang": "en",
"autosave":true,
"autosavetime":30000,
"display":false,
"displayTimeout":600,
"serial":true,
"serialEcho":true,
"web":true,
"led":true,
"maxch":14,
"macSt":"aa:bb:cc:dd:ee:ff",
"macAP":"00:11:22:33:44:55",
"chtime":384,
"minDeauths":3,
"attacktimeout":600,
"forcepackets":3,
"deauthspertarget":20,
"deauthReason":1,
"beaconchannel":false,
"beaconInterval":false,
"randomTX":false,
"probesPerSSID":1
}

View File

@@ -0,0 +1,114 @@
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.8, minimal-ui">
<meta name="description" content="ESP8266 Deauther">
<meta name="author" content="Spacehuhn - Stefan Kremser">
<meta name="theme-color" content="#36393E" />
<title>ESP8266 Deauther</title>
<link rel="stylesheet" href="style.css">
<script src="js/site.js"></script>
<script src="js/ssids.js"></script>
</head>
<body onload="loadLang()">
<nav>
<a href="scan.html" data-translate="scan">Scan</a>
<a href="ssids.html" data-translate="ssids">SSIDs</a>
<a href="attack.html" data-translate="attacks">Attacks</a>
<a href="settings.html" data-translate="settings">Settings</a>
<a class="right" href="info.html" data-translate="info">Info</a>
</nav>
<div class="container">
<div class="row">
<div class="col-12">
<div id="error" class="hide"></div>
<h1 class="header" data-translate="ssids">SSIDs</h1>
</div>
</div>
<div class="row">
<div class="col-6">
<label for="ssid">SSID</label>
</div>
<div class="col-6">
<input type="text" id="ssid" name="ssid" placeholder="SSID" maxlength="32">
</div>
</div>
<div class="row">
<div class="col-6">
<label>WPA2</label>
</div>
<div class="col-6">
<label class='checkBoxContainer'><input id="enc" type='checkbox'><span class='checkmark'></span></label>
</div>
</div>
<div class="row">
<div class="col-6">
<label data-translate="number">Number</label>
</div>
<div class="col-6">
<input id="ssidNum" type="number" value="1" max="60" min="1">
</div>
</div>
<div class="row">
<div class="col-6">
<label data-translate="overwrite">Overwrite</label>
</div>
<div class="col-6">
<label class='checkBoxContainer'><input id="overwrite" type='checkbox' checked><span class='checkmark'></span></label>
</div>
</div>
<div class="row">
<div class="col-12">
<button onclick="add()" data-translate="add">add</button>
<button onclick="addSelected()" data-translate="add_selected">clone selected APs</button>
</div>
</div>
<div class="row">
<div class="col-12">
<button onclick="load()" class="right" data-translate="reload">Reload</button>
<p>
<span class="red" data-translate="info_span">INFO:</span><br>
<span data-translate="ssids_info">
- This SSID list is used for the beacon and probe attack.<br>
- Each SSID can be up to 32 characters.<br>
- Don't forget to click save when you edited a SSID.<br>
- You have to click Reload after cloning SSIDs.<br>
</span>
<span data-translate="info_disclaimer">In case of an unexpected error, please reload the site and look at the serial monitor for further debugging.</span><br>
</p>
<hr>
</div>
</div>
<div class="row">
<div class="col-6">
<label for="interval" data-translate="time_interval">Time Interval</label>
</div>
<div class="col-6">
<input id="interval" name="interval" type="number" value="10" max="600" min="1">s
</div>
</div>
<div class="row">
<div class="col-12">
<button onclick="enableRandom()" id="randomBtn">Enable Random Mode</button>
<p data-translate="random_desc">Enable the random mode to generate a random SSID list in a given interval.</p>
<hr>
<table id="ssidTable"></table>
<button onclick="removeAll()" class="red" data-translate="remove_all">Remove All</button>
</div>
</div>
<div class="row">
<div class="col-12">
<div id="copyright">
<a href="https://github.com/spacehuhn/esp8266_deauther/wiki" target="_blank">Wiki</a> | <a href="https://github.com/spacehuhn/esp8266_deauther" target="_blank">GitHub</a><br>
<br>
Version 2.0<br>
Copyright (c) 2018 Stefan Kremser<br>
<a href="https://github.com/spacehuhn" target="_blank">github.com/spacehuhn</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,305 @@
{
"random": false,
"ssids":[
[
"Cthulhu fm'latgh stell'bsna",
false,
27
],
[
"Nyarlathotep, vulgtm",
false,
20
],
[
"Sgn'wahl phlegeth",
false,
17
],
[
"Nyarlathotep nnnee, ehye",
true,
24
],
[
"Phlegeth ph'Yoggoth",
true,
19
],
[
"fm'latgh ilyaa, llll",
true,
20
],
[
"Lloigog gotha h'n'ghft",
true,
22
],
[
"n'gha, h'goka",
false,
13
],
[
"Sll'ha Azathoth",
true,
15
],
[
"zhro tharanak, kn'a",
false,
19
],
[
"Sll'haor phlegethog",
true,
19
],
[
"y'hah lw'nafh, cee",
true,
18
],
[
"Kn'a mnahn' li'heeagl",
true,
21
],
[
"h'lw'nafh, R'lyeh",
true,
17
],
[
"Ya bug Tsathoggua",
false,
17
],
[
"ah, fm'latgh",
false,
12
],
[
"F'ilyaa ebunma tharanak",
true,
23
],
[
"kadishtu, nilgh'ri",
true,
18
],
[
"R'luh nog gof'nn",
true,
16
],
[
"hriiagl, stell'bsna",
false,
19
],
[
"R'lyeh nnnYoggoth",
false,
17
],
[
"syha'h nnnilyaa, R'lyeh",
false,
23
],
[
"Nghai s'uhn bug",
false,
15
],
[
"zhro, sgn'wahl",
false,
14
],
[
"F'ftaghu throd",
true,
14
],
[
"h'hai nnnnog, bug",
false,
17
],
[
"Ulnyar ron uaaah",
true,
16
],
[
"ngphlegeth, R'lyeh",
false,
18
],
[
"Ch' nw n'ghftog",
true,
15
],
[
"lloig, ph'n'ghft",
true,
16
],
[
"Ahnyth throd nas'uhn",
false,
20
],
[
"y'hahagl, f'sgn'wahl",
true,
20
],
[
"Throdnyth zhro sll'ha",
true,
21
],
[
"naflvulgtm, nnnnw",
true,
17
],
[
"Ngehye Hasturnyth nnnorr'e",
true,
26
],
[
"ftaghuoth, mg",
true,
13
],
[
"Lloig naflebunma y-Chaugnar",
false,
27
],
[
"Faugn ph'uaaah, naflmg",
false,
22
],
[
"Azathoth shugg gotha",
false,
20
],
[
"Hastur, fhtagn",
false,
14
],
[
"Lw'nafh nognyth",
true,
15
],
[
"nnngrah'n hrii, s'uhn",
false,
21
],
[
"Hai kadishtunyth",
false,
16
],
[
"nahlirgh uh'e, athgog",
true,
21
],
[
"Nilgh'ri R'lyeh",
true,
15
],
[
"nglw'nafh 'bthnk, ph'mnahn'",
true,
27
],
[
"Tharanak ehye kadishtuoth",
true,
25
],
[
"bug, hupadgh",
true,
12
],
[
"Nnnvulgtlagln sgn'wahl",
true,
22
],
[
"ph'goka nafln'gha, y-'bthnk",
true,
27
],
[
"Dagon ilyaa throd",
true,
17
],
[
"sgn'wahl, uln",
false,
13
],
[
"Shub-Niggurath naChaugnar",
true,
25
],
[
"Faugn f'r'luh phlegeth, lw'nafh",
true,
31
],
[
"Ebunma ehye hlirgh",
false,
18
],
[
"Shub-Niggurath, ilyaa",
true,
21
],
[
"Cgeb gnaiih Dagon",
true,
17
],
[
"gnaiih, nnnn'ghft",
false,
17
],
[
"Hlirgh k'yarnak",
false,
15
],
[
"ch', Cthulhu",
false,
12
]
]
}

View File

@@ -0,0 +1,447 @@
/* Global */
body {
background: #36393e;
color: #bfbfbf;
font-family: sans-serif;
margin: 0;
}
h1 {
font-size: 1.7rem;
margin-top: 1rem;
background: #2f3136;
color: #bfbfbb;
padding: 0.2em 1em;
border-radius: 3px;
border-left: solid #4974a9 5px;
font-weight: 100;
}
h2 {
font-size: 1.1rem;
margin-top: 1rem;
background: #2f3136;
color: #bfbfbb;
padding: 0.4em 1.8em;
border-radius: 3px;
border-left: solid #4974a9 5px;
font-weight: 100;
}
table{
border-collapse: collapse;
}
label{
line-height: 38px;
}
p{
margin: 0.5em 0;
}
.left {
float: left;
}
.right {
float: right;
}
.bold {
font-weight: bold;
}
.red{
color: #F04747;
}
.green{
color:#43B581;
}
.clear {
clear: both;
}
.centered{
text-align: center;
}
.select{
width: 98px !important;
padding: 0 !important;
}
.selected{
background: #4974a9;
}
.status{
width: 120px;
padding-left: 8px;
}
.labelFix {
line-height: 44px;
}
.clickable{
cursor: pointer;
}
.settingName{
text-transform: uppercase;
font-weight: bold;
text-decoration: underline;
}
#error {
text-align: center;
color: #fff;
background: #af3535;
border-radius: 5px;
padding: 10px;
margin-top: 10px;
}
#closeError{
float: right;
color: #fff;
padding: 0px 10px;
cursor: pointer;
}
#copyright{
font-size: 0.95em;
text-align: center;
margin-top: 3em;
margin-bottom: 3em;
}
/* ===== CHECKBOX ===== */
/* Customize the label (the container) */
.checkBoxContainer {
display: block;
position: relative;
padding-left: 35px;
margin-bottom: 12px;
cursor: pointer;
font-size: 22px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
height: 32px;
}
/* Hide the browser's default checkbox */
.checkBoxContainer input {
position: absolute;
opacity: 0;
cursor: pointer;
}
/* Create a custom checkbox */
.checkmark {
position: absolute;
top: 8px;
left: 0;
height: 28px;
width: 28px;
background-color: #2F3136;
border-radius: 4px;
}
/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
content: "";
position: absolute;
display: none;
}
/* Show the checkmark when checked */
.checkBoxContainer input:checked ~ .checkmark:after {
display: block;
}
.checkBoxContainer .checkmark:after {
left: 10px;
top: 7px;
width: 4px;
height: 10px;
border: solid white;
border-width: 0 3px 3px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
/* ERROR */
.hide {
display: none;
}
.show {
display: block !important;
animation-name: fadeIn;
animation-duration: 1s;
}
@keyframes fadeIn {
0% {opacity: 0;}
100% {opacity: 1;}
}
hr {
background: #3e4146;
}
a {
color: #5281bb;
text-decoration: none;
}
a:hover {
color: #95b8e4;
}
li{
margin: 4px 0;
}
/* Meter */
.meter_background{
background: #42464D;
width: 100%;
word-break: normal;
min-width: 100px;
}
.meter_forground{
color: #fff;
padding: 4px 0;
/* + one of the colors below
(width will be set by the JS) */
}
.meter_green{
background: #43B581;
}
.meter_orange{
background: #FAA61A;
}
.meter_red{
background: #F04747;
}
.meter_value{
padding-left: 8px;
}
/* Tables */
table {
width: 100%;
min-width: 400px;
margin-bottom: 2em;
}
td{
word-break: break-all;
}
th{
word-break: break-word;
}
th, td {
padding: 10px 6px;
text-align: left;
border-bottom: 1px solid #5d5d5d;
}
@media screen and (max-width: 820px) {
#apTable .id,
#apTable .enc,
#apTable .mac,
#apTable .vendor,
#apTable .name,
#stTable .id,
#stTable .pkts,
#stTable .lastseen,
#stTable .mac,
#nTable .id,
#nTable .vendor,
#nTable .ap,
#nTable .mac,
#ssidTable .id {
display: none;
}
.meter_background{
min-width: 45px;
}
}
/* Navigation bar */
nav {
display: block;
padding: 8px 10px;
background: #2f3136;
}
nav a {
color: #bfbfbf;
padding: 0.5em;
display: inline-block;
text-decoration: none;
}
nav a:hover{
background: #36393f;
color:#cecece;
border-radius: 4px;
}
/* Inputs and buttons */
.upload-script, .button, button, input[type="submit"], input[type="reset"], input[type="button"] {
display: inline-block;
height: 38px;
padding: 0 20px;
color:#fff;
text-align: center;
font-size: 11px;
font-weight: 600;
line-height: 38px;
letter-spacing: .1rem;
text-transform: uppercase;
text-decoration: none;
white-space: nowrap;
background: #2f3136;
border-radius: 4px;
border: none;
cursor: pointer;
box-sizing: border-box;
}
button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover {
background: #42444a;
}
button:active, input[type="submit"]:active, input[type="reset"]:active, input[type="button"]:active {
transform: scale(.93);
}
/* Forms */
input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select {
height: 38px;
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
background-color: #2f3136;
border-radius: 4px;
box-shadow: none;
box-sizing: border-box;
color: #d4d4d4;
border: none;
width: 5em;
}
input[type="text"]{
width: 10em;
}
.setting {
width: 100% !important;
max-width: 284px !important;
}
input[type="file"] {
display: none;
}
/* ==== GRID SYSTEM ==== */
.container {
width: 100%;
margin-left: auto;
margin-right: auto;
max-width: 1140px;
}
.row {
position: relative;
width: 100%;
}
.row [class^="col"] {
float: left;
margin: 0.25rem 2%;
min-height: 0.125rem;
}
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12 {
width: 96%;
}
.row::after {
content: "";
display: table;
clear: both;
}
.hidden-sm {
display: none;
}
@media only screen and (min-width: 24em) {
.col-1 {
width: 4.33%;
}
.col-2 {
width: 12.66%;
}
.col-3 {
width: 21%;
}
.col-4 {
width: 29.33%;
}
.col-5 {
width: 37.66%;
}
.col-6 {
width: 46%;
}
.col-7 {
width: 54.33%;
}
.col-8 {
width: 62.66%;
}
.col-9 {
width: 71%;
}
.col-10 {
width: 79.33%;
}
.col-11 {
width: 87.66%;
}
.col-12 {
width: 96%;
}
.hidden-sm {
display: block;
}
}