Merge branch 'justcallmekoko:master' into Funny-Beacon-Spam

This commit is contained in:
H4W9
2025-09-16 18:47:50 -05:00
committed by GitHub
11 changed files with 341 additions and 37 deletions

View File

@@ -277,3 +277,46 @@ jobs:
draft: true draft: true
files: | files: |
esp32_marauder_v*.bin esp32_marauder_v*.bin
body: |
[justcallmekokollc.com](https://justcallmekokollc.com)
### Please see [GPS Modification](https://github.com/justcallmekoko/ESP32Marauder/wiki/gps-modification) to find out how to add GPS capabilities to your Marauder.
**Flipper Zero Marauder Companion App:**
**Be sure to install the latest version of the [Marauder Companion](https://github.com/0xchocolate/flipperzero-wifi-marauder/releases/latest) to use these new features on your Flipper Zero**
**Additional Resources**
**[Project Issues](https://github.com/justcallmekoko/ESP32Marauder/issues)**
**[Install/Update Instructions](https://github.com/justcallmekoko/ESP32Marauder/wiki/update-firmware)**
**[ESP32 Marauder companion app](https://github.com/0xchocolate/flipperzero-firmware-with-wifi-marauder-companion/releases/latest)**
**[My Discord](https://discord.com/servers/willstunforfood-776211399918878760)**
**Flipper Zero Dev Board is NOT the same thing as Dev Board Pro. Don't get them confused.**
### MARAUDER V6/V6.X WARNING
**Please check which Marauder you are using by looking at the front face of the PCB (side with the screen). If it says v6.1 (or .2), use the v6.1 bin. If it says v6, use the v6 bin.**
## ESP32-C5 (5GHz support)
Please see our [installation guide](https://github.com/justcallmekoko/ESP32Marauder/wiki/ESP32%E2%80%90C5%E2%80%90DevKitC%E2%80%901) for installing the Marauder firmware on your ESP32-C5-DevKitC-1
| Hardware | Binary Version |
| -------- | -------------- |
| v4 (OG) | `_old_hardware.bin` |
| v6 | `_new_hardware.bin`/`_v6.bin` |
| v6.1/v6.2 | `_v6_1.bin` |
| v7 | `_v7.bin` |
| Kit | `_kit.bin` |
| Mini | `_mini.bin` |
| Flipper Zero | `_flipper.bin` |
| MutliBoard S3 | `_multiboardS3.bin` |
| LDDB/NodeMCU/Wemos | `_lddb.bin` |
| Dev Board Pro | `_marauder_dev_board_pro.bin` |
| BFFB | `_marauder_dev_board_pro.bin` |
| ESP32-S2 Reverse Feather | `_rev_feather.bin` |
| CYD 2432S028(R) | `_cyd_2432S028.bin` |
| RL Phantom | `_cyd_2432S024_guition.bin` |
| CYD 2432S028 2 USB | `_cyd_2432S028_2usb.bin` |
| M5 Cardputer | `_m5cardputer.bin` (Available on M5 Burner) |
| ESP32-C5 DevKit | [`_esp32c5_devkit.bin`](https://github.com/justcallmekoko/ESP32Marauder/wiki/ESP32%E2%80%90C5%E2%80%90DevKitC%E2%80%901) |
| AWOK V2/V3 screen (white usb) | `_v6_1.bin` |
| AWOK V2 flipper (orange usb) | `_flipper.bin` |
| AWOK V3 flipper (orange usb) | `_marauder_dev_board_pro.bin` |

32
.github/workflows/close_stale.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Close stale issues
on:
schedule:
- cron: "0 3 * * *" # runs daily at 03:00 UTC
workflow_dispatch: {}
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-stale: 132
days-before-close: 7
stale-issue-message: >
This issue has been automatically marked as stale due to inactivity.
It will be closed in 7 days unless there is further activity.
close-issue-message: >
Closing due to prolonged inactivity. If this is still relevant,
please comment or open a new issue with updated details.
stale-issue-label: "stale"
exempt-issue-labels: "pinned,security,backlog,keep-open"
remove-stale-when-updated: true
operations-per-run: 2000
# Optional: also handle PRs
days-before-pr-stale: -1
days-before-pr-close: -1

Binary file not shown.

View File

@@ -860,6 +860,11 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) || (wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TELNET) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_TELNET) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_DNS) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SMTP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_HTTP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_HTTPS) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RDP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_PWN) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_PWN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_PINESCAN) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_PINESCAN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -949,6 +954,11 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) || (wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TELNET) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_TELNET) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_DNS) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SMTP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_HTTP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_HTTPS) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RDP) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_PWN) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_PWN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_PINESCAN) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_PINESCAN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) || (wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -1181,6 +1191,7 @@ void MenuFunctions::main(uint32_t currentTime)
// Menu navigation and paging // Menu navigation and paging
#ifdef HAS_BUTTONS #ifdef HAS_BUTTONS
// Don't do this for touch screens
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1) || defined(MARAUDER_CYD_MICRO) || defined(MARAUDER_CYD_GUITION) || defined(MARAUDER_CYD_2USB)) #if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1) || defined(MARAUDER_CYD_MICRO) || defined(MARAUDER_CYD_GUITION) || defined(MARAUDER_CYD_2USB))
#if !defined(MARAUDER_M5STICKC) || defined(MARAUDER_M5STICKCP2) #if !defined(MARAUDER_M5STICKC) || defined(MARAUDER_M5STICKCP2)
#if (U_BTN >= 0 || defined(MARAUDER_CARDPUTER)) #if (U_BTN >= 0 || defined(MARAUDER_CARDPUTER))
@@ -1229,6 +1240,7 @@ void MenuFunctions::main(uint32_t currentTime)
} }
#endif #endif
#endif #endif
#if (D_BTN >= 0 || defined(MARAUDER_CARDPUTER)) #if (D_BTN >= 0 || defined(MARAUDER_CARDPUTER))
#if (D_BTN >= 0) #if (D_BTN >= 0)
if (d_btn.justPressed()){ if (d_btn.justPressed()){
@@ -1279,6 +1291,37 @@ void MenuFunctions::main(uint32_t currentTime)
} }
} }
#endif #endif
#if (R_BTN >= 0 || defined(MARAUDER_CARDPUTER))
#if (R_BTN >= 0)
if (r_btn.justPressed()) {
#elif defined(MARAUDER_CARDPUTER)
if (this->isKeyPressed('/')) {
#endif
if (wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF) {
if (wifi_scan_obj.set_channel < 14)
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel + 1);
else
wifi_scan_obj.changeChannel(1);
}
}
#endif
#if (L_BTN >= 0 || defined(MARAUDER_CARDPUTER))
#if (L_BTN >= 0)
if (l_btn.justPressed()) {
#elif defined(MARAUDER_CARDPUTER)
if (this->isKeyPressed(',')) {
#endif
if (wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF) {
if (wifi_scan_obj.set_channel > 1)
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel - 1);
else
wifi_scan_obj.changeChannel(14);
}
}
#endif
if(c_btn_press){ if(c_btn_press){
current_menu->list->get(current_menu->selected).callable(); current_menu->list->get(current_menu->selected).callable();
} }
@@ -1902,7 +1945,7 @@ void MenuFunctions::RunSetup()
deviceMenu.list = new LinkedList<MenuNode>(); deviceMenu.list = new LinkedList<MenuNode>();
#ifdef HAS_GPS #ifdef HAS_GPS
if (gps_obj.getGpsModuleStatus()) { if (gps_obj.getGpsModuleStatus()) {
gpsMenu.list = new LinkedList<MenuNode>(); // H4W9 Added GPS Menu gpsMenu.list = new LinkedList<MenuNode>();
gpsInfoMenu.list = new LinkedList<MenuNode>(); gpsInfoMenu.list = new LinkedList<MenuNode>();
} }
#endif #endif
@@ -2014,8 +2057,8 @@ void MenuFunctions::RunSetup()
wifiStationMenu.name = "Select Stations"; wifiStationMenu.name = "Select Stations";
//#endif //#endif
#ifdef HAS_GPS #ifdef HAS_GPS
gpsMenu.name = "GPS";
gpsInfoMenu.name = "GPS Data"; gpsInfoMenu.name = "GPS Data";
gpsMenu.name = "GPS"; // H4W9 Added GPS Menu
wardrivingMenu.name = "Wardriving"; wardrivingMenu.name = "Wardriving";
#endif #endif
htmlMenu.name = "EP HTML List"; htmlMenu.name = "EP HTML List";
@@ -2041,14 +2084,11 @@ void MenuFunctions::RunSetup()
this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() { this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() {
this->changeMenu(&bluetoothMenu); this->changeMenu(&bluetoothMenu);
}); });
// H4W9 Added GPS Menu option to Main Menu
#ifdef HAS_GPS #ifdef HAS_GPS
this->addNodes(&mainMenu, text1_66, TFTRED, NULL, GPS_MENU, [this]() { this->addNodes(&mainMenu, text1_66, TFTRED, NULL, GPS_MENU, [this]() {
this->changeMenu(&gpsMenu); this->changeMenu(&gpsMenu);
}); });
#endif #endif
this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() { this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() {
this->changeMenu(&deviceMenu); this->changeMenu(&deviceMenu);
}); });
@@ -2124,6 +2164,31 @@ void MenuFunctions::RunSetup()
this->drawStatusBar(); this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_TELNET, TFT_CYAN); wifi_scan_obj.StartScan(WIFI_SCAN_TELNET, TFT_CYAN);
}); });
this->addNodes(&wifiScannerMenu, "SMTP Scan", TFTWHITE, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_SMTP, TFT_CYAN);
});
this->addNodes(&wifiScannerMenu, "DNS Scan", TFTLIME, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_DNS, TFT_CYAN);
});
this->addNodes(&wifiScannerMenu, "HTTP Scan", TFTSKYBLUE, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_HTTP, TFT_CYAN);
});
this->addNodes(&wifiScannerMenu, "HTTPS Scan", TFTYELLOW, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_HTTPS, TFT_CYAN);
});
this->addNodes(&wifiScannerMenu, "RDP Scan", TFTPURPLE, NULL, SCANNERS, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_SCAN_RDP, TFT_CYAN);
});
// Build WiFi sniffer Menu // Build WiFi sniffer Menu
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
@@ -3087,7 +3152,7 @@ void MenuFunctions::RunSetup()
#ifdef HAS_SD #ifdef HAS_SD
if (sd_obj.supported) { if (sd_obj.supported) {
this->addNodes(&deviceMenu, "Delete SD Files", TFTCYAN, NULL, SD_UPDATE, [this]() { /*this->addNodes(&deviceMenu, "Delete SD Files", TFTCYAN, NULL, SD_UPDATE, [this]() {
#ifndef HAS_ILI9341 #ifndef HAS_ILI9341
#ifdef HAS_BUTTONS #ifdef HAS_BUTTONS
this->changeMenu(&sdDeleteMenu); this->changeMenu(&sdDeleteMenu);
@@ -3255,11 +3320,26 @@ void MenuFunctions::RunSetup()
} }
#endif #endif
#endif #endif
});*/
sdDeleteMenu.parentMenu = &deviceMenu;
this->addNodes(&deviceMenu, "Delete SD Files", TFTCYAN, NULL, SD_UPDATE, [this]() {
display_obj.clearScreen();
display_obj.tft.setTextWrap(false);
display_obj.tft.setCursor(0, SCREEN_HEIGHT / 3);
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
display_obj.tft.println("Loading...");
// Clear menu and lists
this->buildSDFileMenu();
this->changeMenu(&sdDeleteMenu);
}); });
} }
#endif #endif
#ifdef HAS_SD /*#ifdef HAS_SD
//#ifndef HAS_ILI9341 //#ifndef HAS_ILI9341
#ifdef HAS_BUTTONS #ifdef HAS_BUTTONS
sdDeleteMenu.parentMenu = &deviceMenu; sdDeleteMenu.parentMenu = &deviceMenu;
@@ -3268,7 +3348,7 @@ void MenuFunctions::RunSetup()
}); });
#endif #endif
//#endif //#endif
#endif #endif*/
// Save Files Menu // Save Files Menu
saveFileMenu.parentMenu = &deviceMenu; saveFileMenu.parentMenu = &deviceMenu;
@@ -3330,13 +3410,11 @@ void MenuFunctions::RunSetup()
this->changeMenu(loadATsMenu.parentMenu); this->changeMenu(loadATsMenu.parentMenu);
}); });
// H4W9 Moved GPS functions to GPS Menu // GPS Menu
// Build GPS Menu
#ifdef HAS_GPS #ifdef HAS_GPS
if (gps_obj.getGpsModuleStatus()) { if (gps_obj.getGpsModuleStatus()) {
gpsMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
gpsMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
this->addNodes(&gpsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() { this->addNodes(&gpsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(gpsMenu.parentMenu); this->changeMenu(gpsMenu.parentMenu);
}); });
@@ -3380,7 +3458,7 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.currentScanMode = GPS_POI; wifi_scan_obj.currentScanMode = GPS_POI;
display_obj.tft.setCursor(0, TFT_HEIGHT / 2); display_obj.tft.setCursor(0, TFT_HEIGHT / 2);
display_obj.clearScreen(); display_obj.clearScreen();
if (wifi_scan_obj.RunGPSInfo(true, false)) if (wifi_scan_obj.RunGPSInfo(true, false, true))
display_obj.showCenterText("POI Logged", TFT_HEIGHT / 2); display_obj.showCenterText("POI Logged", TFT_HEIGHT / 2);
else else
display_obj.showCenterText("POI Log Failed", TFT_HEIGHT / 2); display_obj.showCenterText("POI Log Failed", TFT_HEIGHT / 2);
@@ -3884,6 +3962,46 @@ void MenuFunctions::RunSetup()
} }
//#endif //#endif
void MenuFunctions::setupSDFileList() {
sd_obj.sd_files->clear();
delete sd_obj.sd_files;
sd_obj.sd_files = new LinkedList<String>();
sd_obj.listDirToLinkedList(sd_obj.sd_files);
}
void MenuFunctions::buildSDFileMenu() {
this->setupSDFileList();
sdDeleteMenu.list->clear();
delete sdDeleteMenu.list;
sdDeleteMenu.list = new LinkedList<MenuNode>();
sdDeleteMenu.name = "SD Files";
this->addNodes(&sdDeleteMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(sdDeleteMenu.parentMenu);
});
for (int x = 0; x < sd_obj.sd_files->size(); x++) {
this->addNodes(&sdDeleteMenu, sd_obj.sd_files->get(x), TFTCYAN, NULL, SD_UPDATE, [this, x]() {
if (sd_obj.removeFile("/" + sd_obj.sd_files->get(x))) {
Serial.println("Deleted /" + sd_obj.sd_files->get(x));
display_obj.clearScreen();
display_obj.tft.setTextWrap(false);
display_obj.tft.setCursor(0, SCREEN_HEIGHT / 3);
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
display_obj.tft.println("Deleting /" + sd_obj.sd_files->get(x) + "...");
//sd_obj.sd_files->remove(x);
//sdDeleteMenu.list->remove(x + 1); // +1 for "Back"
this->buildSDFileMenu();
this->changeMenu(&sdDeleteMenu);
}
});
}
}
// Function to show all MenuNodes in a Menu // Function to show all MenuNodes in a Menu
void MenuFunctions::showMenuList(Menu * menu, int layer) void MenuFunctions::showMenuList(Menu * menu, int layer)
{ {

View File

@@ -224,6 +224,8 @@ class MenuFunctions
// Menu icons // Menu icons
void setupSDFileList();
void buildSDFileMenu();
void displayMenuButtons(); void displayMenuButtons();
uint16_t getColor(uint16_t color); uint16_t getColor(uint16_t color);
void drawAvgLine(int16_t value); void drawAvgLine(int16_t value);

View File

@@ -90,7 +90,7 @@ bool SDInterface::initSD() {
this->sd_files = new LinkedList<String>(); this->sd_files = new LinkedList<String>();
this->sd_files->add("Back"); //this->sd_files->add("Back");
return true; return true;
} }

View File

@@ -1018,6 +1018,16 @@ void WiFiScan::StartScan(uint8_t scan_mode, uint16_t color)
RunPortScanAll(scan_mode, color); RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_TELNET) else if (scan_mode == WIFI_SCAN_TELNET)
RunPortScanAll(scan_mode, color); RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_SMTP)
RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_DNS)
RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_HTTP)
RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_HTTPS)
RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_RDP)
RunPortScanAll(scan_mode, color);
this->currentScanMode = scan_mode; this->currentScanMode = scan_mode;
} }
@@ -1191,6 +1201,11 @@ void WiFiScan::StopScan(uint8_t scan_mode)
(currentScanMode == WIFI_PORT_SCAN_ALL) || (currentScanMode == WIFI_PORT_SCAN_ALL) ||
(currentScanMode == WIFI_SCAN_SSH) || (currentScanMode == WIFI_SCAN_SSH) ||
(currentScanMode == WIFI_SCAN_TELNET) || (currentScanMode == WIFI_SCAN_TELNET) ||
(currentScanMode == WIFI_SCAN_SMTP) ||
(currentScanMode == WIFI_SCAN_DNS) ||
(currentScanMode == WIFI_SCAN_HTTP) ||
(currentScanMode == WIFI_SCAN_HTTPS) ||
(currentScanMode == WIFI_SCAN_RDP) ||
(currentScanMode == WIFI_SCAN_PWN) || (currentScanMode == WIFI_SCAN_PWN) ||
(currentScanMode == WIFI_SCAN_PINESCAN) || (currentScanMode == WIFI_SCAN_PINESCAN) ||
(currentScanMode == WIFI_SCAN_MULTISSID) || (currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -1251,7 +1266,7 @@ void WiFiScan::StopScan(uint8_t scan_mode)
else if ((currentScanMode == GPS_TRACKER) || else if ((currentScanMode == GPS_TRACKER) ||
(currentScanMode == GPS_POI)) { (currentScanMode == GPS_POI)) {
this->writeFooter(); this->writeFooter(currentScanMode == GPS_POI);
} }
@@ -1576,6 +1591,16 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
startLog("sshscan"); startLog("sshscan");
else if (scan_mode == WIFI_SCAN_TELNET) else if (scan_mode == WIFI_SCAN_TELNET)
startLog("telnetscan"); startLog("telnetscan");
else if (scan_mode == WIFI_SCAN_SMTP)
startLog("smtp");
else if (scan_mode == WIFI_SCAN_DNS)
startLog("dns");
else if (scan_mode == WIFI_SCAN_HTTP)
startLog("http");
else if (scan_mode == WIFI_SCAN_HTTPS)
startLog("https");
else if (scan_mode == WIFI_SCAN_RDP)
startLog("rdp");
else else
startLog("portscan"); startLog("portscan");
@@ -1605,6 +1630,16 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
display_obj.tft.drawCentreString("SSH Scan",120,16,2); display_obj.tft.drawCentreString("SSH Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_TELNET) else if (scan_mode == WIFI_SCAN_TELNET)
display_obj.tft.drawCentreString("Telnet Scan",120,16,2); display_obj.tft.drawCentreString("Telnet Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_SMTP)
display_obj.tft.drawCentreString("SMTP Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_DNS)
display_obj.tft.drawCentreString("DNS Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_HTTP)
display_obj.tft.drawCentreString("HTTP Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_HTTPS)
display_obj.tft.drawCentreString("HTTPS Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_RDP)
display_obj.tft.drawCentreString("RDP Scan",120,16,2);
#endif #endif
#ifdef HAS_ILI9341 #ifdef HAS_ILI9341
display_obj.touchToExit(); display_obj.touchToExit();
@@ -1615,7 +1650,12 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
this->current_scan_port = 0; this->current_scan_port = 0;
if ((scan_mode == WIFI_SCAN_SSH) || if ((scan_mode == WIFI_SCAN_SSH) ||
(scan_mode == WIFI_SCAN_TELNET)) (scan_mode == WIFI_SCAN_TELNET) ||
(scan_mode == WIFI_SCAN_SMTP) ||
(scan_mode == WIFI_SCAN_DNS) ||
(scan_mode == WIFI_SCAN_HTTP) ||
(scan_mode == WIFI_SCAN_HTTPS) ||
(scan_mode == WIFI_SCAN_RDP))
this->current_scan_ip = this->gateway; this->current_scan_ip = this->gateway;
Serial.println("Starting Port Scan with..."); Serial.println("Starting Port Scan with...");
@@ -2221,30 +2261,40 @@ void WiFiScan::RunGenerateSSIDs(int count) {
#endif #endif
} }
void WiFiScan::logPoint(String lat, String lon, float alt, String datetime) { void WiFiScan::logPoint(String lat, String lon, float alt, String datetime, bool poi) {
datetime.replace(" ", "T"); datetime.replace(" ", "T");
datetime += "Z"; datetime += "Z";
buffer_obj.append(" <trkpt lat=\"" + lat + "\" lon=\"" + lon + "\">\n"); if (!poi)
buffer_obj.append(" <trkpt lat=\"" + lat + "\" lon=\"" + lon + "\">\n");
else
buffer_obj.append(" <wpt lat=\"" + lat + "\" lon=\"" + lon + "\">\n");
buffer_obj.append(" <ele>" + String(alt, 2) + "</ele>\n"); buffer_obj.append(" <ele>" + String(alt, 2) + "</ele>\n");
buffer_obj.append(" <time>" + datetime + "</time>\n"); buffer_obj.append(" <time>" + datetime + "</time>\n");
buffer_obj.append(" </trkpt>\n"); if (!poi)
buffer_obj.append(" </trkpt>\n");
else
buffer_obj.append(" </wpt>\n");
//gpxFile.flush(); //gpxFile.flush();
} }
void WiFiScan::writeHeader() { void WiFiScan::writeHeader(bool poi) {
Serial.println("Writing header to GPX file..."); Serial.println("Writing header to GPX file...");
buffer_obj.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); buffer_obj.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
buffer_obj.append("<gpx version=\"1.1\" creator=\"ESP32 GPS Logger\" xmlns=\"http://www.topografix.com/GPX/1/1\">\n"); buffer_obj.append("<gpx version=\"1.1\" creator=\"ESP32 GPS Logger\" xmlns=\"http://www.topografix.com/GPX/1/1\">\n");
buffer_obj.append(" <trk>\n"); if (!poi)
buffer_obj.append(" <trk>\n");
buffer_obj.append(" <name>ESP32 Track</name>\n"); buffer_obj.append(" <name>ESP32 Track</name>\n");
buffer_obj.append(" <trkseg>\n"); if (!poi)
buffer_obj.append(" <trkseg>\n");
} }
void WiFiScan::writeFooter() { void WiFiScan::writeFooter(bool poi) {
Serial.println("Writing footer to GPX file...\n"); Serial.println("Writing footer to GPX file...\n");
buffer_obj.append(" </trkseg>\n"); if (!poi) {
buffer_obj.append(" </trk>\n"); buffer_obj.append(" </trkseg>\n");
buffer_obj.append(" </trk>\n");
}
buffer_obj.append("</gpx>\n"); buffer_obj.append("</gpx>\n");
} }
@@ -2254,18 +2304,18 @@ void WiFiScan::RunSetupGPSTracker(uint8_t scan_mode) {
else if (scan_mode == GPS_POI) else if (scan_mode == GPS_POI)
this->startGPX("poi"); this->startGPX("poi");
this->writeHeader(); this->writeHeader(scan_mode == GPS_POI);
initTime = millis(); initTime = millis();
} }
bool WiFiScan::RunGPSInfo(bool tracker, bool display) { bool WiFiScan::RunGPSInfo(bool tracker, bool display, bool poi) {
bool return_val = true; bool return_val = true;
#ifdef HAS_GPS #ifdef HAS_GPS
String text=gps_obj.getText(); String text=gps_obj.getText();
if (tracker) { if (tracker) {
if (gps_obj.getFixStatus()) { if (gps_obj.getFixStatus()) {
this->logPoint(gps_obj.getLat(), gps_obj.getLon(), gps_obj.getAlt(), gps_obj.getDatetime()); this->logPoint(gps_obj.getLat(), gps_obj.getLon(), gps_obj.getAlt(), gps_obj.getDatetime(), poi);
} }
else else
return_val = false; return_val = false;
@@ -8134,8 +8184,45 @@ void WiFiScan::pingScan(uint8_t scan_mode) {
} }
} }
} }
else {
int targ_port = 0;
if (scan_mode == WIFI_SCAN_SSH)
targ_port = 22;
else if (scan_mode == WIFI_SCAN_TELNET)
targ_port = 23;
else if (scan_mode == WIFI_SCAN_SMTP)
targ_port = 25;
else if (scan_mode == WIFI_SCAN_DNS)
targ_port = 53;
else if (scan_mode == WIFI_SCAN_HTTP)
targ_port = 80;
else if (scan_mode == WIFI_SCAN_HTTPS)
targ_port = 443;
else if (scan_mode == WIFI_SCAN_RDP)
targ_port = 3389;
else if (scan_mode == WIFI_SCAN_SSH) { if (this->current_scan_ip != IPAddress(0, 0, 0, 0)) {
this->current_scan_ip = getNextIP(this->current_scan_ip, this->subnet);
#ifndef HAS_DUAL_BAND
if (this->singleARP(this->current_scan_ip)) {
#else
if (this->isHostAlive(this->current_scan_ip)) {
#endif
Serial.println(this->current_scan_ip);
this->portScan(scan_mode, targ_port);
}
}
else {
if (!this->scan_complete) {
this->scan_complete = true;
#ifdef HAS_SCREEN
display_obj.display_buffer->add("Scan complete");
#endif
}
}
}
/*else if (scan_mode == WIFI_SCAN_SSH) {
if (this->current_scan_ip != IPAddress(0, 0, 0, 0)) { if (this->current_scan_ip != IPAddress(0, 0, 0, 0)) {
this->current_scan_ip = getNextIP(this->current_scan_ip, this->subnet); this->current_scan_ip = getNextIP(this->current_scan_ip, this->subnet);
#ifndef HAS_DUAL_BAND #ifndef HAS_DUAL_BAND
@@ -8177,7 +8264,7 @@ void WiFiScan::pingScan(uint8_t scan_mode) {
#endif #endif
} }
} }
} }*/
} }
void WiFiScan::portScan(uint8_t scan_mode, uint16_t targ_port) { void WiFiScan::portScan(uint8_t scan_mode, uint16_t targ_port) {
@@ -8272,6 +8359,21 @@ void WiFiScan::main(uint32_t currentTime)
else if (currentScanMode == WIFI_SCAN_TELNET) { else if (currentScanMode == WIFI_SCAN_TELNET) {
this->pingScan(WIFI_SCAN_TELNET); this->pingScan(WIFI_SCAN_TELNET);
} }
else if (currentScanMode == WIFI_SCAN_SMTP) {
this->pingScan(WIFI_SCAN_SMTP);
}
else if (currentScanMode == WIFI_SCAN_DNS) {
this->pingScan(WIFI_SCAN_DNS);
}
else if (currentScanMode == WIFI_SCAN_HTTP) {
this->pingScan(WIFI_SCAN_HTTP);
}
else if (currentScanMode == WIFI_SCAN_HTTPS) {
this->pingScan(WIFI_SCAN_HTTPS);
}
else if (currentScanMode == WIFI_SCAN_RDP) {
this->pingScan(WIFI_SCAN_RDP);
}
else if (currentScanMode == WIFI_SCAN_SIG_STREN) { else if (currentScanMode == WIFI_SCAN_SIG_STREN) {
#ifdef HAS_ILI9341 #ifdef HAS_ILI9341
this->signalAnalyzerLoop(currentTime); this->signalAnalyzerLoop(currentTime);

View File

@@ -130,6 +130,11 @@
#define WIFI_ATTACK_SLEEP 61 #define WIFI_ATTACK_SLEEP 61
#define WIFI_ATTACK_SLEEP_TARGETED 62 #define WIFI_ATTACK_SLEEP_TARGETED 62
#define GPS_POI 63 #define GPS_POI 63
#define WIFI_SCAN_DNS 64
#define WIFI_SCAN_HTTP 65
#define WIFI_SCAN_HTTPS 66
#define WIFI_SCAN_SMTP 67
#define WIFI_SCAN_RDP 68
#define WIFI_ATTACK_FUNNY_BEACON 9999 #define WIFI_ATTACK_FUNNY_BEACON 9999
@@ -581,8 +586,8 @@ class WiFiScan
void RunPortScanAll(uint8_t scan_mode, uint16_t color); void RunPortScanAll(uint8_t scan_mode, uint16_t color);
bool checkMem(); bool checkMem();
void parseBSSID(const char* bssidStr, uint8_t* bssid); void parseBSSID(const char* bssidStr, uint8_t* bssid);
void writeHeader(); void writeHeader(bool poi = false);
void writeFooter(); void writeFooter(bool poi = false);
public: public:
@@ -693,8 +698,8 @@ class WiFiScan
#ifdef HAS_SCREEN #ifdef HAS_SCREEN
int8_t checkAnalyzerButtons(uint32_t currentTime); int8_t checkAnalyzerButtons(uint32_t currentTime);
#endif #endif
bool RunGPSInfo(bool tracker = false, bool display = true); bool RunGPSInfo(bool tracker = false, bool display = true, bool poi = false);
void logPoint(String lat, String lon, float alt, String datetime); void logPoint(String lat, String lon, float alt, String datetime, bool poi = false);
void setMac(); void setMac();
void renderRawStats(); void renderRawStats();
void renderPacketRate(); void renderPacketRate();

View File

@@ -30,7 +30,7 @@
//#define MARAUDER_CARDPUTER //#define MARAUDER_CARDPUTER
//// END BOARD TARGETS //// END BOARD TARGETS
#define MARAUDER_VERSION "v1.8.5" #define MARAUDER_VERSION "v1.8.6"
#define GRAPH_REFRESH 100 #define GRAPH_REFRESH 100
@@ -382,7 +382,7 @@
//#define HAS_BATTERY //#define HAS_BATTERY
//#define HAS_BT //#define HAS_BT
//#define HAS_BUTTONS //#define HAS_BUTTONS
//#define HAS_NEOPIXEL_LED #define HAS_NEOPIXEL_LED
//#define HAS_PWR_MGMT //#define HAS_PWR_MGMT
//#define HAS_SCREEN //#define HAS_SCREEN
#define HAS_GPS #define HAS_GPS
@@ -1976,6 +1976,8 @@
#define PIN 4 #define PIN 4
#elif defined(MARAUDER_CYD_2USB) #elif defined(MARAUDER_CYD_2USB)
#define PIN 4 #define PIN 4
#elif defined(MARAUDER_C5)
#define PIN 27
#else #else
#define PIN 25 #define PIN 25
#endif #endif