diff --git a/esp32_marauder/MenuFunctions.cpp b/esp32_marauder/MenuFunctions.cpp index b3f8f0f..765eaeb 100644 --- a/esp32_marauder/MenuFunctions.cpp +++ b/esp32_marauder/MenuFunctions.cpp @@ -284,6 +284,7 @@ void MenuFunctions::main(uint32_t currentTime) (wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION_WAR_DRIVE) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_WAR_DRIVE) || + (wifi_scan_obj.currentScanMode == WIFI_SCAN_DISPLAY_AP_INFO) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_EVIL_PORTAL) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_AP_STA) || (wifi_scan_obj.currentScanMode == WIFI_PING_SCAN) || @@ -385,6 +386,7 @@ void MenuFunctions::main(uint32_t currentTime) (wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_AP) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_WAR_DRIVE) || + (wifi_scan_obj.currentScanMode == WIFI_SCAN_DISPLAY_AP_INFO) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_EVIL_PORTAL) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_SIG_STREN) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_AP_STA) || @@ -2433,6 +2435,12 @@ void MenuFunctions::RunSetup() this->changeMenu(&ssidsMenu, true); }); + this->addNodes(&wifiGeneralMenu, "View AP Stats", TFTGREEN, NULL, BEACON_SNIFF, [this]() { + display_obj.clearScreen(); + this->drawStatusBar(); + wifi_scan_obj.StartScan(WIFI_SCAN_DISPLAY_AP_INFO, TFT_GREEN); + }); + wifiStationMenu.parentMenu = &ssidsMenu; this->addNodes(&wifiStationMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { this->changeMenu(wifiStationMenu.parentMenu, true); diff --git a/esp32_marauder/WiFiScan.cpp b/esp32_marauder/WiFiScan.cpp index 62372c7..0ece094 100644 --- a/esp32_marauder/WiFiScan.cpp +++ b/esp32_marauder/WiFiScan.cpp @@ -4905,6 +4905,58 @@ void WiFiScan::tagPOI(const char* label) { #endif } +void WiFiScan::displayAPStats() { + #ifdef HAS_SCREEN + display_obj.tft.fillRect(0, + (STATUS_BAR_WIDTH * 2) + 1 + EXT_BUTTON_WIDTH, + TFT_WIDTH, + TFT_HEIGHT - STATUS_BAR_WIDTH + 1, + TFT_BLACK); + + #ifndef HAS_MINI_SCREEN + display_obj.tft.setCursor(0, (STATUS_BAR_WIDTH * 2) + CHAR_WIDTH); + display_obj.tft.setTextSize(2); + #else + display_obj.tft.setCursor(0, (STATUS_BAR_WIDTH * 2) + CHAR_WIDTH); + display_obj.tft.setTextSize(1); + #endif + + display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK); + display_obj.tft.println("Access Point"); + + display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); + display_obj.tft.println(""); + + display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK); + display_obj.tft.println("SSID:"); + display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); + display_obj.tft.println(WiFi.softAPSSID()); + + display_obj.tft.println(""); + + display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK); + display_obj.tft.println("Gateway:"); + display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); + display_obj.tft.println(WiFi.softAPIP().toString()); + + display_obj.tft.println(""); + + display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK); + display_obj.tft.print("Clients: "); + display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); + display_obj.tft.println((String)WiFi.softAPgetStationNum()); + + uint8_t primaryChannel; + wifi_second_chan_t secondChannel; + esp_err_t err = esp_wifi_get_channel(&primaryChannel, &secondChannel); + + display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK); + display_obj.tft.print("Channel: "); + display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); + display_obj.tft.println((String)primaryChannel); + #endif +} + void WiFiScan::displayWardriveStats() { #ifdef HAS_SCREEN #ifdef HAS_GPS @@ -10127,6 +10179,12 @@ void WiFiScan::main(uint32_t currentTime) #endif } + else if (currentScanMode == WIFI_SCAN_DISPLAY_AP_INFO) { + if (currentTime - this->last_ui_update >= 1000) { + this->last_ui_update = millis(); + this->displayAPStats(); + } + } else if (currentScanMode == WIFI_SCAN_WAR_DRIVE) { if (currentTime - initTime >= this->channel_hop_delay * HOP_DELAY) { diff --git a/esp32_marauder/WiFiScan.h b/esp32_marauder/WiFiScan.h index 0dd17a7..d88862e 100644 --- a/esp32_marauder/WiFiScan.h +++ b/esp32_marauder/WiFiScan.h @@ -156,6 +156,7 @@ #define WIFI_ATTACK_QUIET 80 #define BT_SCAN_RAYBAN 81 #define BT_ATTACK_APPLE_JUICE 82 +#define WIFI_SCAN_DISPLAY_AP_INFO 83 #define WIFI_ATTACK_FUNNY_BEACON 99 @@ -668,6 +669,7 @@ class WiFiScan void writeHeader(bool poi = false); void writeFooter(bool poi = false); void displayWardriveStats(); + void displayAPStats(); public: