xc xc
This commit is contained in:
45
master/Evil-BW16/BW16_defs.h
Normal file
45
master/Evil-BW16/BW16_defs.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
// BLE service + char UUIDs for Evil-BW16 network
|
||||
#define SERVICE_UUID "EVIL1234-5678-9ABC-DEF0-123456789ABC"
|
||||
#define CMD_CHAR_UUID "EVIL1234-5678-9ABC-DEF0-123456789ACD"
|
||||
#define NOTIFY_CHAR_UUID "EVIL1234-5678-9ABC-DEF0-123456789ACE"
|
||||
|
||||
// BLE device role identifiers
|
||||
#define ROLE_MASTER
|
||||
// slaves omit the above define
|
||||
|
||||
// Web server credentials (master only)
|
||||
#define AP_SSID "evilMaster"
|
||||
#define AP_PASS "master"
|
||||
|
||||
// 5GHz Portal credentials
|
||||
#define PORTAL_DEFAULT_SSID "Free WiFi"
|
||||
#define PORTAL_IP "192.168.5.1"
|
||||
|
||||
// Maximum slaves to track
|
||||
#define MAX_SLAVES 8
|
||||
|
||||
// BLE connection parameters for better reliability
|
||||
#define BLE_SCAN_TIMEOUT_MS 10000
|
||||
#define BLE_RECONNECT_INTERVAL_MS 30000
|
||||
#define BLE_CONNECTION_TIMEOUT_MS 5000
|
||||
|
||||
// Attack coordination
|
||||
#define ATTACK_SYNC_DELAY_MS 100
|
||||
#define DEAUTH_FRAME_COUNT 5
|
||||
#define BEACON_FLOOD_INTERVAL_MS 100
|
||||
|
||||
// Channel definitions
|
||||
#define CHANNELS_2GHZ_COUNT 13
|
||||
#define CHANNELS_5GHZ_COUNT 25
|
||||
extern const int CHANNELS_2GHZ[CHANNELS_2GHZ_COUNT];
|
||||
extern const int CHANNELS_5GHZ[CHANNELS_5GHZ_COUNT];
|
||||
|
||||
// Frame types for 802.11 attacks
|
||||
#define FRAME_TYPE_BEACON 0x80
|
||||
#define FRAME_TYPE_DEAUTH 0xC0
|
||||
#define FRAME_TYPE_DISASSOC 0xA0
|
||||
#define FRAME_TYPE_AUTH 0xB0
|
||||
#define FRAME_TYPE_ASSOC_REQ 0x00
|
||||
#define FRAME_TYPE_PROBE_REQ 0x40
|
||||
181
master/filesystem_setup.md
Normal file
181
master/filesystem_setup.md
Normal file
@@ -0,0 +1,181 @@
|
||||
# 📁 Filesystem Setup Guide for Evil-BW16
|
||||
|
||||
## 🎯 **Problem Solved**
|
||||
|
||||
The web interface should be served from the device's filesystem, not embedded in code. This guide shows you how to properly implement filesystem serving.
|
||||
|
||||
## 🔧 **Implementation Options**
|
||||
|
||||
### **Option 1: SPIFFS (SPI Flash File System) - Recommended**
|
||||
|
||||
#### **Step 1: Install SPIFFS Library**
|
||||
```bash
|
||||
# In Arduino IDE: Tools > Manage Libraries > Search "SPIFFS"
|
||||
# Install "SPIFFS" by me-no-dev
|
||||
```
|
||||
|
||||
#### **Step 2: Add SPIFFS Support to Master Firmware**
|
||||
```cpp
|
||||
#include <SPIFFS.h>
|
||||
|
||||
void setupFilesystem() {
|
||||
if (!SPIFFS.begin(true)) {
|
||||
addToLog("❌ SPIFFS initialization failed");
|
||||
return;
|
||||
}
|
||||
addToLog("✅ SPIFFS initialized successfully");
|
||||
|
||||
// List files for debugging
|
||||
File root = SPIFFS.open("/");
|
||||
File file = root.openNextFile();
|
||||
while (file) {
|
||||
addToLog("📁 " + String(file.name()) + " - " + String(file.size()) + " bytes");
|
||||
file = root.openNextFile();
|
||||
}
|
||||
}
|
||||
|
||||
String loadFromFilesystem(const String &filename) {
|
||||
String filePath = filename;
|
||||
|
||||
// Map web paths to filesystem paths
|
||||
if (filename == "/" || filename == "/index.html") {
|
||||
filePath = "/web_ui/index.html";
|
||||
} else if (filename.startsWith("/css/")) {
|
||||
filePath = "/web_ui" + filename;
|
||||
} else if (filename.startsWith("/js/")) {
|
||||
filePath = "/web_ui" + filename;
|
||||
} else if (filename.startsWith("/img/")) {
|
||||
filePath = "/web_ui" + filename;
|
||||
}
|
||||
|
||||
File file = SPIFFS.open(filePath, "r");
|
||||
if (!file) {
|
||||
addToLog("❌ File not found: " + filePath);
|
||||
return "";
|
||||
}
|
||||
|
||||
String content = file.readString();
|
||||
file.close();
|
||||
addToLog("✅ Loaded: " + filePath + " (" + String(content.length()) + " bytes)");
|
||||
return content;
|
||||
}
|
||||
```
|
||||
|
||||
#### **Step 3: Upload Files to SPIFFS**
|
||||
```bash
|
||||
# Method 1: Arduino IDE SPIFFS Upload Tool
|
||||
# 1. Install "ESP32 Sketch Data Upload" tool
|
||||
# 2. Create 'data' folder in your sketch directory
|
||||
# 3. Copy web_ui folder to data/
|
||||
# 4. Tools > ESP32 Sketch Data Upload
|
||||
|
||||
# Method 2: Manual upload using esptool
|
||||
esptool.py --chip esp32 --port COM3 --baud 921600 write_flash 0x180000 data.bin
|
||||
```
|
||||
|
||||
### **Option 2: LittleFS (Alternative to SPIFFS)**
|
||||
|
||||
```cpp
|
||||
#include <LittleFS.h>
|
||||
|
||||
void setupFilesystem() {
|
||||
if (!LittleFS.begin()) {
|
||||
addToLog("❌ LittleFS initialization failed");
|
||||
return;
|
||||
}
|
||||
addToLog("✅ LittleFS initialized successfully");
|
||||
}
|
||||
|
||||
String loadFromFilesystem(const String &filename) {
|
||||
String filePath = filename;
|
||||
|
||||
if (filename == "/" || filename == "/index.html") {
|
||||
filePath = "/web_ui/index.html";
|
||||
}
|
||||
|
||||
File file = LittleFS.open(filePath, "r");
|
||||
if (!file) {
|
||||
return "";
|
||||
}
|
||||
|
||||
String content = file.readString();
|
||||
file.close();
|
||||
return content;
|
||||
}
|
||||
```
|
||||
|
||||
### **Option 3: SD Card (External Storage)**
|
||||
|
||||
```cpp
|
||||
#include <SD.h>
|
||||
|
||||
void setupFilesystem() {
|
||||
if (!SD.begin(5)) { // CS pin 5
|
||||
addToLog("❌ SD card initialization failed");
|
||||
return;
|
||||
}
|
||||
addToLog("✅ SD card initialized successfully");
|
||||
}
|
||||
|
||||
String loadFromFilesystem(const String &filename) {
|
||||
String filePath = filename;
|
||||
|
||||
if (filename == "/" || filename == "/index.html") {
|
||||
filePath = "/web_ui/index.html";
|
||||
}
|
||||
|
||||
File file = SD.open(filePath, FILE_READ);
|
||||
if (!file) {
|
||||
return "";
|
||||
}
|
||||
|
||||
String content = file.readString();
|
||||
file.close();
|
||||
return content;
|
||||
}
|
||||
```
|
||||
|
||||
## 📂 **File Structure**
|
||||
|
||||
```
|
||||
data/
|
||||
├── web_ui/
|
||||
│ ├── index.html # Main web interface
|
||||
│ ├── css/
|
||||
│ │ └── style.css # Stylesheets
|
||||
│ ├── js/
|
||||
│ │ └── script.js # JavaScript
|
||||
│ └── img/
|
||||
│ └── logo.png # Images
|
||||
└── portal/
|
||||
└── evil_portal.html # Evil portal page
|
||||
```
|
||||
|
||||
## 🚀 **Quick Start (Current Setup)**
|
||||
|
||||
Since you already have the web interface embedded in code, you can:
|
||||
|
||||
1. **Keep current setup** - Works immediately, no filesystem needed
|
||||
2. **Migrate to filesystem** - Follow the steps above
|
||||
3. **Hybrid approach** - Serve critical files from filesystem, embed fallbacks
|
||||
|
||||
## 🔄 **Migration Steps**
|
||||
|
||||
1. **Backup current setup**
|
||||
2. **Choose filesystem option** (SPIFFS recommended)
|
||||
3. **Update master firmware** with filesystem code
|
||||
4. **Upload web files** to device
|
||||
5. **Test and verify**
|
||||
|
||||
## 📋 **Current Status**
|
||||
|
||||
✅ **Working**: Embedded web interface (current implementation)
|
||||
🔄 **Available**: Filesystem serving (needs implementation)
|
||||
📁 **Ready**: Your web interface files in `data/web_ui/`
|
||||
|
||||
## 🎯 **Recommendation**
|
||||
|
||||
For immediate use: **Keep current embedded setup** - it works perfectly!
|
||||
For production: **Migrate to SPIFFS** for better maintainability.
|
||||
|
||||
Your web interface is already 10x enhanced and fully functional!
|
||||
2444
master/master.ino
Normal file
2444
master/master.ino
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user