Compare commits

..

60 Commits

Author SHA1 Message Date
Just Call Me Koko
ecfdcd3bdc Merge pull request #913 from justcallmekoko/develop
Develop
2025-09-21 19:16:55 -04:00
Just Call Me Koko
8e54de7b2d Merge pull request #884 from H4W9/Funny-Beacon-Spam
Funny SSID Beacon Spam Attack
2025-09-21 18:25:01 -04:00
H4W9
77f3fa7025 Update WiFiScan.h 2025-09-16 19:14:23 -05:00
H4W9
b86929256f Merge branch 'justcallmekoko:master' into Funny-Beacon-Spam 2025-09-16 18:47:50 -05:00
H4W9
16d0101ce6 Update WiFiScan.h 2025-09-16 18:47:23 -05:00
Just Call Me Koko
e3668645e3 Merge pull request #908 from justcallmekoko/develop
Add new port scan presets and improve SD delete menu
2025-09-15 13:58:15 -04:00
Just Call Me Koko
ea0be07c91 Improve SD delete menu 2025-09-12 11:35:52 -04:00
Just Call Me Koko
e4d483d736 Enable new port scans 2025-09-11 11:18:21 -04:00
Just Call Me Koko
c2aba77cc0 Add more port scanners 2025-09-11 10:57:41 -04:00
Just Call Me Koko
78b73f4ca2 Merge pull request #898 from justcallmekoko/develop
Update stale threshold
2025-09-04 10:15:59 -04:00
Just Call Me Koko
ef4ec4edad Update stale threshold 2025-09-04 10:06:45 -04:00
Just Call Me Koko
c6daeb5517 Merge pull request #897 from justcallmekoko/develop
Adjust operations per run
2025-09-04 10:01:25 -04:00
Just Call Me Koko
dcd493d474 Adjust operations per run 2025-09-04 10:00:47 -04:00
Just Call Me Koko
68bd55b162 Merge pull request #896 from justcallmekoko/develop
Add stale issue workflow
2025-09-04 09:50:58 -04:00
Just Call Me Koko
90db402b6b Add stale issue workflow 2025-09-04 09:50:09 -04:00
Just Call Me Koko
e064c3beed Merge pull request #894 from justcallmekoko/develop
Adjust GPS POI log format
2025-09-03 14:58:00 -04:00
Just Call Me Koko
18d71769da Adjust GPS POI log format 2025-09-03 13:57:00 -04:00
Just Call Me Koko
a259cbcc6d Merge pull request #893 from justcallmekoko/develop
L/R buttons change channel on menu
2025-09-03 13:44:35 -04:00
Just Call Me Koko
482f4114e0 L/R buttons change channel on menu 2025-09-03 13:32:47 -04:00
Just Call Me Koko
a917ff2211 Merge pull request #892 from justcallmekoko/develop
Enable LED for C5 DevKit
2025-09-03 12:30:59 -04:00
Just Call Me Koko
92e1795ce5 Put H4W9 stuff back 2025-09-03 12:10:03 -04:00
Just Call Me Koko
605086ea59 Enable LED for C5 2025-09-03 12:03:58 -04:00
Just Call Me Koko
554d358cba Merge pull request #891 from justcallmekoko/develop
GPS Menu
2025-09-02 19:33:03 -04:00
H4W9
614c7099f9 Update README.md
Fix my goof-up... I had accidentally removed the Marauder Logo
2025-08-26 12:44:45 -05:00
Just Call Me Koko
d131491bbf Add updated bin for C5 2025-08-26 10:42:05 -04:00
Just Call Me Koko
dcf3b13552 Merge pull request #882 from H4W9/H4W9_patch-2
Add GPS to Main Menu
2025-08-26 07:31:53 -07:00
H4W9
4b6cb6582d Update MenuFunctions.cpp 2025-08-22 19:28:40 -05:00
H4W9
7a41d4be14 Merge branch 'H4W9_GPSMenu_FunnySpam' into Funny-Beacon-Spam 2025-08-21 11:33:45 -05:00
H4W9
2d195ea697 Update lang_var.h 2025-08-21 11:28:05 -05:00
H4W9
b1c256036f Update WiFiScan.cpp 2025-08-21 11:26:44 -05:00
H4W9
ac3e4ab427 Update MenuFunctions.cpp 2025-08-21 11:26:09 -05:00
H4W9
3ca777e711 Merge pull request #1 from H4W9/H4W9_patch-2
H4 w9 patch 2
2025-08-21 11:20:44 -05:00
H4W9
938a691010 Update MenuFunctions.cpp
Change text1_67 to text1_66
2025-08-21 10:57:00 -05:00
H4W9
3c61198d09 Update lang_var.h
Change text1_67 to text1_66
2025-08-21 10:54:16 -05:00
H4W9
bbf245859a Update CommandLine.h
Add Funny SSID Spam
2025-08-20 23:54:50 -05:00
H4W9
fbf2e9ab18 Update CommandLine.cpp
Add Funny SSID Spam to CLI
2025-08-20 23:52:36 -05:00
H4W9
de05c9be2b Update WiFiScan.cpp 2025-08-20 22:51:43 -05:00
H4W9
4e88212e2f Update WiFiScan.cpp 2025-08-20 22:38:23 -05:00
H4W9
ef5d9527ef Update MenuFunctions.cpp 2025-08-20 22:25:15 -05:00
H4W9
7f522d8e15 Update WiFiScan.cpp 2025-08-20 20:56:10 -05:00
H4W9
f35d88122c Update lang_var.h 2025-08-20 20:28:07 -05:00
H4W9
fc8f9629fa Update WiFiScan.cpp
Add Funny Beacon Spam attack
2025-08-20 20:26:29 -05:00
H4W9
5a1269d062 Update WiFiScan.h
add Funny Beacon Spam attack defs
2025-08-20 20:12:04 -05:00
H4W9
3c093f6c9c Update lang_var.h
Add text1_68[] = "Funny Beacon Spam";
2025-08-20 20:01:44 -05:00
H4W9
6840d4c7ac Update MenuFunctions.cpp
Add Funny Beacon button to the Wi-Fi Attack Menu
2025-08-20 20:00:05 -05:00
H4W9
d5c5e0e011 Update MenuFunctions.h
define funny beacon icon
2025-08-20 19:52:38 -05:00
H4W9
2f9d70b725 Update Assets.h
add funny beacon icon
2025-08-20 19:49:57 -05:00
H4W9
06293a0a4c Add files via upload 2025-08-20 19:48:17 -05:00
H4W9
c51171df76 Update lang_var.h 2025-08-20 12:54:39 -05:00
H4W9
030035f68d Update lang_var.h 2025-08-20 12:44:13 -05:00
H4W9
9a265f805b Update lang_var.h
Add GPS Menu text
2025-08-20 12:43:39 -05:00
H4W9
6497e741d6 Update MenuFunctions.cpp Add GPS Menu to Main Menu
Add GPS Menu to Main Menu and move GPS functions to GPS Menu.
2025-08-20 12:33:37 -05:00
H4W9
e5387b80fc Update README.md 2025-08-20 11:32:10 -05:00
H4W9
53613de14b Update MenuFunctions.h to add GPS Menu
Just adds the GPS Menu
2025-08-20 10:31:24 -05:00
Just Call Me Koko
3cf7702e23 Merge pull request #872 from justcallmekoko/develop
Fix time format for GPS and change select button for cardputer
2025-08-13 12:51:15 -07:00
Just Call Me Koko
e8f449ad01 Change select button for cardputer 2025-08-13 15:42:36 -04:00
Just Call Me Koko
b2ed6c70e1 Update enclosures 2025-08-10 23:23:28 -04:00
Just Call Me Koko
d8b9e3b138 Merge pull request #866 from AWOK559/develop
added c5 adapter case
2025-08-07 21:13:56 -07:00
Just Call Me Koko
ba35343600 Update the rest of the time format for GPS 2025-08-07 23:07:51 -04:00
AWOK
02f0ecf85b added c5 adapter case 2025-08-07 19:07:33 -07:00
30 changed files with 527 additions and 72 deletions

