mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-08 22:00:56 -08:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7557f19508 | ||
|
|
23fa6f78d6 | ||
|
|
ea097190ac | ||
|
|
a506907625 | ||
|
|
32b49793ca | ||
|
|
86a4326d64 | ||
|
|
5dd56125a0 | ||
|
|
cbb110a944 | ||
|
|
2fd76556fb | ||
|
|
41a2317778 | ||
|
|
a6335fed22 | ||
|
|
38e53db892 | ||
|
|
598eda99e3 | ||
|
|
516b8b0c3f | ||
|
|
bea6978098 | ||
|
|
ab62f0fc60 | ||
|
|
6612c48d1d | ||
|
|
86c0857239 | ||
|
|
66d0ae467d | ||
|
|
a75b3d9b2c | ||
|
|
d5a0af74d0 | ||
|
|
b594d8bbdd | ||
|
|
370b2aa6c5 | ||
|
|
5f01e3030b | ||
|
|
33b5a6481c | ||
|
|
06e6cdb8cd | ||
|
|
5f53e32f8e | ||
|
|
1d6ff6f911 | ||
|
|
ad6addf3df | ||
|
|
c788ad6681 | ||
|
|
06ede5272d | ||
|
|
b8620e1bd3 | ||
|
|
18ca6160e5 | ||
|
|
bbe9eead7e | ||
|
|
971487eefb | ||
|
|
9158083889 | ||
|
|
f0bf1f4b7f | ||
|
|
388ef30acd | ||
|
|
7eb7ae4a0d | ||
|
|
10fce15bb9 | ||
|
|
32c118b0d5 | ||
|
|
c370dfa996 | ||
|
|
7669a7447f | ||
|
|
7049e1101f | ||
|
|
c0864af4db |
98
.github/workflows/build_push.yml
vendored
98
.github/workflows/build_push.yml
vendored
@@ -72,13 +72,6 @@ jobs:
|
||||
ref: 2.2.23
|
||||
path: CustomTFT_eSPI
|
||||
|
||||
- name: Install LinkedList
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ivanseidel/LinkedList
|
||||
ref: v1.3.1
|
||||
path: CustomLinkedList
|
||||
|
||||
- name: Install lv_arduino
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -121,6 +114,20 @@ jobs:
|
||||
ref: main
|
||||
path: CustomSwitchLib
|
||||
|
||||
- name: Install LinkedList
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ivanseidel/LinkedList
|
||||
ref: v1.3.3
|
||||
path: CustomLinkedList
|
||||
|
||||
- name: Install EspSoftwareSerial
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: plerup/espsoftwareserial
|
||||
ref: 8.1.0
|
||||
path: CustomEspSoftwareSerial
|
||||
|
||||
#- name: Search for SD lib in arduino-esp32 v2.0.4
|
||||
# run: |
|
||||
# find /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32 -name "SD"
|
||||
@@ -173,6 +180,19 @@ jobs:
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32s2
|
||||
cat "$i" | grep compiler.c.elf.libs.esp32
|
||||
done
|
||||
|
||||
- name: Configure configs.h for Flipper Zero WiFi Dev Board
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_M5STICKC/ \/\/#define MARAUDER_M5STICKC/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_FLIPPER/ #define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for Flipper Zero WiFi Dev Board
|
||||
uses: ArminJo/arduino-test-compile@v3.2.1
|
||||
@@ -226,6 +246,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_V4/ #define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -250,6 +271,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_V6/ #define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -284,6 +306,29 @@ jobs:
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder v6.1
|
||||
run: |
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_V6_1/ #define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define ESP32_LDDB/ \/\/#define ESP32_LDDB/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_DEV_BOARD_PRO/ \/\/#define MARAUDER_DEV_BOARD_PRO/' esp32_marauder/configs.h
|
||||
|
||||
- name: Build Marauder for v6.1 Marauder
|
||||
uses: ArminJo/arduino-test-compile@v3.2.1
|
||||
with:
|
||||
sketch-names: esp32_marauder.ino
|
||||
arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
extra-arduino-cli-args: "--warnings none"
|
||||
|
||||
- name: Rename v6 Marauder bin
|
||||
run: |
|
||||
mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_1.bin
|
||||
|
||||
- name: Configure TFT_eSPI and configs.h for Marauder Kit
|
||||
run: |
|
||||
sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
|
||||
@@ -291,6 +336,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ \/\/#define MARAUDER_KIT/ #define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -315,6 +361,7 @@ jobs:
|
||||
sed -i 's/^ \/\/#define MARAUDER_MINI/ #define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -337,6 +384,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -359,6 +407,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -385,6 +434,7 @@ jobs:
|
||||
sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_V6_1/ \/\/#define MARAUDER_V6_1/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
|
||||
sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
|
||||
@@ -442,12 +492,12 @@ jobs:
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
|
||||
retention-days: 5
|
||||
|
||||
#- name: 'Upload v6_2 Artifact'
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: esp32_marauder.v6_2.bin
|
||||
# path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_2.bin
|
||||
# retention-days: 5
|
||||
- name: 'Upload v6_1 Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: esp32_marauder.v6_1.bin
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_1.bin
|
||||
retention-days: 5
|
||||
|
||||
- name: 'Upload Kit Artifact'
|
||||
uses: actions/upload-artifact@v3
|
||||
@@ -556,17 +606,17 @@ jobs:
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
#- name: Upload v6_2 Asset
|
||||
# id: upload-v6-2-release-asset
|
||||
# uses: actions/upload-release-asset@v1
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# with:
|
||||
# upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
# asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_2.bin
|
||||
# asset_name: esp32_marauder.v6_2.bin
|
||||
# asset_content_type: application/bin
|
||||
# if: github.event_name != 'pull_request'
|
||||
- name: Upload v6_1 Asset
|
||||
id: upload-v6-1-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_1.bin
|
||||
asset_name: esp32_marauder.v6_1.bin
|
||||
asset_content_type: application/bin
|
||||
if: github.event_name != 'pull_request'
|
||||
|
||||
- name: Upload Kit Asset
|
||||
id: upload-kit-release-asset
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
- Header Pin x8: [C2883805](https://www.lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WVS-08H-C60D48R1_C2883805.html)
|
||||
- Header Pin x10: [C2883807](https://www.lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WVS-10H-C60D48R1_C2883807.html)
|
||||
- Alternative Header: [M20-8771246](https://www.mouser.com/ProductDetail/Harwin/M20-8771246?qs=WS5Jv%252B%252Bx1qWzrNY%252Bb2U9JQ%3D%3D&countryCode=US¤cyCode=USD)
|
||||
- or [M20-8771042](https://www.mouser.com/ProductDetail/Harwin/M20-8771042?qs=%252Bk6%2F5FB6qrlBSpg9%252Bi11Bg%3D%3D)
|
||||
- Light Pipe: [PLP2-188](https://www.digikey.com/en/products/detail/bivar-inc/PLP2-188/5721973?utm_medium=email&utm_source=oce&utm_campaign=4251_OCE23RT&utm_content=productdetail_US&utm_cid=2955578&so=79456987&mkt_tok=MDI4LVNYSy01MDcAAAGJOBaFWa7m6RHsJZT6mWcYRd9LRyXmqis92EV7j5ftyM5NuNOSOPqUp292m0P5E3FKrEWCFuvb9fObSzuSvVMsopuOMPjO46ylCAR1IzCL)
|
||||
- M2x6mm Round Top Screw: [97763A407](https://www.mcmaster.com/97763A407/)
|
||||
- M2x8mm Countersunk Screw: [91294A005](https://www.mcmaster.com/91294A005/)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!---[](https://travis-ci.com/justcallmekoko/ESP32Marauder)--->
|
||||
<!---Shields/Badges https://shields.io/--->
|
||||
|
||||
# ESP32 Marauder v0.11.1
|
||||
# ESP32 Marauder
|
||||
<p align="center"><img alt="Marauder logo" src="https://github.com/justcallmekoko/ESP32Marauder/blob/master/pictures/marauder3L.jpg?raw=true" width="300"></p>
|
||||
<p align="center">
|
||||
<b>A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32</b>
|
||||
|
||||
@@ -216,6 +216,7 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_LS_CMD);
|
||||
Serial.println(HELP_LED_CMD);
|
||||
Serial.println(HELP_GPS_DATA_CMD);
|
||||
Serial.println(HELP_GPS_CMD);
|
||||
|
||||
// WiFi sniff/scan
|
||||
Serial.println(HELP_EVIL_PORTAL_CMD);
|
||||
@@ -230,6 +231,9 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_SNIFF_DEAUTH_CMD);
|
||||
Serial.println(HELP_SNIFF_PMKID_CMD);
|
||||
Serial.println(HELP_STOPSCAN_CMD);
|
||||
#ifdef HAS_GPS
|
||||
Serial.println(HELP_WARDRIVE_CMD);
|
||||
#endif
|
||||
|
||||
// WiFi attack
|
||||
Serial.println(HELP_ATTACK_CMD);
|
||||
@@ -243,8 +247,15 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_SSID_CMD_B);
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
Serial.println(HELP_BT_SNIFF_CMD);
|
||||
Serial.println(HELP_BT_SKIM_CMD);
|
||||
#ifdef HAS_BT
|
||||
Serial.println(HELP_BT_SNIFF_CMD);
|
||||
Serial.println(HELP_BT_SOUR_APPLE_CMD);
|
||||
Serial.println(HELP_BT_SWIFTPAIR_SPAM_CMD);
|
||||
#ifdef HAS_GPS
|
||||
Serial.println(HELP_BT_WARDRIVE_CMD);
|
||||
#endif
|
||||
Serial.println(HELP_BT_SKIM_CMD);
|
||||
#endif
|
||||
Serial.println(HELP_FOOT);
|
||||
return;
|
||||
}
|
||||
@@ -283,6 +294,32 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (cmd_args.get(0) == GPS_CMD) {
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
int get_arg = this->argSearch(&cmd_args, "-g");
|
||||
|
||||
if (get_arg != -1) {
|
||||
String gps_info = cmd_args.get(get_arg + 1);
|
||||
|
||||
if (gps_info == "fix")
|
||||
Serial.println("Fix: " + gps_obj.getFixStatusAsString());
|
||||
else if (gps_info == "sat")
|
||||
Serial.println("Sats: " + gps_obj.getNumSatsString());
|
||||
else if (gps_info == "lat")
|
||||
Serial.println("Lat: " + gps_obj.getLat());
|
||||
else if (gps_info == "lon")
|
||||
Serial.println("Lon: " + gps_obj.getLon());
|
||||
else if (gps_info == "alt")
|
||||
Serial.println("Alt: " + (String)gps_obj.getAlt());
|
||||
else if (gps_info == "date")
|
||||
Serial.println("Date/Time: " + gps_obj.getDatetime());
|
||||
else
|
||||
Serial.println("You did not provide a valid argument");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
// LED command
|
||||
else if (cmd_args.get(0) == LED_CMD) {
|
||||
int hex_arg = this->argSearch(&cmd_args, "-s");
|
||||
@@ -415,9 +452,38 @@ void CommandLine::runCommand(String input) {
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_SIG_STREN, TFT_MAGENTA);
|
||||
}
|
||||
// Wardrive
|
||||
else if (cmd_args.get(0) == WARDRIVE_CMD) {
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
int sta_sw = this->argSearch(&cmd_args, "-s");
|
||||
|
||||
if (sta_sw == -1) {
|
||||
Serial.println("Starting Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
else {Serial.println("Starting Station Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
}
|
||||
else
|
||||
Serial.println("GPS Module not detected");
|
||||
#else
|
||||
Serial.println("GPS not supported");
|
||||
#endif
|
||||
}
|
||||
// AP Scan
|
||||
else if (cmd_args.get(0) == EVIL_PORTAL_CMD) {
|
||||
int cmd_sw = this->argSearch(&cmd_args, "-c");
|
||||
int html_sw = this->argSearch(&cmd_args, "-w");
|
||||
|
||||
if (cmd_sw != -1) {
|
||||
String et_command = cmd_args.get(cmd_sw + 1);
|
||||
@@ -427,6 +493,14 @@ void CommandLine::runCommand(String input) {
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
if (html_sw != -1) {
|
||||
String target_html_name = cmd_args.get(html_sw + 1);
|
||||
evil_portal_obj.target_html_name = target_html_name;
|
||||
Serial.println("Set html file as " + evil_portal_obj.target_html_name);
|
||||
}
|
||||
//else {
|
||||
// evil_portal_obj.target_html_name = "index.html";
|
||||
//}
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_EVIL_PORTAL, TFT_MAGENTA);
|
||||
}
|
||||
else if (et_command == "reset") {
|
||||
@@ -436,7 +510,9 @@ void CommandLine::runCommand(String input) {
|
||||
|
||||
}
|
||||
else if (et_command == "sethtml") {
|
||||
|
||||
String target_html_name = cmd_args.get(cmd_sw + 2);
|
||||
evil_portal_obj.target_html_name = target_html_name;
|
||||
Serial.println("Set html file as " + evil_portal_obj.target_html_name);
|
||||
}
|
||||
else if (et_command == "setap") {
|
||||
|
||||
@@ -708,6 +784,63 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
}
|
||||
else if (cmd_args.get(0) == BT_SOUR_APPLE_CMD) {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Sour Apple attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_ATTACK_SOUR_APPLE, TFT_GREEN);
|
||||
#else
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
}
|
||||
else if (cmd_args.get(0) == BT_SWIFTPAIR_SPAM_CMD) {
|
||||
#ifdef HAS_BT
|
||||
Serial.println("Starting Swiftpair Spam attack. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_ATTACK_SWIFTPAIR_SPAM, TFT_CYAN);
|
||||
#else
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
}
|
||||
// Wardrive
|
||||
else if (cmd_args.get(0) == BT_WARDRIVE_CMD) {
|
||||
#ifdef HAS_BT
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
int cont_sw = this->argSearch(&cmd_args, "-c");
|
||||
|
||||
if (cont_sw == -1) {
|
||||
Serial.println("Starting BT Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
}
|
||||
else {Serial.println("Starting Continuous BT Wardrive. Stop with " + (String)STOPSCAN_CMD);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
||||
}
|
||||
}
|
||||
else
|
||||
Serial.println("GPS Module not detected");
|
||||
#else
|
||||
Serial.println("GPS not supported");
|
||||
#endif
|
||||
#else
|
||||
Serial.println("Bluetooth not supported");
|
||||
#endif
|
||||
|
||||
}
|
||||
// Bluetooth CC Skimmer scan
|
||||
else if (cmd_args.get(0) == BT_SKIM_CMD) {
|
||||
#ifdef HAS_BT
|
||||
|
||||
@@ -46,6 +46,7 @@ const char PROGMEM SETTINGS_CMD[] = "settings";
|
||||
const char PROGMEM LS_CMD[] = "ls";
|
||||
const char PROGMEM LED_CMD[] = "led";
|
||||
const char PROGMEM GPS_DATA_CMD[] = "gpsdata";
|
||||
const char PROGMEM GPS_CMD[] = "gps";
|
||||
|
||||
// WiFi sniff/scan
|
||||
const char PROGMEM EVIL_PORTAL_CMD[] = "evilportal";
|
||||
@@ -60,6 +61,7 @@ const char PROGMEM SNIFF_ESP_CMD[] = "sniffesp";
|
||||
const char PROGMEM SNIFF_DEAUTH_CMD[] = "sniffdeauth";
|
||||
const char PROGMEM SNIFF_PMKID_CMD[] = "sniffpmkid";
|
||||
const char PROGMEM STOPSCAN_CMD[] = "stopscan";
|
||||
const char PROGMEM WARDRIVE_CMD[] = "wardrive";
|
||||
|
||||
// WiFi attack
|
||||
const char PROGMEM ATTACK_CMD[] = "attack";
|
||||
@@ -75,6 +77,9 @@ const char PROGMEM SSID_CMD[] = "ssid";
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
const char PROGMEM BT_SNIFF_CMD[] = "sniffbt";
|
||||
const char PROGMEM BT_SOUR_APPLE_CMD[] = "sourapple";
|
||||
const char PROGMEM BT_SWIFTPAIR_SPAM_CMD[] = "swiftpair";
|
||||
const char PROGMEM BT_WARDRIVE_CMD[] = "btwardrive";
|
||||
const char PROGMEM BT_SKIM_CMD[] = "sniffskim";
|
||||
|
||||
|
||||
@@ -89,9 +94,10 @@ const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> enable/disable>
|
||||
const char PROGMEM HELP_LS_CMD[] = "ls <directory>";
|
||||
const char PROGMEM HELP_LED_CMD[] = "led -s <hex color>/-p <rainbow>";
|
||||
const char PROGMEM HELP_GPS_DATA_CMD[] = "gpsdata";
|
||||
const char PROGMEM HELP_GPS_CMD[] = "gps [-g] <fix/sat/lon/lat/alt/date>";
|
||||
|
||||
// WiFi sniff/scan
|
||||
const char PROGMEM HELP_EVIL_PORTAL_CMD[] = "evilportal [-c start]";
|
||||
const char PROGMEM HELP_EVIL_PORTAL_CMD[] = "evilportal [-c start [-w html.html]/sethtml <html.html>]";
|
||||
const char PROGMEM HELP_SIGSTREN_CMD[] = "sigmon";
|
||||
const char PROGMEM HELP_SCANAP_CMD[] = "scanap";
|
||||
const char PROGMEM HELP_SCANSTA_CMD[] = "scansta";
|
||||
@@ -103,6 +109,7 @@ const char PROGMEM HELP_SNIFF_ESP_CMD[] = "sniffesp";
|
||||
const char PROGMEM HELP_SNIFF_DEAUTH_CMD[] = "sniffdeauth";
|
||||
const char PROGMEM HELP_SNIFF_PMKID_CMD[] = "sniffpmkid [-c <channel>][-d][-l]";
|
||||
const char PROGMEM HELP_STOPSCAN_CMD[] = "stopscan";
|
||||
const char PROGMEM HELP_WARDRIVE_CMD[] = "wardrive [-s]";
|
||||
|
||||
// WiFi attack
|
||||
const char PROGMEM HELP_ATTACK_CMD[] = "attack -t <beacon [-l/-r/-a]/deauth [-c]/[-s <src mac>] [-d <dst mac>]/probe/rickroll>";
|
||||
@@ -117,6 +124,9 @@ const char PROGMEM HELP_SSID_CMD_B[] = "ssid -r <index>";
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
const char PROGMEM HELP_BT_SNIFF_CMD[] = "sniffbt";
|
||||
const char PROGMEM HELP_BT_SOUR_APPLE_CMD[] = "sourapple";
|
||||
const char PROGMEM HELP_BT_SWIFTPAIR_SPAM_CMD[] = "swiftpair";
|
||||
const char PROGMEM HELP_BT_WARDRIVE_CMD[] = "btwardrive [-c]";
|
||||
const char PROGMEM HELP_BT_SKIM_CMD[] = "sniffskim";
|
||||
const char PROGMEM HELP_FOOT[] = "==================================";
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ void Display::RunSetup()
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
tft.setRotation(3);
|
||||
tft.setRotation(1);
|
||||
#endif
|
||||
|
||||
tft.setCursor(0, 0);
|
||||
|
||||
@@ -68,6 +68,7 @@ class Display
|
||||
bool tteBar = false;
|
||||
bool draw_tft = false;
|
||||
bool exit_draw = false;
|
||||
bool headless_mode = false;
|
||||
|
||||
uint8_t TOP_FIXED_AREA_2 = 48;
|
||||
uint8_t print_delay_1, print_delay_2 = 10;
|
||||
|
||||
@@ -65,13 +65,13 @@ void EvilPortal::setupServer() {
|
||||
bool EvilPortal::setHtml() {
|
||||
Serial.println("Setting HTML...");
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
File html_file = sd_obj.getFile("/index.html");
|
||||
File html_file = sd_obj.getFile("/" + this->target_html_name);
|
||||
if (!html_file) {
|
||||
#ifdef HAS_SCREEN
|
||||
this->sendToDisplay("Could not find /index.html.");
|
||||
this->sendToDisplay("Could not find /" + this->target_html_name);
|
||||
this->sendToDisplay("Touch to exit...");
|
||||
#endif
|
||||
Serial.println("Could not find /index.html. Use stopscan...");
|
||||
Serial.println("Could not find /" + this->target_html_name + ". Use stopscan...");
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
@@ -264,9 +264,12 @@ void EvilPortal::addLog(String log, int len) {
|
||||
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
buffer_obj.addPacket(logBuffer, logLength, true);
|
||||
delete[] logBuffer;
|
||||
#elif defined(HAS_SD)
|
||||
sd_obj.addPacket(logBuffer, logLength, true);
|
||||
delete[] logBuffer;
|
||||
#else
|
||||
delete[] logBuffer;
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -93,15 +93,17 @@ class EvilPortal {
|
||||
void setupServer();
|
||||
void startPortal();
|
||||
void startAP();
|
||||
void addLog(String log, int len);
|
||||
void convertStringToUint8Array(const String& str, uint8_t*& buf, uint32_t& len);
|
||||
void sendToDisplay(String msg);
|
||||
|
||||
public:
|
||||
EvilPortal();
|
||||
|
||||
String target_html_name = "index.html";
|
||||
|
||||
String get_user_name();
|
||||
String get_password();
|
||||
void addLog(String log, int len);
|
||||
bool begin(LinkedList<ssid>* ssids, LinkedList<AccessPoint>* access_points);
|
||||
void main(uint8_t scan_mode);
|
||||
|
||||
|
||||
@@ -6,11 +6,19 @@ char nmeaBuffer[100];
|
||||
|
||||
MicroNMEA nmea(nmeaBuffer, sizeof(nmeaBuffer));
|
||||
|
||||
HardwareSerial Serial2(GPS_SERIAL_INDEX);
|
||||
#ifndef GPS_SOFTWARE_SERIAL
|
||||
HardwareSerial Serial2(GPS_SERIAL_INDEX);
|
||||
#else
|
||||
EspSoftwareSerial::UART Serial2;
|
||||
#endif
|
||||
|
||||
void GpsInterface::begin() {
|
||||
|
||||
Serial2.begin(9600, SERIAL_8N1, GPS_TX, GPS_RX);
|
||||
#ifndef GPS_SOFTWARE_SERIAL
|
||||
Serial2.begin(9600, SERIAL_8N1, GPS_TX, GPS_RX);
|
||||
#else
|
||||
Serial2.begin(9600, SWSERIAL_8N1, GPS_TX, GPS_RX);
|
||||
#endif
|
||||
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSETPAR,1201,0x00000042");
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSAVEPAR");
|
||||
@@ -61,9 +69,15 @@ void GpsInterface::setGPSInfo() {
|
||||
}
|
||||
this->altf = (float)alt / 1000;
|
||||
|
||||
this->accuracy = 2.5 * ((float)nmea.getHDOP()/10);
|
||||
|
||||
//nmea.clear();
|
||||
}
|
||||
|
||||
float GpsInterface::getAccuracy() {
|
||||
return this->accuracy;
|
||||
}
|
||||
|
||||
String GpsInterface::getLat() {
|
||||
return this->lat;
|
||||
}
|
||||
@@ -88,6 +102,13 @@ bool GpsInterface::getFixStatus() {
|
||||
return this->good_fix;
|
||||
}
|
||||
|
||||
String GpsInterface::getFixStatusAsString() {
|
||||
if (this->getFixStatus())
|
||||
return "Yes";
|
||||
else
|
||||
return "No";
|
||||
}
|
||||
|
||||
bool GpsInterface::getGpsModuleStatus() {
|
||||
return this->gps_enabled;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GpsInterface_h
|
||||
|
||||
#include <MicroNMEA.h>
|
||||
#include <SoftwareSerial.h>
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
@@ -12,10 +13,12 @@ class GpsInterface {
|
||||
|
||||
String getNumSatsString();
|
||||
bool getFixStatus();
|
||||
String getFixStatusAsString();
|
||||
bool getGpsModuleStatus();
|
||||
String getLat();
|
||||
String getLon();
|
||||
float getAlt();
|
||||
float getAccuracy();
|
||||
String getDatetime();
|
||||
|
||||
private:
|
||||
@@ -23,6 +26,7 @@ class GpsInterface {
|
||||
String lat = "";
|
||||
String lon = "";
|
||||
float altf = 0.0;
|
||||
float accuracy = 0.0;
|
||||
String datetime = "";
|
||||
|
||||
bool gps_enabled = false;
|
||||
|
||||
@@ -18,6 +18,13 @@ MenuFunctions::MenuFunctions()
|
||||
/* Interrupt driven periodic handler */
|
||||
|
||||
#ifdef HAS_ILI9341
|
||||
uint8_t MenuFunctions::updateTouch(uint16_t *x, uint16_t *y, uint16_t threshold) {
|
||||
if (!display_obj.headless_mode)
|
||||
return display_obj.tft.getTouch(x, y, threshold);
|
||||
else
|
||||
return !display_obj.headless_mode;
|
||||
}
|
||||
|
||||
void MenuFunctions::lv_tick_handler()
|
||||
{
|
||||
lv_tick_inc(LVGL_TICK_PERIOD);
|
||||
@@ -386,14 +393,18 @@ MenuFunctions::MenuFunctions()
|
||||
#endif
|
||||
//// END LV_ARDUINO STUFF
|
||||
|
||||
void MenuFunctions::buttonNotSelected(uint8_t b) {
|
||||
void MenuFunctions::buttonNotSelected(uint8_t b, int8_t x) {
|
||||
if (x == -1)
|
||||
x = b;
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.key[b].drawButton(false, current_menu->list->get(b).name);
|
||||
display_obj.key[b].drawButton(false, current_menu->list->get(x).name);
|
||||
}
|
||||
|
||||
void MenuFunctions::buttonSelected(uint8_t b) {
|
||||
void MenuFunctions::buttonSelected(uint8_t b, int8_t x) {
|
||||
if (x == -1)
|
||||
x = b;
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.key[b].drawButton(true, current_menu->list->get(b).name);
|
||||
display_obj.key[b].drawButton(true, current_menu->list->get(x).name);
|
||||
}
|
||||
|
||||
// Function to check menu input
|
||||
@@ -456,7 +467,7 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
|
||||
// getTouch causes a 10ms delay which makes beacon spam less effective
|
||||
#ifdef HAS_ILI9341
|
||||
pressed = display_obj.tft.getTouch(&t_x, &t_y);
|
||||
pressed = this->updateTouch(&t_x, &t_y);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -471,9 +482,11 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
{
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RAW_CAPTURE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EVIL_PORTAL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SIG_STREN) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP) ||
|
||||
@@ -492,6 +505,10 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_ALL) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_ATTACK_SOUR_APPLE) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_ATTACK_SWIFTPAIR_SPAM) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_WAR_DRIVE_CONT) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_SKIMMERS))
|
||||
{
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_OFF);
|
||||
@@ -523,9 +540,11 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
{
|
||||
// Stop the current scan
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_PROBE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_RAW_CAPTURE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_STATION) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_AP) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EVIL_PORTAL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_SIG_STREN) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_TARGET_AP) ||
|
||||
@@ -544,6 +563,10 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_RICK_ROLL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_ATTACK_BEACON_LIST) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_ALL) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_ATTACK_SOUR_APPLE) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_ATTACK_SWIFTPAIR_SPAM) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_WAR_DRIVE) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_WAR_DRIVE_CONT) ||
|
||||
(wifi_scan_obj.currentScanMode == BT_SCAN_SKIMMERS) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_ACTIVE_EAPOL) ||
|
||||
@@ -631,50 +654,77 @@ void MenuFunctions::main(uint32_t currentTime)
|
||||
#endif
|
||||
|
||||
#ifdef HAS_BUTTONS
|
||||
#ifndef MARAUDER_M5STICKC
|
||||
if (u_btn.justPressed()){
|
||||
#if !(defined(MARAUDER_V6) || defined(MARAUDER_V6_1))
|
||||
#ifndef MARAUDER_M5STICKC
|
||||
if (u_btn.justPressed()){
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF) ||
|
||||
(wifi_scan_obj.currentScanMode == OTA_UPDATE)) {
|
||||
if (current_menu->selected > 0) {
|
||||
current_menu->selected--;
|
||||
// Page up
|
||||
if (current_menu->selected < this->menu_start_index) {
|
||||
this->buildButtons(current_menu, current_menu->selected);
|
||||
this->displayCurrentMenu(current_menu->selected);
|
||||
}
|
||||
this->buttonSelected(current_menu->selected - this->menu_start_index, current_menu->selected);
|
||||
if (!current_menu->list->get(current_menu->selected + 1).selected)
|
||||
this->buttonNotSelected(current_menu->selected + 1 - this->menu_start_index, current_menu->selected + 1);
|
||||
}
|
||||
// Loop to end
|
||||
else {
|
||||
current_menu->selected = current_menu->list->size() - 1;
|
||||
if (current_menu->selected >= BUTTON_SCREEN_LIMIT) {
|
||||
this->buildButtons(current_menu, current_menu->selected + 1 - BUTTON_SCREEN_LIMIT);
|
||||
this->displayCurrentMenu(current_menu->selected + 1 - BUTTON_SCREEN_LIMIT);
|
||||
}
|
||||
this->buttonSelected(current_menu->selected, current_menu->selected);
|
||||
if (!current_menu->list->get(0).selected)
|
||||
this->buttonNotSelected(0, this->menu_start_index);
|
||||
}
|
||||
}
|
||||
else if ((wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL)) {
|
||||
if (wifi_scan_obj.set_channel < 14)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel + 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (d_btn.justPressed()){
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF) ||
|
||||
(wifi_scan_obj.currentScanMode == OTA_UPDATE)) {
|
||||
if (current_menu->selected > 0) {
|
||||
current_menu->selected--;
|
||||
if (current_menu->selected < current_menu->list->size() - 1) {
|
||||
current_menu->selected++;
|
||||
this->buttonSelected(current_menu->selected - this->menu_start_index, current_menu->selected);
|
||||
if (!current_menu->list->get(current_menu->selected - 1).selected)
|
||||
this->buttonNotSelected(current_menu->selected - 1 - this->menu_start_index, current_menu->selected - 1);
|
||||
// Page down
|
||||
if (current_menu->selected - this->menu_start_index >= BUTTON_SCREEN_LIMIT) {
|
||||
this->buildButtons(current_menu, current_menu->selected + 1 - BUTTON_SCREEN_LIMIT);
|
||||
this->displayCurrentMenu(current_menu->selected + 1 - BUTTON_SCREEN_LIMIT);
|
||||
}
|
||||
}
|
||||
// Loop to beginning
|
||||
else {
|
||||
if (current_menu->selected >= BUTTON_SCREEN_LIMIT) {
|
||||
this->buildButtons(current_menu);
|
||||
this->displayCurrentMenu();
|
||||
}
|
||||
current_menu->selected = 0;
|
||||
this->buttonSelected(current_menu->selected);
|
||||
if (!current_menu->list->get(current_menu->selected + 1).selected)
|
||||
this->buttonNotSelected(current_menu->selected + 1);
|
||||
if (!current_menu->list->get(current_menu->list->size() - 1).selected)
|
||||
this->buttonNotSelected(current_menu->list->size() - 1);
|
||||
}
|
||||
}
|
||||
else if ((wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL)) {
|
||||
if (wifi_scan_obj.set_channel < 14)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel + 1);
|
||||
if (wifi_scan_obj.set_channel > 1)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel - 1);
|
||||
}
|
||||
}
|
||||
if(c_btn_press){
|
||||
current_menu->list->get(current_menu->selected).callable();
|
||||
}
|
||||
#endif
|
||||
if (d_btn.justPressed()){
|
||||
if ((wifi_scan_obj.currentScanMode == WIFI_SCAN_OFF) ||
|
||||
(wifi_scan_obj.currentScanMode == OTA_UPDATE)) {
|
||||
if (current_menu->selected < current_menu->list->size() - 1) {
|
||||
current_menu->selected++;
|
||||
this->buttonSelected(current_menu->selected);
|
||||
if (!current_menu->list->get(current_menu->selected - 1).selected)
|
||||
this->buttonNotSelected(current_menu->selected - 1);
|
||||
}
|
||||
else {
|
||||
current_menu->selected = 0;
|
||||
this->buttonSelected(current_menu->selected);
|
||||
if (!current_menu->list->get(current_menu->list->size() - 1).selected)
|
||||
this->buttonNotSelected(current_menu->list->size() - 1);
|
||||
}
|
||||
}
|
||||
else if ((wifi_scan_obj.currentScanMode == WIFI_PACKET_MONITOR) ||
|
||||
(wifi_scan_obj.currentScanMode == WIFI_SCAN_EAPOL)) {
|
||||
if (wifi_scan_obj.set_channel > 1)
|
||||
wifi_scan_obj.changeChannel(wifi_scan_obj.set_channel - 1);
|
||||
}
|
||||
}
|
||||
if(c_btn_press){
|
||||
current_menu->list->get(current_menu->selected).callable();
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -807,6 +857,9 @@ void MenuFunctions::updateStatusBar()
|
||||
display_obj.tft.setTextColor(TFT_WHITE, STATUSBAR_COLOR);
|
||||
|
||||
display_obj.tft.drawString(gps_obj.getNumSatsString(), 22, 0, 2);
|
||||
#elif defined(HAS_SCREEN)
|
||||
display_obj.tft.setTextColor(the_color, STATUSBAR_COLOR);
|
||||
display_obj.tft.drawString("GPS", 0, 0, 1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
@@ -816,7 +869,7 @@ void MenuFunctions::updateStatusBar()
|
||||
// WiFi Channel Stuff
|
||||
if (wifi_scan_obj.set_channel != wifi_scan_obj.old_channel) {
|
||||
wifi_scan_obj.old_channel = wifi_scan_obj.set_channel;
|
||||
display_obj.tft.fillRect(50, 0, 50, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
|
||||
display_obj.tft.fillRect(50, 0, TFT_WIDTH * 0.21, STATUS_BAR_WIDTH, STATUSBAR_COLOR);
|
||||
#ifdef HAS_ILI9341
|
||||
display_obj.tft.drawString("CH: " + (String)wifi_scan_obj.set_channel, 50, 0, 2);
|
||||
#endif
|
||||
@@ -1065,6 +1118,7 @@ void MenuFunctions::RunSetup()
|
||||
|
||||
// Bluetooth menu stuff
|
||||
bluetoothSnifferMenu.list = new LinkedList<MenuNode>();
|
||||
bluetoothAttackMenu.list = new LinkedList<MenuNode>();
|
||||
|
||||
// Settings stuff
|
||||
generateSSIDsMenu.list = new LinkedList<MenuNode>();
|
||||
@@ -1087,6 +1141,7 @@ void MenuFunctions::RunSetup()
|
||||
wifiAttackMenu.name = text_table1[21];
|
||||
wifiGeneralMenu.name = text_table1[22];
|
||||
bluetoothSnifferMenu.name = text_table1[23];
|
||||
bluetoothAttackMenu.name = "Bluetooth Attacks";
|
||||
generateSSIDsMenu.name = text_table1[27];
|
||||
clearSSIDsMenu.name = text_table1[28];
|
||||
clearAPsMenu.name = text_table1[29];
|
||||
@@ -1164,11 +1219,13 @@ void MenuFunctions::RunSetup()
|
||||
wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);
|
||||
});
|
||||
#endif
|
||||
this->addNodes(&wifiSnifferMenu, text_table1[47], TFT_RED, NULL, PWNAGOTCHI, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_PWN, TFT_RED);
|
||||
});
|
||||
#ifndef HAS_ILI9341
|
||||
this->addNodes(&wifiSnifferMenu, text_table1[47], TFT_RED, NULL, PWNAGOTCHI, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_PWN, TFT_RED);
|
||||
});
|
||||
#endif
|
||||
this->addNodes(&wifiSnifferMenu, text_table1[49], TFT_MAGENTA, NULL, BEACON_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
@@ -1191,6 +1248,24 @@ void MenuFunctions::RunSetup()
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_SIG_STREN, TFT_CYAN);
|
||||
});
|
||||
#endif
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
this->addNodes(&wifiSnifferMenu, "Wardrive", TFT_GREEN, NULL, BEACON_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
});
|
||||
}
|
||||
#endif
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
this->addNodes(&wifiSnifferMenu, "Station Wardrive", TFT_ORANGE, NULL, PROBE_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_STATION_WAR_DRIVE, TFT_ORANGE);
|
||||
});
|
||||
}
|
||||
#endif
|
||||
|
||||
// Build WiFi attack menu
|
||||
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
||||
@@ -1345,6 +1420,9 @@ void MenuFunctions::RunSetup()
|
||||
this->addNodes(&bluetoothMenu, text_table1[31], TFT_YELLOW, NULL, SNIFFERS, [this]() {
|
||||
this->changeMenu(&bluetoothSnifferMenu);
|
||||
});
|
||||
this->addNodes(&bluetoothMenu, "Bluetooth Attacks", TFT_RED, NULL, ATTACKS, [this]() {
|
||||
this->changeMenu(&bluetoothAttackMenu);
|
||||
});
|
||||
|
||||
// Build bluetooth sniffer Menu
|
||||
bluetoothSnifferMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
||||
@@ -1356,12 +1434,42 @@ void MenuFunctions::RunSetup()
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);
|
||||
});
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive", TFT_CYAN, NULL, BLUETOOTH_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE, TFT_GREEN);
|
||||
});
|
||||
this->addNodes(&bluetoothSnifferMenu, "BT Wardrive Continuous", TFT_RED, NULL, REBOOT, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_WAR_DRIVE_CONT, TFT_GREEN);
|
||||
});
|
||||
}
|
||||
#endif
|
||||
this->addNodes(&bluetoothSnifferMenu, text_table1[35], TFT_MAGENTA, NULL, CC_SKIMMERS, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);
|
||||
});
|
||||
|
||||
// Bluetooth Attack menu
|
||||
bluetoothAttackMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
||||
this->addNodes(&bluetoothAttackMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||
this->changeMenu(bluetoothAttackMenu.parentMenu);
|
||||
});
|
||||
this->addNodes(&bluetoothAttackMenu, "Sour Apple", TFT_GREEN, NULL, DEAUTH_SNIFF, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_ATTACK_SOUR_APPLE, TFT_GREEN);
|
||||
});
|
||||
this->addNodes(&bluetoothAttackMenu, "Swiftpair Spam", TFT_CYAN, NULL, KEYBOARD_ICO, [this]() {
|
||||
display_obj.clearScreen();
|
||||
this->drawStatusBar();
|
||||
wifi_scan_obj.StartScan(BT_ATTACK_SWIFTPAIR_SPAM, TFT_CYAN);
|
||||
});
|
||||
|
||||
// Device menu
|
||||
deviceMenu.parentMenu = &mainMenu;
|
||||
this->addNodes(&deviceMenu, text09, TFT_LIGHTGREY, NULL, 0, [this]() {
|
||||
@@ -1516,6 +1624,7 @@ void MenuFunctions::buildButtons(Menu * menu, int starting_index)
|
||||
{
|
||||
if (menu->list != NULL)
|
||||
{
|
||||
this->menu_start_index = starting_index;
|
||||
for (uint8_t i = 0; i < menu->list->size(); i++)
|
||||
{
|
||||
TFT_eSPI_Button new_button;
|
||||
@@ -1538,7 +1647,7 @@ void MenuFunctions::buildButtons(Menu * menu, int starting_index)
|
||||
}
|
||||
|
||||
|
||||
void MenuFunctions::displayCurrentMenu()
|
||||
void MenuFunctions::displayCurrentMenu(uint8_t start_index)
|
||||
{
|
||||
//Serial.println(F("Displaying current menu..."));
|
||||
display_obj.clearScreen();
|
||||
@@ -1556,7 +1665,7 @@ void MenuFunctions::displayCurrentMenu()
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.tft.setTextSize(1);
|
||||
#endif
|
||||
for (uint8_t i = 0; i < current_menu->list->size(); i++)
|
||||
for (uint8_t i = start_index; i < current_menu->list->size(); i++)
|
||||
{
|
||||
#ifdef HAS_ILI9341
|
||||
if (!current_menu->list->get(i).selected)
|
||||
@@ -1577,9 +1686,9 @@ void MenuFunctions::displayCurrentMenu()
|
||||
|
||||
#if defined(MARAUDER_MINI) || defined(MARAUDER_M5STICKC)
|
||||
if ((current_menu->selected == i) || (current_menu->list->get(i).selected))
|
||||
display_obj.key[i].drawButton(true, current_menu->list->get(i).name);
|
||||
display_obj.key[i - start_index].drawButton(true, current_menu->list->get(i).name);
|
||||
else
|
||||
display_obj.key[i].drawButton(false, current_menu->list->get(i).name);
|
||||
display_obj.key[i - start_index].drawButton(false, current_menu->list->get(i).name);
|
||||
#endif
|
||||
}
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
|
||||
@@ -116,6 +116,7 @@ class MenuFunctions
|
||||
String u_result = "";
|
||||
|
||||
uint32_t initTime = 0;
|
||||
uint8_t menu_start_index = 0;
|
||||
|
||||
|
||||
// Main menu stuff
|
||||
@@ -144,6 +145,7 @@ class MenuFunctions
|
||||
|
||||
// Bluetooth menu stuff
|
||||
Menu bluetoothSnifferMenu;
|
||||
Menu bluetoothAttackMenu;
|
||||
|
||||
// Settings things menus
|
||||
Menu generateSSIDsMenu;
|
||||
@@ -162,8 +164,10 @@ class MenuFunctions
|
||||
String callSetting(String key);
|
||||
void runBoolSetting(String ley);
|
||||
void displaySetting(String key, Menu* menu, int index);
|
||||
void buttonSelected(uint8_t b);
|
||||
void buttonNotSelected(uint8_t b);
|
||||
void buttonSelected(uint8_t b, int8_t x = -1);
|
||||
void buttonNotSelected(uint8_t b, int8_t x = -1);
|
||||
|
||||
uint8_t updateTouch(uint16_t *x, uint16_t *y, uint16_t threshold = 600);
|
||||
|
||||
public:
|
||||
MenuFunctions();
|
||||
@@ -192,7 +196,7 @@ class MenuFunctions
|
||||
void buildButtons(Menu* menu, int starting_index = 0);
|
||||
void changeMenu(Menu* menu);
|
||||
void drawStatusBar();
|
||||
void displayCurrentMenu();
|
||||
void displayCurrentMenu(uint8_t start_index = 0);
|
||||
void main(uint32_t currentTime);
|
||||
void RunSetup();
|
||||
void orientDisplay();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "SDInterface.h"
|
||||
#include "lang_var.h"
|
||||
|
||||
|
||||
bool SDInterface::initSD() {
|
||||
#ifdef HAS_SD
|
||||
String display_string = "";
|
||||
@@ -20,8 +21,23 @@ bool SDInterface::initSD() {
|
||||
pinMode(SD_CS, OUTPUT);
|
||||
|
||||
delay(10);
|
||||
|
||||
if (!SD.begin(SD_CS)) {
|
||||
#if defined(MARAUDER_M5STICKC)
|
||||
/* Set up SPI SD Card using external pin header
|
||||
StickCPlus Header - SPI SD Card Reader
|
||||
3v3 - 3v3
|
||||
GND - GND
|
||||
G0 - CLK
|
||||
G36/G25 - MISO
|
||||
G26 - MOSI
|
||||
- CS (jumper to SD Card GND Pin)
|
||||
*/
|
||||
enum { SPI_SCK = 0, SPI_MISO = 36, SPI_MOSI = 26 };
|
||||
SPIClass SPI_EXT;
|
||||
SPI_EXT.begin(SPI_SCK, SPI_MISO, SPI_MOSI, SD_CS);
|
||||
if (!SD.begin(SD_CS, SPI_EXT)) {
|
||||
#else
|
||||
if (!SD.begin(SD_CS)) {
|
||||
#endif
|
||||
Serial.println(F("Failed to mount SD Card"));
|
||||
this->supported = false;
|
||||
return false;
|
||||
@@ -274,4 +290,4 @@ void SDInterface::main() {
|
||||
this->initSD();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -77,6 +77,12 @@
|
||||
#define WIFI_SCAN_SIG_STREN 29
|
||||
#define WIFI_SCAN_EVIL_PORTAL 30
|
||||
#define WIFI_SCAN_GPS_DATA 31
|
||||
#define WIFI_SCAN_WAR_DRIVE 32
|
||||
#define WIFI_SCAN_STATION_WAR_DRIVE 33
|
||||
#define BT_SCAN_WAR_DRIVE 34
|
||||
#define BT_SCAN_WAR_DRIVE_CONT 35
|
||||
#define BT_ATTACK_SOUR_APPLE 36
|
||||
#define BT_ATTACK_SWIFTPAIR_SPAM 37
|
||||
|
||||
#define GRAPH_REFRESH 100
|
||||
|
||||
@@ -125,7 +131,6 @@ esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, b
|
||||
LinkedList<int>* stations;
|
||||
};*/
|
||||
|
||||
#define mac_history_len 86
|
||||
|
||||
struct mac_addr {
|
||||
unsigned char bytes[6];
|
||||
@@ -143,6 +148,7 @@ class WiFiScan
|
||||
struct mac_addr mac_history[mac_history_len];
|
||||
|
||||
// Settings
|
||||
uint mac_history_cursor = 0;
|
||||
uint8_t channel_hop_delay = 1;
|
||||
bool force_pmkid = false;
|
||||
bool force_probe = false;
|
||||
@@ -240,6 +246,16 @@ class WiFiScan
|
||||
0xf0, 0xff, 0x02, 0x00
|
||||
};
|
||||
|
||||
bool seen_mac(unsigned char* mac);
|
||||
bool mac_cmp(struct mac_addr addr1, struct mac_addr addr2);
|
||||
void save_mac(unsigned char* mac);
|
||||
void clearMacHistory();
|
||||
void executeWarDrive();
|
||||
void executeSourApple();
|
||||
void executeSwiftpairSpam();
|
||||
void startWardriverWiFi();
|
||||
void generateRandomMac(uint8_t* mac);
|
||||
|
||||
void startWiFiAttacks(uint8_t scan_mode, uint16_t color, String title_string);
|
||||
|
||||
void packetMonitorMain(uint32_t currentTime);
|
||||
@@ -270,6 +286,8 @@ class WiFiScan
|
||||
void RunProbeScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunPacketMonitor(uint8_t scan_mode, uint16_t color);
|
||||
void RunBluetoothScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunSourApple(uint8_t scan_mode, uint16_t color);
|
||||
void RunSwiftpairSpam(uint8_t scan_mode, uint16_t color);
|
||||
void RunLvJoinWiFi(uint8_t scan_mode, uint16_t color);
|
||||
void RunEvilPortal(uint8_t scan_mode, uint16_t color);
|
||||
bool checkMem();
|
||||
@@ -301,9 +319,10 @@ class WiFiScan
|
||||
byte src_mac[6] = {};
|
||||
|
||||
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||
wifi_config_t ap_config;
|
||||
|
||||
String security_int_to_string(int security_type);
|
||||
char* stringToChar(String string);
|
||||
void RunSetup();
|
||||
int clearSSIDs();
|
||||
@@ -331,6 +350,7 @@ class WiFiScan
|
||||
void main(uint32_t currentTime);
|
||||
void StartScan(uint8_t scan_mode, uint16_t color = 0);
|
||||
void StopScan(uint8_t scan_mode);
|
||||
const char* generateRandomName();
|
||||
//void addLog(String log, int len);
|
||||
|
||||
static void getMAC(char *addr, uint8_t* data, uint16_t offset);
|
||||
|
||||
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin
Normal file
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.elf
Normal file
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.elf
Normal file
Binary file not shown.
161848
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.map
Normal file
161848
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.map
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
BIN
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin
Normal file
BIN
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.elf
Normal file
BIN
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.elf
Normal file
Binary file not shown.
120502
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.map
Normal file
120502
esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.map
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -9,24 +9,26 @@
|
||||
//#define WRITE_PACKETS_SERIAL
|
||||
|
||||
//// BOARD TARGETS
|
||||
//#define MARAUDER_M5STICKC
|
||||
#define MARAUDER_M5STICKC
|
||||
//#define MARAUDER_MINI
|
||||
//#define MARAUDER_V4
|
||||
//#define MARAUDER_V6
|
||||
//#define MARAUDER_V6_1
|
||||
//#define MARAUDER_KIT
|
||||
//#define GENERIC_ESP32
|
||||
#define MARAUDER_FLIPPER
|
||||
//#define MARAUDER_FLIPPER
|
||||
//#define ESP32_LDDB
|
||||
//#define MARAUDER_DEV_BOARD_PRO
|
||||
//#define XIAO_ESP32_S3
|
||||
//// END BOARD TARGETS
|
||||
|
||||
#define MARAUDER_VERSION "v0.11.1"
|
||||
#define MARAUDER_VERSION "v0.13.3"
|
||||
|
||||
//// BOARD FEATURES
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
#define HAS_BATTERY
|
||||
#define HAS_BT
|
||||
#define HAS_BUTTONS
|
||||
#define HAS_NEOPIXEL_LED
|
||||
#define HAS_PWR_MGMT
|
||||
@@ -48,7 +50,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V4
|
||||
@@ -65,11 +67,12 @@
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
#if defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
#define HAS_BATTERY
|
||||
#define HAS_BT
|
||||
//#define HAS_BUTTONS
|
||||
#define HAS_BT_REMOTE
|
||||
#define HAS_BUTTONS
|
||||
#define HAS_NEOPIXEL_LED
|
||||
//#define HAS_PWR_MGMT
|
||||
#define HAS_SCREEN
|
||||
@@ -125,7 +128,7 @@
|
||||
#ifdef ESP32_LDDB
|
||||
//#define FLIPPER_ZERO_HAT
|
||||
//#define HAS_BATTERY
|
||||
//#define HAS_BT
|
||||
#define HAS_BT
|
||||
//#define HAS_BUTTONS
|
||||
#define HAS_NEOPIXEL_LED
|
||||
//#define HAS_PWR_MGMT
|
||||
@@ -203,6 +206,22 @@
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN 39
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
#define L_BTN -1
|
||||
#define C_BTN 0
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN -1
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6_1
|
||||
#define L_BTN -1
|
||||
#define C_BTN 0
|
||||
#define U_BTN -1
|
||||
#define R_BTN -1
|
||||
#define D_BTN -1
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -253,7 +272,8 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_SCREEN_LIMIT 6
|
||||
#define BUTTON_ARRAY_LEN 13
|
||||
#define STATUS_BAR_WIDTH (TFT_HEIGHT/16)
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -308,7 +328,8 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_SCREEN_LIMIT 12
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -334,7 +355,7 @@
|
||||
#define KIT_LED_BUILTIN 13
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
#if defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
#define HAS_ILI9341
|
||||
|
||||
@@ -365,7 +386,8 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_SCREEN_LIMIT 12
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -423,7 +445,8 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_SCREEN_LIMIT 12
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -491,7 +514,8 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_SCREEN_LIMIT 10
|
||||
#define BUTTON_ARRAY_LEN 13
|
||||
#define STATUS_BAR_WIDTH (TFT_HEIGHT/16)
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -538,7 +562,7 @@
|
||||
//#define BUTTON_ARRAY_LEN 5
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6
|
||||
#if defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define BANNER_TIME 100
|
||||
|
||||
#define COMMAND_PREFIX "!"
|
||||
@@ -609,7 +633,7 @@
|
||||
#define KEY_TEXTSIZE 1 // Font size multiplier
|
||||
#define ICON_W 22
|
||||
#define ICON_H 22
|
||||
#define BUTTON_PADDING 10
|
||||
#define BUTTON_PADDING 60
|
||||
#endif
|
||||
//// END MENU DEFINITIONS
|
||||
|
||||
@@ -630,6 +654,10 @@
|
||||
#define SD_CS 12
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6_1
|
||||
#define SD_CS 14
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
#define SD_CS 12
|
||||
#endif
|
||||
@@ -639,7 +667,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
#define SD_CS 10
|
||||
#define SD_CS -1
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
@@ -695,7 +723,7 @@
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_V6)
|
||||
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
#elif defined(MARAUDER_KIT)
|
||||
#define MEM_LOWER_LIM 20000
|
||||
@@ -742,7 +770,7 @@
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_V6)
|
||||
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
#elif defined(MARAUDER_KIT)
|
||||
#define MAX_HTML_SIZE 11400
|
||||
@@ -763,34 +791,50 @@
|
||||
|
||||
//// GPS STUFF
|
||||
#ifdef HAS_GPS
|
||||
#ifdef MARAUDER_V6
|
||||
#if defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define GPS_SERIAL_INDEX 2
|
||||
#define GPS_TX 4
|
||||
#define GPS_RX 13
|
||||
#define mac_history_len 512
|
||||
#elif defined(MARAUDER_V4)
|
||||
#define GPS_SERIAL_INDEX 2
|
||||
#define GPS_TX 4
|
||||
#define GPS_RX 13
|
||||
#define mac_history_len 512
|
||||
#elif defined(MARAUDER_KIT)
|
||||
#define GPS_SERIAL_INDEX 2
|
||||
#define GPS_TX 4
|
||||
#define GPS_RX 13
|
||||
#define mac_history_len 512
|
||||
#elif defined(MARAUDER_DEV_BOARD_PRO)
|
||||
#define GPS_SERIAL_INDEX 2
|
||||
#define GPS_TX 21
|
||||
#define GPS_RX 17
|
||||
#define mac_history_len 512
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define GPS_SERIAL_INDEX 2
|
||||
#define GPS_TX 21
|
||||
#define GPS_RX 22
|
||||
#define mac_history_len 512
|
||||
#elif defined(MARAUDER_FLIPPER)
|
||||
#define GPS_SERIAL_INDEX 1
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
#define GPS_SOFTWARE_SERIAL
|
||||
#else
|
||||
#define GPS_SERIAL_INDEX 1
|
||||
#endif
|
||||
#define GPS_TX 9
|
||||
#define GPS_RX 21
|
||||
#define mac_history_len 512
|
||||
#endif
|
||||
#else
|
||||
#define mac_history_len 512
|
||||
#endif
|
||||
//// END GPS STUFF
|
||||
|
||||
//// MARAUDER TITLE STUFF
|
||||
#ifdef MARAUDER_V4
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_V6)
|
||||
#elif defined(MARAUDER_V6) || defined(MARAUDER_V6_1)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_KIT)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
@@ -801,4 +845,4 @@
|
||||
#endif
|
||||
//// END MARAUDER TITLE STUFF
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -165,7 +165,7 @@ void setup()
|
||||
axp192_obj.begin();
|
||||
#endif
|
||||
|
||||
pinMode(FLASH_BUTTON, INPUT);
|
||||
//pinMode(FLASH_BUTTON, INPUT);
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
pinMode(TFT_BL, OUTPUT);
|
||||
@@ -247,6 +247,17 @@ void setup()
|
||||
#ifdef HAS_SCREEN
|
||||
delay(2000);
|
||||
|
||||
// Do some stealth mode stuff
|
||||
#ifdef HAS_BUTTONS
|
||||
if (c_btn.justPressed()) {
|
||||
display_obj.headless_mode = true;
|
||||
|
||||
backlightOff();
|
||||
|
||||
Serial.println("Headless Mode enabled");
|
||||
}
|
||||
#endif
|
||||
|
||||
display_obj.clearScreen();
|
||||
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
|
||||
Reference in New Issue
Block a user