Add some command line stuff

This commit is contained in:
Just Call Me Koko
2022-05-03 00:22:11 -04:00
parent 3b09650363
commit 2c4edd012d
8 changed files with 82 additions and 213 deletions

View File

@@ -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);
}
}

View File

@@ -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

View File

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

View File

@@ -1445,7 +1445,7 @@ void MenuFunctions::RunSetup()
display_obj.clearScreen(); display_obj.clearScreen();
this->drawStatusBar(); this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN); wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);
}); }, "probescan");
addNodes(&wifiSnifferMenu, "Beacon Sniff", TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() { addNodes(&wifiSnifferMenu, "Beacon Sniff", TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
display_obj.clearScreen(); display_obj.clearScreen();
this->drawStatusBar(); this->drawStatusBar();
@@ -1476,7 +1476,7 @@ void MenuFunctions::RunSetup()
display_obj.clearScreen(); display_obj.clearScreen();
this->drawStatusBar(); this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA); wifi_scan_obj.StartScan(WIFI_SCAN_TARGET_AP, TFT_MAGENTA);
}); }, "scanap");
// Build WiFi attack menu // Build WiFi attack menu
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent 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 // 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; 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}); //menu->list->add(MenuNode{name, color, place, callable});
} }

View File

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

View File

@@ -804,67 +804,6 @@ void WiFiScan::RunEapolScan(uint8_t scan_mode, uint16_t color)
initTime = millis(); 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 // Function to prepare for beacon mimic
void WiFiScan::RunMimicFlood(uint8_t scan_mode, uint16_t color) { 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"); //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) void WiFiScan::RunPwnScan(uint8_t scan_mode, uint16_t color)
{ {
sd_obj.openCapture("pwnagotchi"); 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_1 = 50;
display_obj.print_delay_2 = 20; 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::setScanFilterMode(CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE);
NimBLEDevice::setScanDuplicateCacheSize(200); NimBLEDevice::setScanDuplicateCacheSize(200);
NimBLEDevice::init(""); NimBLEDevice::init("");

View File

@@ -1,7 +1,9 @@
#ifndef configs_h #ifndef configs_h
#define MARAUDER_MINI #define configs_h
// #define MARAUDER_V4
// #define MARAUDER_MINI
#define MARAUDER_V4
#define MARAUDER_VERSION "v0.9.6" #define MARAUDER_VERSION "v0.9.6"
@@ -20,16 +22,6 @@
//// DISPLAY DEFINITIONS //// DISPLAY DEFINITIONS
#ifdef MARAUDER_V4 #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 #define BANNER_TEXT_SIZE 2
#ifndef TFT_WIDTH #ifndef TFT_WIDTH
@@ -146,6 +138,8 @@
//// MENU DEFINITIONS //// MENU DEFINITIONS
#ifdef MARAUDER_V4 #ifdef MARAUDER_V4
#define COMMAND_PREFIX "!"
// Keypad start position, key sizes and spacing // Keypad start position, key sizes and spacing
#define KEY_X 120 // Centre of key #define KEY_X 120 // Centre of key
#define KEY_Y 50 #define KEY_Y 50
@@ -161,6 +155,8 @@
#endif #endif
#ifdef MARAUDER_MINI #ifdef MARAUDER_MINI
#define COMMAND_PREFIX "!"
// Keypad start position, key sizes and spacing // Keypad start position, key sizes and spacing
#define KEY_X (TFT_WIDTH/2) // Centre of key #define KEY_X (TFT_WIDTH/2) // Centre of key
#define KEY_Y (TFT_HEIGHT/4.5) #define KEY_Y (TFT_HEIGHT/4.5)

View File

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