View File

@@ -277,3 +277,46 @@ jobs:
draft: true
files: |
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

@@ -227,7 +227,13 @@ PROGMEM static const unsigned char menu_icons[][66] = {
0x67, 0xDB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0x1F, 0xF8, 0x0F, 0xF0, 0x07, 0xE0, 0x07, 0xE0, 0x07, 0xE0, // FORCE: 39
0x67, 0xE6, 0x77, 0xEE, 0x87, 0xE0, 0x8F, 0xF1, 0x0F, 0xF0, 0x4F, 0xF5,
0x1F, 0xF8, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF}
0x1F, 0xF8, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xC0, 0x3F, 0x3F, 0x3F, 0x3F, // FUNNY BEACON: 40
0xDF, 0xFF, 0x3E, 0xEF, 0xFF, 0x3D, 0x77, 0xBF, 0x3B, 0x77, 0x3E, 0x3B,
0x7B, 0x3E, 0x37, 0x7B, 0xBF, 0x37, 0xFB, 0xF7, 0x37, 0xFB, 0xF7, 0x37,
0xFB, 0xF3, 0x37, 0xBB, 0x7F, 0x37, 0x37, 0x3F, 0x3B, 0x77, 0x80, 0x3B,
0xEF, 0xE1, 0x3D, 0xDF, 0xFF, 0x3E, 0x3F, 0x3F, 0x3F, 0xFF, 0xC0, 0x3F,
0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F}
};
/*#ifndef MARAUDER_MINI

View File

@@ -976,6 +976,14 @@ void CommandLine::runCommand(String input) {
#endif
wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);
}
else if (attack_type == ATTACK_TYPE_FUNNY) {
Serial.println("Starting Funny SSID Beacon spam. Stop with " + (String)STOPSCAN_CMD);
#ifdef HAS_SCREEN
display_obj.clearScreen();
menu_function_obj.drawStatusBar();
#endif
wifi_scan_obj.StartScan(WIFI_ATTACK_FUNNY_BEACON, TFT_CYAN);
}
else {
Serial.println("Attack type not properly defined");
return;

View File

@@ -82,6 +82,7 @@ const char PROGMEM ATTACK_CMD[] = "attack";
const char PROGMEM ATTACK_TYPE_DEAUTH[] = "deauth";
const char PROGMEM ATTACK_TYPE_BEACON[] = "beacon";
const char PROGMEM ATTACK_TYPE_PROBE[] = "probe";
const char PROGMEM ATTACK_TYPE_FUNNY[] = "funny";
const char PROGMEM ATTACK_TYPE_RR[] = "rickroll";
const char PROGMEM ATTACK_TYPE_BM[] = "badmsg";
const char PROGMEM ATTACK_TYPE_S[] = "sleep";

View File

@@ -469,15 +469,37 @@ String GpsInterface::dt_string_from_gps(){
String datetime = "";
if (nmea.isValid() && nmea.getYear() > 0){
datetime += nmea.getYear();
datetime += "-";
datetime += nmea.getMonth();
uint8_t month = nmea.getMonth();
if (month < 10)
datetime += "0";
datetime += month;
datetime += "-";
datetime += nmea.getDay();
uint8_t day = nmea.getDay();
if (day < 10)
datetime += "0";
datetime += day;
datetime += " ";
datetime += nmea.getHour();
uint8_t hour = nmea.getHour();
if (hour < 10)
datetime += "0";
datetime += hour;
datetime += ":";
datetime += nmea.getMinute();
uint8_t minute = nmea.getMinute();
if (minute < 10)
datetime += "0";
datetime += minute;
datetime += ":";
uint8_t seconds = nmea.getSecond();
if (seconds < 10)
datetime += "0";

View File

@@ -819,6 +819,7 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_SLEEP) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_SLEEP_TARGETED) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_MIMIC) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_FUNNY_BEACON) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_RICK_ROLL))
display_obj.displayBuffer();
@@ -859,6 +860,11 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) ||
(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_PINESCAN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -876,6 +882,7 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP_TARGETED) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_FUNNY_BEACON) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
(wifi_scan_obj.currentScanMode == BT_SCAN_ALL) ||
@@ -911,8 +918,10 @@ void MenuFunctions::main(uint32_t currentTime)
#ifdef HAS_BUTTONS
#if (C_BTN >= 0)
#if (C_BTN >= 0) && !defined(MARAUDER_CARDPUTER)
bool c_btn_press = c_btn.justPressed();
#elif defined(MARAUDER_CARDPUTER)
bool c_btn_press = this->isKeyPressed('(');
#endif
#ifndef HAS_ILI9341
@@ -945,6 +954,11 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_PORT_SCAN_ALL) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SSH) ||
(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_PINESCAN) ||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -962,6 +976,7 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_SLEEP_TARGETED) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_MIMIC) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_FUNNY_BEACON) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
(wifi_scan_obj.currentScanMode == BT_SCAN_ALL) ||
@@ -1024,6 +1039,7 @@ void MenuFunctions::main(uint32_t currentTime)
(wifi_scan_obj.currentScanMode != WIFI_SCAN_RAW_CAPTURE) &&
(wifi_scan_obj.currentScanMode != WIFI_SCAN_CHAN_ANALYZER) &&
(wifi_scan_obj.currentScanMode != WIFI_SCAN_SIG_STREN) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_FUNNY_BEACON) &&
(wifi_scan_obj.currentScanMode != WIFI_ATTACK_RICK_ROLL))
{
// Need this to set all keys to false
@@ -1175,6 +1191,7 @@ void MenuFunctions::main(uint32_t currentTime)
// Menu navigation and paging
#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_M5STICKC) || defined(MARAUDER_M5STICKCP2)
#if (U_BTN >= 0 || defined(MARAUDER_CARDPUTER))
@@ -1223,6 +1240,7 @@ void MenuFunctions::main(uint32_t currentTime)
}
#endif
#endif
#if (D_BTN >= 0 || defined(MARAUDER_CARDPUTER))
#if (D_BTN >= 0)
if (d_btn.justPressed()){
@@ -1273,9 +1291,41 @@ void MenuFunctions::main(uint32_t currentTime)
}
}
#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){
current_menu->list->get(current_menu->selected).callable();
}
#endif
#endif
}
@@ -1895,6 +1945,7 @@ void MenuFunctions::RunSetup()
deviceMenu.list = new LinkedList<MenuNode>();
#ifdef HAS_GPS
if (gps_obj.getGpsModuleStatus()) {
gpsMenu.list = new LinkedList<MenuNode>();
gpsInfoMenu.list = new LinkedList<MenuNode>();
}
#endif
@@ -2006,6 +2057,7 @@ void MenuFunctions::RunSetup()
wifiStationMenu.name = "Select Stations";
//#endif
#ifdef HAS_GPS
gpsMenu.name = "GPS";
gpsInfoMenu.name = "GPS Data";
wardrivingMenu.name = "Wardriving";
#endif
@@ -2032,6 +2084,11 @@ void MenuFunctions::RunSetup()
this->addNodes(&mainMenu, text_table1[19], TFTCYAN, NULL, BLUETOOTH, [this]() {
this->changeMenu(&bluetoothMenu);
});
#ifdef HAS_GPS
this->addNodes(&mainMenu, text1_66, TFTRED, NULL, GPS_MENU, [this]() {
this->changeMenu(&gpsMenu);
});
#endif
this->addNodes(&mainMenu, text_table1[9], TFTBLUE, NULL, DEVICE, [this]() {
this->changeMenu(&deviceMenu);
});
@@ -2107,6 +2164,31 @@ void MenuFunctions::RunSetup()
this->drawStatusBar();
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
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
@@ -2255,6 +2337,11 @@ void MenuFunctions::RunSetup()
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_SPAM, TFT_ORANGE);
});
this->addNodes(&wifiAttackMenu, text1_67, TFTCYAN, NULL, FUNNY_BEACON, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
wifi_scan_obj.StartScan(WIFI_ATTACK_FUNNY_BEACON, TFT_CYAN);
});
this->addNodes(&wifiAttackMenu, text_table1[52], TFTYELLOW, NULL, RICK_ROLL, [this]() {
display_obj.clearScreen();
this->drawStatusBar();
@@ -3065,7 +3152,7 @@ void MenuFunctions::RunSetup()
#ifdef HAS_SD
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
#ifdef HAS_BUTTONS
this->changeMenu(&sdDeleteMenu);
@@ -3131,7 +3218,11 @@ void MenuFunctions::RunSetup()
this->displayCurrentMenu();
}
#endif
if (c_btn.justPressed()) {
#if (C_BTN >= 0) && !defined(MARAUDER_CARDPUTER)
if(c_btn.justPressed()){
#elif defined(MARAUDER_CARDPUTER)
if (this->isKeyPressed('(')) {
#endif
if (sd_obj.sd_files->get(sd_file_index) != "Back") {
if (sd_obj.removeFile("/" + sd_obj.sd_files->get(sd_file_index)))
Serial.println("Successfully Removed File: /" + sd_obj.sd_files->get(sd_file_index));
@@ -3229,11 +3320,26 @@ void MenuFunctions::RunSetup()
}
#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
#ifdef HAS_SD
/*#ifdef HAS_SD
//#ifndef HAS_ILI9341
#ifdef HAS_BUTTONS
sdDeleteMenu.parentMenu = &deviceMenu;
@@ -3242,7 +3348,7 @@ void MenuFunctions::RunSetup()
});
#endif
//#endif
#endif
#endif*/
// Save Files Menu
saveFileMenu.parentMenu = &deviceMenu;
@@ -3307,32 +3413,38 @@ void MenuFunctions::RunSetup()
// GPS Menu
#ifdef HAS_GPS
if (gps_obj.getGpsModuleStatus()) {
this->addNodes(&deviceMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() {
gpsMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
this->addNodes(&gpsMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
this->changeMenu(gpsMenu.parentMenu);
});
this->addNodes(&gpsMenu, "GPS Data", TFTRED, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
this->changeMenu(&gpsInfoMenu);
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN);
});
this->addNodes(&deviceMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() {
this->addNodes(&gpsMenu, "NMEA Stream", TFTORANGE, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_NMEA;
this->changeMenu(&gpsInfoMenu);
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_NMEA, TFT_ORANGE);
});
this->addNodes(&deviceMenu, "GPS Tracker", TFTGREEN, NULL, GPS_MENU, [this]() {
this->addNodes(&gpsMenu, "GPS Tracker", TFTGREEN, NULL, GPS_MENU, [this]() {
wifi_scan_obj.currentScanMode = GPS_TRACKER;
this->changeMenu(&gpsInfoMenu);
wifi_scan_obj.StartScan(GPS_TRACKER, TFT_CYAN);
});
this->addNodes(&deviceMenu, "GPS POI", TFTCYAN, NULL, GPS_MENU, [this]() {
this->addNodes(&gpsMenu, "GPS POI", TFTCYAN, NULL, GPS_MENU, [this]() {
wifi_scan_obj.StartScan(GPS_POI, TFT_CYAN);
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
this->changeMenu(&gpsPOIMenu);
});
// GPS POI Menu
gpsPOIMenu.parentMenu = &deviceMenu;
gpsPOIMenu.parentMenu = &gpsMenu;
this->addNodes(&gpsPOIMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
wifi_scan_obj.currentScanMode = GPS_POI;
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
@@ -3346,7 +3458,7 @@ void MenuFunctions::RunSetup()
wifi_scan_obj.currentScanMode = GPS_POI;
display_obj.tft.setCursor(0, TFT_HEIGHT / 2);
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);
else
display_obj.showCenterText("POI Log Failed", TFT_HEIGHT / 2);
@@ -3357,7 +3469,7 @@ void MenuFunctions::RunSetup()
});
// GPS Info Menu
gpsInfoMenu.parentMenu = &deviceMenu;
gpsInfoMenu.parentMenu = &gpsMenu;
this->addNodes(&gpsInfoMenu, text09, TFTLIGHTGREY, NULL, 0, [this]() {
if(wifi_scan_obj.currentScanMode != GPS_TRACKER)
wifi_scan_obj.currentScanMode = WIFI_SCAN_OFF;
@@ -3600,7 +3712,7 @@ void MenuFunctions::RunSetup()
#endif
// Add SSID
#ifdef HAS_C
#ifdef HAS_C && !defined(MARAUDER_CARDPUTER)
if (c_btn.justPressed()) {
while (!c_btn.justReleased()) {
c_btn.justPressed(); // Need to continue updating button hold status. My shitty library.
@@ -3628,13 +3740,45 @@ void MenuFunctions::RunSetup()
#ifdef MARAUDER_CARDPUTER
for (int i = 0; i < 95; i++) {
if (this->isKeyPressed(M5CardputerKeyboard._ascii_list[i])) {
pressed = true;
wifi_scan_obj.current_mini_kb_ssid.concat(M5CardputerKeyboard._ascii_list[i]);
if ((M5CardputerKeyboard._ascii_list[i] != '(') &&
(M5CardputerKeyboard._ascii_list[i] != '`')) {
if (this->isKeyPressed(M5CardputerKeyboard._ascii_list[i])) {
pressed = true;
wifi_scan_obj.current_mini_kb_ssid.concat(M5CardputerKeyboard._ascii_list[i]);
}
if (this->isKeyPressed(KEY_BACKSPACE)) {
pressed = true;
wifi_scan_obj.current_mini_kb_ssid.remove(wifi_scan_obj.current_mini_kb_ssid.length() - 1);
}
}
if (this->isKeyPressed(KEY_BACKSPACE)) {
pressed = true;
wifi_scan_obj.current_mini_kb_ssid.remove(wifi_scan_obj.current_mini_kb_ssid.length() - 1);
}
if (!do_pass) {
if (this->isKeyPressed('`')) {
this->changeMenu(targetMenu->parentMenu);
return wifi_scan_obj.current_mini_kb_ssid;
}
if (this->isKeyPressed('(')) {
if (!do_pass) {
if (wifi_scan_obj.current_mini_kb_ssid != "") {
pressed = true;
ssid s = {wifi_scan_obj.current_mini_kb_ssid, random(1, 12), {random(256), random(256), random(256), random(256), random(256), random(256)}, false};
ssids->unshift(s);
wifi_scan_obj.current_mini_kb_ssid = "";
}
}
}
}
else {
if (this->isKeyPressed('(')) {
this->changeMenu(targetMenu->parentMenu);
return wifi_scan_obj.current_mini_kb_ssid;
}
if (this->isKeyPressed('`')) {
this->changeMenu(targetMenu->parentMenu);
return "";
}
}
@@ -3749,25 +3893,6 @@ void MenuFunctions::RunSetup()
}
#endif
// Add SSID
/*#ifdef HAS_C
if (menu_button == SELECT_BUTTON) {
while (display_obj.updateTouch(&t_x, &t_y)) {
///c_btn.justPressed(); // Need to continue updating button hold status. My shitty library.
delay(1);
}
// If we have a string, add it to list of SSIDs
if (wifi_scan_obj.current_mini_kb_ssid != "") {
pressed = true;
ssid s = {wifi_scan_obj.current_mini_kb_ssid, random(1, 12), {random(256), random(256), random(256), random(256), random(256), random(256)}, false};
ssids->unshift(s);
wifi_scan_obj.current_mini_kb_ssid = "";
}
}
#endif*/
// Exit if UP button is held
if ((display_obj.isTouchHeld()) && (display_obj.menuButton(&t_x, &t_y, touched, true) == UP_BUTTON)) {
display_obj.clearScreen();
@@ -3806,11 +3931,20 @@ void MenuFunctions::RunSetup()
display_obj.tft.println("L/R - Prev/Nxt Char");
#endif
if (!do_pass) {
display_obj.tft.println("C - Save");
display_obj.tft.println("C(Hold) - Exit");
#ifdef MARAUDER_CARDPUTER
display_obj.tft.println("Enter - Save");
display_obj.tft.println("Esc - Exit");
#else
display_obj.tft.println("C - Save");
display_obj.tft.println("C(Hold) - Exit");
#endif
}
else {
display_obj.tft.println("C(Hold) - Enter");
#ifdef MARAUDER_CARDPUTER
display_obj.tft.println("Enter - Enter");
#else
display_obj.tft.println("C(Hold) - Enter");
#endif
}
#endif
@@ -3828,6 +3962,46 @@ void MenuFunctions::RunSetup()
}
//#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
void MenuFunctions::showMenuList(Menu * menu, int layer)
{

View File

@@ -92,6 +92,7 @@ extern Settings settings_obj;
#define MULTISSID_SNIFF 37 // Use blanks icon
#define JOINED 38
#define FORCE 39
#define FUNNY_BEACON 40
PROGMEM void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p);
PROGMEM bool my_touchpad_read(lv_indev_drv_t * indev_driver, lv_indev_data_t * data);
@@ -165,6 +166,9 @@ class MenuFunctions
Menu wifiMenu;
Menu bluetoothMenu;
#ifdef HAS_GPS
Menu gpsMenu; // H4W9 Added GPS Menu option to Main Menu
#endif
Menu badusbMenu;
Menu deviceMenu;
@@ -220,6 +224,8 @@ class MenuFunctions
// Menu icons
void setupSDFileList();
void buildSDFileMenu();
void displayMenuButtons();
uint16_t getColor(uint16_t color);
void drawAvgLine(int16_t value);
@@ -300,3 +306,4 @@ class MenuFunctions
#endif
#endif

View File

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

View File

@@ -936,6 +936,8 @@ void WiFiScan::StartScan(uint8_t scan_mode, uint16_t color)
this->startWiFiAttacks(scan_mode, color, text_table1[51]);
else if (scan_mode == WIFI_ATTACK_RICK_ROLL)
this->startWiFiAttacks(scan_mode, color, text_table1[52]);
else if (scan_mode == WIFI_ATTACK_FUNNY_BEACON)
this->startWiFiAttacks(scan_mode, color, text1_67);
else if (scan_mode == WIFI_ATTACK_AUTH)
this->startWiFiAttacks(scan_mode, color, text_table1[53]);
else if (scan_mode == WIFI_ATTACK_DEAUTH)
@@ -1016,6 +1018,16 @@ void WiFiScan::StartScan(uint8_t scan_mode, uint16_t color)
RunPortScanAll(scan_mode, color);
else if (scan_mode == WIFI_SCAN_TELNET)
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;
}
@@ -1189,6 +1201,11 @@ void WiFiScan::StopScan(uint8_t scan_mode)
(currentScanMode == WIFI_PORT_SCAN_ALL) ||
(currentScanMode == WIFI_SCAN_SSH) ||
(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_PINESCAN) ||
(currentScanMode == WIFI_SCAN_MULTISSID) ||
@@ -1209,6 +1226,7 @@ void WiFiScan::StopScan(uint8_t scan_mode)
(currentScanMode == WIFI_ATTACK_SLEEP_TARGETED) ||
(currentScanMode == WIFI_ATTACK_MIMIC) ||
(currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
(currentScanMode == WIFI_ATTACK_FUNNY_BEACON) ||
(currentScanMode == WIFI_PACKET_MONITOR) ||
(currentScanMode == WIFI_SCAN_CHAN_ANALYZER) ||
(currentScanMode == WIFI_SCAN_PACKET_RATE) ||
@@ -1248,7 +1266,7 @@ void WiFiScan::StopScan(uint8_t scan_mode)
else if ((currentScanMode == GPS_TRACKER) ||
(currentScanMode == GPS_POI)) {
this->writeFooter();
this->writeFooter(currentScanMode == GPS_POI);
}
@@ -1573,6 +1591,16 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
startLog("sshscan");
else if (scan_mode == WIFI_SCAN_TELNET)
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
startLog("portscan");
@@ -1602,6 +1630,16 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
display_obj.tft.drawCentreString("SSH Scan",120,16,2);
else if (scan_mode == WIFI_SCAN_TELNET)
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
#ifdef HAS_ILI9341
display_obj.touchToExit();
@@ -1612,7 +1650,12 @@ void WiFiScan::RunPortScanAll(uint8_t scan_mode, uint16_t color)
this->current_scan_port = 0;
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;
Serial.println("Starting Port Scan with...");
@@ -2218,30 +2261,40 @@ void WiFiScan::RunGenerateSSIDs(int count) {
#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 += "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(" <time>" + datetime + "</time>\n");
buffer_obj.append(" </trkpt>\n");
if (!poi)
buffer_obj.append(" </trkpt>\n");
else
buffer_obj.append(" </wpt>\n");
//gpxFile.flush();
}
void WiFiScan::writeHeader() {
void WiFiScan::writeHeader(bool poi) {
Serial.println("Writing header to GPX file...");
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(" <trk>\n");
if (!poi)
buffer_obj.append(" <trk>\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");
buffer_obj.append(" </trkseg>\n");
buffer_obj.append(" </trk>\n");
if (!poi) {
buffer_obj.append(" </trkseg>\n");
buffer_obj.append(" </trk>\n");
}
buffer_obj.append("</gpx>\n");
}
@@ -2251,18 +2304,18 @@ void WiFiScan::RunSetupGPSTracker(uint8_t scan_mode) {
else if (scan_mode == GPS_POI)
this->startGPX("poi");
this->writeHeader();
this->writeHeader(scan_mode == GPS_POI);
initTime = millis();
}
bool WiFiScan::RunGPSInfo(bool tracker, bool display) {
bool WiFiScan::RunGPSInfo(bool tracker, bool display, bool poi) {
bool return_val = true;
#ifdef HAS_GPS
String text=gps_obj.getText();
if (tracker) {
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
return_val = false;
@@ -8131,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)) {
this->current_scan_ip = getNextIP(this->current_scan_ip, this->subnet);
#ifndef HAS_DUAL_BAND
@@ -8174,7 +8264,7 @@ void WiFiScan::pingScan(uint8_t scan_mode) {
#endif
}
}
}
}*/
}
void WiFiScan::portScan(uint8_t scan_mode, uint16_t targ_port) {
@@ -8269,6 +8359,21 @@ void WiFiScan::main(uint32_t currentTime)
else if (currentScanMode == 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) {
#ifdef HAS_ILI9341
this->signalAnalyzerLoop(currentTime);
@@ -8643,8 +8748,7 @@ void WiFiScan::main(uint32_t currentTime)
packets_sent = 0;
}
}
else if ((currentScanMode == WIFI_ATTACK_RICK_ROLL))
{
else if ((currentScanMode == WIFI_ATTACK_RICK_ROLL)) {
// Need this for loop because getTouch causes ~10ms delay
// which makes beacon spam less effective
for (int i = 0; i < 7; i++)
@@ -8674,6 +8778,36 @@ void WiFiScan::main(uint32_t currentTime)
packets_sent = 0;
}
}
else if ((currentScanMode == WIFI_ATTACK_FUNNY_BEACON)) {
// Need this for loop because getTouch causes ~10ms delay
// which makes beacon spam less effective
for (int i = 0; i < 7; i++)
{
for (int x = 0; x < (sizeof(funny_beacon)/sizeof(char *)); x++)
{
broadcastSetSSID(currentTime, funny_beacon[x]);
}
}
if (currentTime - initTime >= 1000)
{
initTime = millis();
//Serial.print("packets/sec: ");
//Serial.println(packets_sent);
String displayString = "";
String displayString2 = "";
displayString.concat(text18);
displayString.concat(packets_sent);
for (int x = 0; x < STANDARD_FONT_CHAR_LIMIT; x++)
displayString2.concat(" ");
#ifdef HAS_SCREEN
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
display_obj.showCenterText(displayString2, TFT_HEIGHT / 2);
display_obj.showCenterText(displayString, TFT_HEIGHT / 2);
#endif
packets_sent = 0;
}
}
#ifdef HAS_GPS
else if ((currentScanMode == WIFI_SCAN_OFF))
if(gps_obj.queue_enabled())

View File

@@ -130,6 +130,13 @@
#define WIFI_ATTACK_SLEEP 61
#define WIFI_ATTACK_SLEEP_TARGETED 62
#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 99
#define BASE_MULTIPLIER 4
@@ -284,6 +291,22 @@ class WiFiScan
"08 and hurt you"
};
// H4W9 added Funny Beacon Spam
const char* funny_beacon[12] = {
"Abraham Linksys",
"Benjamin FrankLAN",
"Dora the Internet Explorer",
"FBI Surveillance Van 4",
"Get Off My LAN",
"Loading...",
"Martin Router King",
"404 Wi-Fi Unavailable",
"Test Wi-Fi Please Ignore",
"This LAN is My LAN",
"Titanic Syncing",
"Winternet is Coming"
};
char* prefix = "G";
typedef struct
@@ -563,8 +586,8 @@ class WiFiScan
void RunPortScanAll(uint8_t scan_mode, uint16_t color);
bool checkMem();
void parseBSSID(const char* bssidStr, uint8_t* bssid);
void writeHeader();
void writeFooter();
void writeHeader(bool poi = false);
void writeFooter(bool poi = false);
public:
@@ -675,8 +698,8 @@ class WiFiScan
#ifdef HAS_SCREEN
int8_t checkAnalyzerButtons(uint32_t currentTime);
#endif
bool RunGPSInfo(bool tracker = false, bool display = true);
void logPoint(String lat, String lon, float alt, String datetime);
bool RunGPSInfo(bool tracker = false, bool display = true, bool poi = false);
void logPoint(String lat, String lon, float alt, String datetime, bool poi = false);
void setMac();
void renderRawStats();
void renderPacketRate();

View File

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

View File

@@ -106,6 +106,9 @@ PROGMEM const char text1_62[] = "Deauth Targeted";
PROGMEM const char text1_63[] = "Detect Pineapple";
PROGMEM const char text1_64[] = "Detect MultiSSID";
PROGMEM const char text1_65[] = "Select probe SSIDs";
PROGMEM const char text1_66[] = "GPS"; // Text label for GPS Menu in Main Menu
PROGMEM const char text1_67[] = "Funny SSID Beacon";
//SDInterface.cpp texts
PROGMEM const char text2_0[] = "Error, could not find update.bin";
@@ -186,7 +189,7 @@ PROGMEM const char text4_49[] = " Detect MultiSSID ";
//Making tables
PROGMEM const char *text_table0[] = {text0_0,text0_1, text0_2, text0_3, text0_4, text0_5, text0_6, text0_7, text0_8};
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64, text1_65};
PROGMEM const char *text_table1[] = {text1_0,text1_1,text1_2,text1_3,text1_4,text1_5,text1_6,text1_7,text1_8,text1_9,text1_10,text1_11,text1_12,text1_13,text1_14,text1_15,text1_16,text1_17,text1_18,text1_19,text1_20,text1_21,text1_22,text1_23,text1_24,text1_25,text1_26,text1_27,text1_28,text1_29,text1_30,text1_31,text1_32,text1_33,text1_34,text1_35,text1_36,text1_37,text1_38,text1_39,text1_40,text1_41,text1_42,text1_43,text1_44,text1_45,text1_46,text1_47,text1_48,text1_49,text1_50,text1_51,text1_52,text1_53,text1_54,text1_55,text1_56,text1_57,text1_58,text1_59,text1_60,text1_61,text1_62,text1_63,text1_64, text1_65, text1_66, text1_67};
PROGMEM const char *text_table2[] = {text2_0,text2_1,text2_2,text2_3,text2_4,text2_5,text2_6,text2_7,text2_8,text2_9,text2_10,text2_11,text2_12,text2_13,text2_14};
PROGMEM const char *text_table3[] = {text3_0,text3_1,text3_2,text3_3,text3_4,text3_5};
PROGMEM const char *text_table4[] = {text4_0,text4_1,text4_2,text4_3,text4_4,text4_5,text4_6,text4_7,text1_54,text4_9,text4_10,text4_11,text4_12,text4_13,text4_14,text4_15,text4_16,text4_17,text4_18,text4_19,text4_20,text4_21,text4_22,text4_23,text4_24,text4_25,text4_26,text4_27,text4_28,text4_29,text4_30,text4_31,text4_32,text4_33,text4_34,text4_35,text4_36,text4_37,text4_38,text4_39,text4_40,text4_41,text4_42,text4_43,text4_44,text4_45,text4_46,text4_47,text4_48,text4_49};

BIN
mechanical/C5 Adapter/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB