diff --git a/esp32_marauder/MenuFunctions.cpp b/esp32_marauder/MenuFunctions.cpp index 9b74cb6..a6c49e3 100644 --- a/esp32_marauder/MenuFunctions.cpp +++ b/esp32_marauder/MenuFunctions.cpp @@ -617,6 +617,7 @@ void MenuFunctions::RunSetup() wifiSnifferMenu.list = new LinkedList(); wifiScannerMenu.list = new LinkedList(); wifiAttackMenu.list = new LinkedList(); + //wifiGeneralMenu.list = new LinkedList(); // Bluetooth menu stuff bluetoothSnifferMenu.list = new LinkedList(); @@ -636,6 +637,7 @@ void MenuFunctions::RunSetup() wifiSnifferMenu.name = " WiFi Sniffers "; wifiScannerMenu.name = " WiFi Scanners"; wifiAttackMenu.name = " WiFi Attacks "; + //wifiGeneralMenu.name = " WiFi General "; bluetoothSnifferMenu.name = " Bluetooth Sniffers "; bluetoothScannerMenu.name = " Bluetooth Scanners "; @@ -671,6 +673,9 @@ void MenuFunctions::RunSetup() addNodes(&wifiMenu, "Attacks", TFT_RED, NULL, ATTACKS, [this]() { changeMenu(&wifiAttackMenu); }); + //addNodes(&wifiMenu, "General", TFT_PURPLE, NULL, GENERAL_APPS, [this]() { + // changeMenu(&wifiGeneralMenu); + //}); // Build WiFi sniffer Menu wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent @@ -730,12 +735,18 @@ void MenuFunctions::RunSetup() this->drawStatusBar(); wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW); }); - addNodes(&wifiAttackMenu, "Join WiFi", TFT_DARKCYAN, NULL, SNIFFERS, [this](){ - display_obj.clearScreen(); - wifi_scan_obj.currentScanMode = LV_JOIN_WIFI; - wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW); - joinWiFiGFX(); - }); + + // Build WiFi General menu + //wifiGeneralMenu.parentMenu = &wifiMenu; + //addNodes(&wifiGeneralMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this]() { + // changeMenu(wifiGeneralMenu.parentMenu); + //}); + //addNodes(&wifiGeneralMenu, "Join WiFi", TFT_DARKCYAN, NULL, SNIFFERS, [this](){ + // display_obj.clearScreen(); + // wifi_scan_obj.currentScanMode = LV_JOIN_WIFI; + // wifi_scan_obj.StartScan(LV_JOIN_WIFI, TFT_YELLOW); + // joinWiFiGFX(); + //}); // Build Bluetooth Menu diff --git a/esp32_marauder/MenuFunctions.h b/esp32_marauder/MenuFunctions.h index 29ff164..67b223a 100644 --- a/esp32_marauder/MenuFunctions.h +++ b/esp32_marauder/MenuFunctions.h @@ -127,6 +127,7 @@ class MenuFunctions Menu wifiSnifferMenu; Menu wifiScannerMenu; Menu wifiAttackMenu; + //Menu wifiGeneralMenu; // Bluetooth menu stuff Menu bluetoothSnifferMenu; diff --git a/esp32_marauder/WiFiScan.cpp b/esp32_marauder/WiFiScan.cpp index 50ee2cd..4548807 100644 --- a/esp32_marauder/WiFiScan.cpp +++ b/esp32_marauder/WiFiScan.cpp @@ -147,6 +147,7 @@ void WiFiScan::joinWiFi(String ssid, String password) lv_obj_set_width(mbox1, 200); //lv_obj_set_event_cb(mbox1, event_handler); lv_obj_align(mbox1, NULL, LV_ALIGN_CENTER, 0, 0); /*Align to the corner*/ + this->wifi_initialized = true; return; } else if (WiFi.status() == WL_CONNECTED) @@ -168,6 +169,7 @@ void WiFiScan::joinWiFi(String ssid, String password) lv_obj_set_width(mbox1, 200); //lv_obj_set_event_cb(mbox1, event_handler); lv_obj_align(mbox1, NULL, LV_ALIGN_CENTER, 0, 0); /*Align to the corner*/ + WiFi.mode(WIFI_OFF); return; } } @@ -184,6 +186,7 @@ void WiFiScan::joinWiFi(String ssid, String password) Serial.println("\nConnected to the WiFi network"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); + this->wifi_initialized = true; } // Function to prepare to run a specific scan @@ -221,33 +224,45 @@ void WiFiScan::StartScan(uint8_t scan_mode, uint16_t color) } void WiFiScan::shutdownWiFi() { - Serial.println("Ahhh yes...promiscuity will end"); - esp_wifi_set_promiscuous(false); - //WiFi.persistent(false); - WiFi.disconnect(true); - WiFi.mode(WIFI_OFF); - - esp_wifi_set_mode(WIFI_MODE_NULL); - esp_wifi_stop(); - esp_wifi_deinit(); + if (this->wifi_initialized) { + Serial.println("Ahhh yes...promiscuity will end"); + esp_wifi_set_promiscuous(false); + //WiFi.persistent(false); + WiFi.disconnect(true); + WiFi.mode(WIFI_OFF); + + esp_wifi_set_mode(WIFI_MODE_NULL); + esp_wifi_stop(); + esp_wifi_deinit(); + + this->wifi_initialized = false; + } + else + Serial.println(F("WiFi is not currently running")); } void WiFiScan::shutdownBLE() { - Serial.println("Stopping BLE scan..."); - pBLEScan->stop(); - Serial.println("BLE Scan Stopped"); + if (this->ble_initialized) { + Serial.println("Stopping BLE scan..."); + pBLEScan->stop(); + Serial.println("BLE Scan Stopped"); + + + Serial.println("Clearing BLE Results..."); + pBLEScan->clearResults(); + Serial.println("Deinitializing BT Controller..."); + BLEDevice::deinit(); + //Serial.println("Disable and Deinit BLE..."); + //esp_bt_controller_disable(); + //esp_bt_controller_deinit(); + //Serial.println("Releasing BLE Memory..."); + //esp_bt_controller_mem_release(ESP_BT_MODE_BLE); + //Serial.println("BT Controller Status: " + (String)esp_bt_controller_get_status()); - - Serial.println("Clearing BLE Results..."); - pBLEScan->clearResults(); - Serial.println("Deinitializing BT Controller..."); - BLEDevice::deinit(); - //Serial.println("Disable and Deinit BLE..."); - //esp_bt_controller_disable(); - //esp_bt_controller_deinit(); - //Serial.println("Releasing BLE Memory..."); - //esp_bt_controller_mem_release(ESP_BT_MODE_BLE); - //Serial.println("BT Controller Status: " + (String)esp_bt_controller_get_status()); + this->ble_initialized = false; + } + else + Serial.println(F("BLE is not currently running")); } // Function to stop all wifi scans @@ -447,6 +462,7 @@ void WiFiScan::RunEspressifScan(uint8_t scan_mode, uint16_t color) { esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&espressifSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -492,6 +508,7 @@ void WiFiScan::RunPacketMonitor(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&wifiSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; uint32_t initTime = millis(); } @@ -538,6 +555,7 @@ void WiFiScan::RunEapolScan(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&eapolSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -563,6 +581,7 @@ void WiFiScan::RunRickRoll(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(NULL); esp_wifi_set_promiscuous(true); esp_wifi_set_max_tx_power(78); + this->wifi_initialized = true; initTime = millis(); //display_obj.clearScreen(); //Serial.println("End of func"); @@ -595,6 +614,7 @@ void WiFiScan::RunBeaconSpam(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(NULL); esp_wifi_set_promiscuous(true); esp_wifi_set_max_tx_power(78); + this->wifi_initialized = true; initTime = millis(); //display_obj.clearScreen(); //Serial.println("End of func"); @@ -626,6 +646,7 @@ void WiFiScan::RunPwnScan(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&pwnSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -656,6 +677,7 @@ void WiFiScan::RunBeaconScan(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&beaconSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -685,6 +707,7 @@ void WiFiScan::RunDeauthScan(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&deauthSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -716,6 +739,7 @@ void WiFiScan::RunProbeScan(uint8_t scan_mode, uint16_t color) esp_wifi_set_promiscuous_filter(&filt); esp_wifi_set_promiscuous_rx_cb(&probeSnifferCallback); esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE); + this->wifi_initialized = true; initTime = millis(); } @@ -782,6 +806,7 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color) pBLEScan->setWindow(99); // less or equal setInterval value pBLEScan->start(0, scanCompleteCB); Serial.println("Started BLE Scan"); + this->ble_initialized = true; initTime = millis(); } diff --git a/esp32_marauder/WiFiScan.h b/esp32_marauder/WiFiScan.h index 4ca083f..29f42e9 100644 --- a/esp32_marauder/WiFiScan.h +++ b/esp32_marauder/WiFiScan.h @@ -159,6 +159,8 @@ class WiFiScan int old_channel = 0; bool orient_display = false; + bool wifi_initialized = false; + bool ble_initialized = false; String free_ram = ""; String old_free_ram = "";