mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2026-01-26 19:24:30 -08:00
Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecfdcd3bdc | ||
|
|
8e54de7b2d | ||
|
|
77f3fa7025 | ||
|
|
b86929256f | ||
|
|
16d0101ce6 | ||
|
|
e3668645e3 | ||
|
|
ea0be07c91 | ||
|
|
e4d483d736 | ||
|
|
c2aba77cc0 | ||
|
|
78b73f4ca2 | ||
|
|
ef4ec4edad | ||
|
|
c6daeb5517 | ||
|
|
dcd493d474 | ||
|
|
68bd55b162 | ||
|
|
90db402b6b | ||
|
|
e064c3beed | ||
|
|
18d71769da | ||
|
|
a259cbcc6d | ||
|
|
482f4114e0 | ||
|
|
a917ff2211 | ||
|
|
92e1795ce5 | ||
|
|
605086ea59 | ||
|
|
554d358cba | ||
|
|
614c7099f9 | ||
|
|
d131491bbf | ||
|
|
dcf3b13552 | ||
|
|
4b6cb6582d | ||
|
|
7a41d4be14 | ||
|
|
2d195ea697 | ||
|
|
b1c256036f | ||
|
|
ac3e4ab427 | ||
|
|
3ca777e711 | ||
|
|
938a691010 | ||
|
|
3c61198d09 | ||
|
|
bbf245859a | ||
|
|
fbf2e9ab18 | ||
|
|
de05c9be2b | ||
|
|
4e88212e2f | ||
|
|
ef5d9527ef | ||
|
|
7f522d8e15 | ||
|
|
f35d88122c | ||
|
|
fc8f9629fa | ||
|
|
5a1269d062 | ||
|
|
3c093f6c9c | ||
|
|
6840d4c7ac | ||
|
|
d5c5e0e011 | ||
|
|
2f9d70b725 | ||
|
|
06293a0a4c | ||
|
|
c51171df76 | ||
|
|
030035f68d | ||
|
|
9a265f805b | ||
|
|
6497e741d6 | ||
|
|
e5387b80fc | ||
|
|
53613de14b | ||
|
|
3cf7702e23 | ||
|
|
e8f449ad01 | ||
|
|
b2ed6c70e1 | ||
|
|
d8b9e3b138 | ||
|
|
ba35343600 | ||
|
|
02f0ecf85b |
43
.github/workflows/build_parallel.yml
vendored
43
.github/workflows/build_parallel.yml
vendored
@@ -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
32
.github/workflows/close_stale.yml
vendored
Normal 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.
Binary file not shown.
BIN
C5_Py_Flasher/bins/esp32_marauder_v1_8_5_esp32c5devkitc1.bin
Normal file
BIN
C5_Py_Flasher/bins/esp32_marauder_v1_8_5_esp32c5devkitc1.bin
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
BIN
mechanical/C5 Adapter/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
mechanical/C5 Adapter/Extra designs/.DS_Store
vendored
Normal file
BIN
mechanical/C5 Adapter/Extra designs/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
mechanical/C5 Adapter/Extra designs/c5 adapter back - SMA.stl
Normal file
BIN
mechanical/C5 Adapter/Extra designs/c5 adapter back - SMA.stl
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mechanical/C5 Adapter/Extra designs/c5 adapter front - SMA.stl
Normal file
BIN
mechanical/C5 Adapter/Extra designs/c5 adapter front - SMA.stl
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mechanical/C5 Adapter/c5 adapter back.stl
Normal file
BIN
mechanical/C5 Adapter/c5 adapter back.stl
Normal file
Binary file not shown.
BIN
mechanical/C5 Adapter/c5 adapter front.stl
Normal file
BIN
mechanical/C5 Adapter/c5 adapter front.stl
Normal file
Binary file not shown.
BIN
mechanical/C5 Adapter/c5 adapter pin cover.stl
Normal file
BIN
mechanical/C5 Adapter/c5 adapter pin cover.stl
Normal file
Binary file not shown.
BIN
pictures/icons/funny_beacon_22.bmp
Normal file
BIN
pictures/icons/funny_beacon_22.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Reference in New Issue
Block a user