Ozdag_Attacker/src/beacon.h

45 lines
1.8 KiB
C

#ifndef BEACON_H
#define BEACON_H
#include <Arduino.h>
#include <ESP8266WiFi.h> // For MAC address type, channel functions
#include "ui.h" // For ButtonPressType, UIState access
#include "scanner.h" // <<< INCLUDE for AccessPointInfo definition
// --- Beacon Module States ---
enum class BeaconStateType {
MODE_SELECTION, // Choose between Random / Target
SELECT_TARGET_AP, // Show AP list from scanner to choose target
FLOODING_RANDOM, // Flooding random SSIDs from list (old behavior)
FLOODING_TARGET // Flooding target SSID with random BSSIDs
};
// --- Constants ---
#define BEACON_PACKET_INTERVAL 10 // ms between sending beacon packets (adjust as needed)
#define BEACON_CHANNEL_HOP_INTERVAL 500 // ms between channel changes
#define MAX_BEACON_SSIDS 20 // Max number of SSIDs in our list
#define MAX_SSID_LEN 32
// --- Global Variables (accessible by other modules if needed) ---
extern bool beacon_flood_active;
extern uint8_t beacon_target_ap_bssid[6]; // Store selected target BSSID
extern char beacon_target_ap_ssid[33]; // Store selected target SSID
extern uint8_t beacon_target_ap_channel; // Store selected target channel
// --- Function Declarations ---
void beacon_init();
void beacon_update();
void beacon_stop(); // Function to stop the flood cleanly
void beacon_draw(); // Function to draw beacon UI based on state
void beacon_handle_input(ButtonPressType pressType); // Handle button presses
// --- SDK function declarations (already in deauth.h, but good practice) ---
extern "C" {
#include "user_interface.h"
int wifi_send_pkt_freedom(uint8_t *buf, int len, bool sys_seq);
bool wifi_set_channel(uint8_t channel);
uint8_t wifi_get_channel();
// Add others if needed (e.g., wifi_promiscuous_enable)
}
#endif // BEACON_H