Kaynağa Gözat

Add some command line stuff

Just Call Me Koko 3 yıl önce
ebeveyn
işleme
2c4edd012d

+ 32 - 0
esp32_marauder/CommandLine.cpp

@@ -0,0 +1,32 @@
+#include "CommandLine.h"
+
+CommandLine::CommandLine() {
+}
+
+void CommandLine::RunSetup() {
+  
+}
+
+String CommandLine::getSerialInput() {
+  String input = "";
+
+  if (Serial.available() > 0)
+    input = Serial.readStringUntil('\n');
+
+  return input;
+}
+
+void CommandLine::main(uint32_t currentTime) {
+   this->parseCommand(this->getSerialInput());
+}
+
+void CommandLine::parseCommand(String input) {
+  if (input != "")
+    Serial.println("#" + input);
+    
+  if (input == "scanap") {
+    display_obj.clearScreen();
+    menu_function_obj.drawStatusBar();
+    wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
+  }
+}

+ 24 - 0
esp32_marauder/CommandLine.h

@@ -0,0 +1,24 @@
+#ifndef CommandLine_h
+#define CommandLine_h
+
+#include "MenuFunctions.h"
+#include "WiFiScan.h"
+#include "Display.h"
+
+extern MenuFunctions menu_function_obj;
+extern WiFiScan wifi_scan_obj;
+extern Display display_obj;
+
+class CommandLine {
+  private:
+    String getSerialInput();
+    void parseCommand(String input);
+        
+  public:
+    CommandLine();
+
+    void RunSetup();
+    void main(uint32_t currentTime);
+};
+
+#endif

+ 1 - 1
esp32_marauder/Display.h

@@ -52,7 +52,7 @@ PROGMEM static lv_obj_t *kb;
 */
 
 // #define KIT
-// #define TFT_FIY
+// #define TFT_DIY
 
 class Display
 {

+ 4 - 4
esp32_marauder/MenuFunctions.cpp

@@ -1445,7 +1445,7 @@ void MenuFunctions::RunSetup()
     display_obj.clearScreen();
     this->drawStatusBar();
     wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);
-  });
+  }, "probescan");
   addNodes(&wifiSnifferMenu, "Beacon Sniff", TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
     display_obj.clearScreen();
     this->drawStatusBar();
@@ -1476,7 +1476,7 @@ void MenuFunctions::RunSetup()
     display_obj.clearScreen();
     this->drawStatusBar();
     wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
-  });
+  }, "scanap");
 
   // Build WiFi attack menu
   wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
@@ -1804,10 +1804,10 @@ void MenuFunctions::showMenuList(Menu * menu, int layer)
 
 
 // Function to add MenuNodes to a menu
-void MenuFunctions::addNodes(Menu * menu, String name, uint16_t color, Menu * child, int place, std::function<void()> callable, bool selected)
+void MenuFunctions::addNodes(Menu * menu, String name, uint16_t color, Menu * child, int place, std::function<void()> callable, bool selected, String command)
 {
   TFT_eSPI_Button new_button;
-  menu->list->add(MenuNode{name, color, place, &new_button, selected, callable});
+  menu->list->add(MenuNode{name, command, color, place, &new_button, selected, callable});
   //menu->list->add(MenuNode{name, color, place, callable});
 }
 

+ 2 - 2
esp32_marauder/MenuFunctions.h

@@ -171,8 +171,7 @@ class MenuFunctions
 
     //TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
 
-    void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = null);
-    void drawStatusBar();
+    void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
     void updateStatusBar();
     void battery(bool initial = false);
     void battery2(bool initial = false);
@@ -205,6 +204,7 @@ class MenuFunctions
 
     void buildButtons(Menu* menu);
     void changeMenu(Menu* menu);
+    void drawStatusBar();
     void displayCurrentMenu();
     void main(uint32_t currentTime);
     void RunSetup();

+ 0 - 174
esp32_marauder/WiFiScan.cpp

@@ -804,67 +804,6 @@ void WiFiScan::RunEapolScan(uint8_t scan_mode, uint16_t color)
   initTime = millis();
 }
 
-/*
-void WiFiScan::RunRickRoll(uint8_t scan_mode, uint16_t color)
-{
-  //Serial.println("Rick Roll...");
-  display_obj.TOP_FIXED_AREA_2 = 48;
-  display_obj.tteBar = true;
-  display_obj.print_delay_1 = 15;
-  display_obj.print_delay_2 = 10;
-  //display_obj.clearScreen();
-  display_obj.initScrollValues(true);
-  display_obj.tft.setTextWrap(false);
-  display_obj.tft.setTextColor(TFT_BLACK, color);
-  display_obj.tft.fillRect(0,16,240,16, color);
-  display_obj.tft.drawCentreString(" Rick Roll Beacon ",120,16,2);
-  display_obj.touchToExit();
-  display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
-  packets_sent = 0;
-  //esp_wifi_set_mode(WIFI_MODE_STA);
-  WiFi.mode(WIFI_AP_STA);
-  esp_wifi_start();
-  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");
-}*/
-
-// Function to prepare for beacon list
-/*
-void WiFiScan::RunBeaconList(uint8_t scan_mode, uint16_t color) {
-  sd_obj.openCapture("beacon_list");
-  
-  display_obj.TOP_FIXED_AREA_2 = 48;
-  display_obj.tteBar = true;
-  display_obj.print_delay_1 = 15;
-  display_obj.print_delay_2 = 10;
-  //display_obj.clearScreen();
-  display_obj.initScrollValues(true);
-  display_obj.tft.setTextWrap(false);
-  display_obj.tft.setTextColor(TFT_BLACK, color);
-  display_obj.tft.fillRect(0,16,240,16, color);
-  display_obj.tft.drawCentreString(" Beacon Spam List ",120,16,2);
-  display_obj.touchToExit();
-  display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
-  display_obj.setupScrollArea(display_obj.TOP_FIXED_AREA_2, BOT_FIXED_AREA);
-  //wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
-  esp_wifi_init(&cfg);
-  esp_wifi_set_storage(WIFI_STORAGE_RAM);
-  esp_wifi_set_mode(WIFI_AP_STA);
-  esp_wifi_start();
-  esp_wifi_set_promiscuous(true);
-  esp_wifi_set_max_tx_power(78);
-  esp_wifi_set_promiscuous_filter(&filt);
-  esp_wifi_set_promiscuous_rx_cb(&beaconListSnifferCallback);
-  esp_wifi_set_channel(set_channel, WIFI_SECOND_CHAN_NONE);
-  this->wifi_initialized = true;
-  initTime = millis();
-}*/
-
 
 // Function to prepare for beacon mimic
 void WiFiScan::RunMimicFlood(uint8_t scan_mode, uint16_t color) {
@@ -897,103 +836,6 @@ void WiFiScan::RunMimicFlood(uint8_t scan_mode, uint16_t color) {
   //Serial.println("End of func");
 }
 
-// Function to prepare for beacon spam
-/*
-void WiFiScan::RunProbeFlood(uint8_t scan_mode, uint16_t color) {
-  display_obj.TOP_FIXED_AREA_2 = 48;
-  display_obj.tteBar = true;
-  display_obj.print_delay_1 = 15;
-  display_obj.print_delay_2 = 10;
-  //display_obj.clearScreen();
-  display_obj.initScrollValues(true);
-  display_obj.tft.setTextWrap(false);
-  display_obj.tft.setTextColor(TFT_BLACK, color);
-  display_obj.tft.fillRect(0,16,240,16, color);
-  display_obj.tft.drawCentreString(" Auth Flood ",120,16,2);
-  display_obj.touchToExit();
-  display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
-  packets_sent = 0;
-  //esp_wifi_set_mode(WIFI_MODE_STA);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_init(&cfg);
-  esp_wifi_set_storage(WIFI_STORAGE_RAM);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_set_mode(WIFI_AP_STA);
-  esp_wifi_start();
-  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");
-}*/
-
-/*
-void WiFiScan::RunDeauthFlood(uint8_t scan_mode, uint16_t color) {
-  display_obj.TOP_FIXED_AREA_2 = 48;
-  display_obj.tteBar = true;
-  display_obj.print_delay_1 = 15;
-  display_obj.print_delay_2 = 10;
-  //display_obj.clearScreen();
-  display_obj.initScrollValues(true);
-  display_obj.tft.setTextWrap(false);
-  display_obj.tft.setTextColor(TFT_BLACK, color);
-  display_obj.tft.fillRect(0,16,240,16, color);
-  display_obj.tft.drawCentreString(" Deauth Flood ",120,16,2);
-  display_obj.touchToExit();
-  display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
-  packets_sent = 0;
-  //esp_wifi_set_mode(WIFI_MODE_STA);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_init(&cfg);
-  esp_wifi_set_storage(WIFI_STORAGE_RAM);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_set_mode(WIFI_AP_STA);
-  esp_wifi_start();
-  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");
-}*/
-
-// Function to prepare for beacon spam
-/*
-void WiFiScan::RunBeaconSpam(uint8_t scan_mode, uint16_t color)
-{
-  //Serial.println("Beacon Spam...");
-  display_obj.TOP_FIXED_AREA_2 = 48;
-  display_obj.tteBar = true;
-  display_obj.print_delay_1 = 15;
-  display_obj.print_delay_2 = 10;
-  //display_obj.clearScreen();
-  display_obj.initScrollValues(true);
-  display_obj.tft.setTextWrap(false);
-  display_obj.tft.setTextColor(TFT_BLACK, color);
-  display_obj.tft.fillRect(0,16,240,16, color);
-  display_obj.tft.drawCentreString(" Beacon Spam Random ",120,16,2);
-  display_obj.touchToExit();
-  display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
-  packets_sent = 0;
-  //esp_wifi_set_mode(WIFI_MODE_STA);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_init(&cfg);
-  esp_wifi_set_storage(WIFI_STORAGE_RAM);
-  //WiFi.mode(WIFI_AP_STA);
-  esp_wifi_set_mode(WIFI_AP_STA);
-  esp_wifi_start();
-  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");
-}*/
-
 void WiFiScan::RunPwnScan(uint8_t scan_mode, uint16_t color)
 {
   sd_obj.openCapture("pwnagotchi");
@@ -1123,22 +965,6 @@ void WiFiScan::RunBluetoothScan(uint8_t scan_mode, uint16_t color)
   display_obj.print_delay_1 = 50;
   display_obj.print_delay_2 = 20;
 
-  /*
-  esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
-  esp_err_t init_ret = esp_bt_controller_init(&bt_cfg);
-  if (init_ret != ESP_OK)
-    Serial.println("Could not initialize BT Controller: " + (String)init_ret);
-  
-  //esp_bt_controller_enable(ESP_BT_MODE_CLASSIC_BT);
-  //esp_bt_controller_disable();
-  
-  
-  esp_err_t ret = esp_bt_controller_enable(ESP_BT_MODE_BTDM);
-  if (ret != ESP_OK)
-    Serial.println("Could not enable BT Controller: " + (String)ret);
-
-  Serial.println("BT Controller Status: " + (String)esp_bt_controller_get_status());
-  */
   NimBLEDevice::setScanFilterMode(CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE);
   NimBLEDevice::setScanDuplicateCacheSize(200);
   NimBLEDevice::init("");

+ 8 - 12
esp32_marauder/configs.h

@@ -1,7 +1,9 @@
 #ifndef configs_h
 
-  #define MARAUDER_MINI
-//  #define MARAUDER_V4
+  #define configs_h
+
+//  #define MARAUDER_MINI
+  #define MARAUDER_V4
 
   #define MARAUDER_VERSION "v0.9.6"
 
@@ -20,16 +22,6 @@
 
   //// DISPLAY DEFINITIONS
   #ifdef MARAUDER_V4
-    #define TFT_MISO 19
-    #define TFT_MOSI 23
-    #define TFT_SCLK 18
-    #define TFT_CS 27
-    #define TFT_DC 26
-    #define TFT_RST 5
-    #define TFT_BL 32
-    #define TOUCH_CS 21
-    #define SD_CS 4
-
     #define BANNER_TEXT_SIZE 2
 
     #ifndef TFT_WIDTH
@@ -146,6 +138,8 @@
 
   //// MENU DEFINITIONS
   #ifdef MARAUDER_V4
+    #define COMMAND_PREFIX "!"
+    
     // Keypad start position, key sizes and spacing
     #define KEY_X 120 // Centre of key
     #define KEY_Y 50
@@ -161,6 +155,8 @@
   #endif
   
   #ifdef MARAUDER_MINI
+    #define COMMAND_PREFIX "!"
+    
     // Keypad start position, key sizes and spacing
     #define KEY_X (TFT_WIDTH/2) // Centre of key
     #define KEY_Y (TFT_HEIGHT/4.5)

+ 11 - 20
esp32_marauder/esp32_marauder.ino

@@ -29,6 +29,7 @@ https://www.online-utility.org/image/convert/to/XBM
 #include "esp_interface.h"
 #include "a32u4_interface.h"
 #include "settings.h"
+#include "CommandLine.h"
 #include "configs.h"
 
 #ifdef MARAUDER_MINI
@@ -52,11 +53,14 @@ LedInterface led_obj;
 EspInterface esp_obj;
 A32u4Interface a32u4_obj;
 Settings settings_obj;
+CommandLine cli_obj;
+
 
 Adafruit_NeoPixel strip = Adafruit_NeoPixel(Pixels, PIN, NEO_GRB + NEO_KHZ800);
 
 uint32_t currentTime  = 0;
 
+
 void backlightOn() {
   #ifdef MARAUDER_MINI
     digitalWrite(TFT_BL, LOW);
@@ -77,6 +81,7 @@ void backlightOff() {
   #endif
 }
 
+
 void setup()
 {
   pinMode(FLASH_BUTTON, INPUT);
@@ -226,19 +231,17 @@ void setup()
 
   delay(2000);
 
+  cli_obj.RunSetup();
+
   menu_function_obj.RunSetup();
 }
 
 
 void loop()
 {
-  // get the current time
-  //if ((wifi_scan_obj.currentScanMode != WIFI_ATTACK_BEACON_SPAM))
   currentTime = millis();
 
   // Update all of our objects
-  //if ((!display_obj.draw_tft) &&
-  //    (wifi_scan_obj.currentScanMode != OTA_UPDATE))
   if ((!display_obj.draw_tft) && (wifi_scan_obj.currentScanMode != ESP_UPDATE))
   {
     display_obj.main(wifi_scan_obj.currentScanMode);
@@ -247,13 +250,11 @@ void loop()
     battery_obj.main(currentTime);
     temp_obj.main(currentTime);
     settings_obj.main(currentTime);
-    //esp_obj.main(currentTime);
-    //a32u4_obj.main(currentTime);
-    //led_obj.main(currentTime);
-    //if ((wifi_scan_obj.currentScanMode != WIFI_ATTACK_BEACON_SPAM))
     if ((wifi_scan_obj.currentScanMode != WIFI_PACKET_MONITOR) &&
-        (wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL))
+        (wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL)) {
       menu_function_obj.main(currentTime);
+      cli_obj.main(currentTime);
+    }
       if (wifi_scan_obj.currentScanMode == OTA_UPDATE)
         web_obj.main();
     delay(1);
@@ -266,17 +267,7 @@ void loop()
   else if (wifi_scan_obj.currentScanMode == ESP_UPDATE) {
     display_obj.main(wifi_scan_obj.currentScanMode);
     menu_function_obj.main(currentTime);
-    //esp_obj.program();
+    cli_obj.main(currentTime);
     delay(1);
   }
-  //else
-  //{
-  //  web_obj.main();
-  //}
-
-  //Serial.println(wifi_scan_obj.currentScanMode);
-
-  //Serial.print("Run Time: ");
-  //Serial.print(millis() - currentTime);
-  //Serial.println("ms");
 }