Compare commits
77 Commits
v0.11.0-RC
...
v0.13.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06e6cdb8cd | ||
|
|
5f53e32f8e | ||
|
|
1d6ff6f911 | ||
|
|
ad6addf3df | ||
|
|
c788ad6681 | ||
|
|
06ede5272d | ||
|
|
b8620e1bd3 | ||
|
|
18ca6160e5 | ||
|
|
bbe9eead7e | ||
|
|
971487eefb | ||
|
|
9158083889 | ||
|
|
f0bf1f4b7f | ||
|
|
388ef30acd | ||
|
|
7eb7ae4a0d | ||
|
|
10fce15bb9 | ||
|
|
32c118b0d5 | ||
|
|
c370dfa996 | ||
|
|
7669a7447f | ||
|
|
7049e1101f | ||
|
|
c0864af4db | ||
|
|
e4dcf91286 | ||
|
|
d382b066d4 | ||
|
|
4c50953dde | ||
|
|
a2f8eabd51 | ||
|
|
1465245cf4 | ||
|
|
3b3aa9a6e5 | ||
|
|
6e645e437a | ||
|
|
e0f95373c1 | ||
|
|
787490820e | ||
|
|
1167eaca67 | ||
|
|
da949387fc | ||
|
|
0ec881f309 | ||
|
|
57186cf4b5 | ||
|
|
a5d1b3faaf | ||
|
|
9b14d2daf5 | ||
|
|
7092fdf6cb | ||
|
|
e61c859df3 | ||
|
|
9b03aeff56 | ||
|
|
d39f3fc2da | ||
|
|
e92476fb26 | ||
|
|
4b000c8d18 | ||
|
|
5d4f73dbc8 | ||
|
|
3337c3e7a2 | ||
|
|
bf831a19fd | ||
|
|
8f2b9c709a | ||
|
|
edbd601af7 | ||
|
|
e174291646 | ||
|
|
1580feb1d0 | ||
|
|
5047296c94 | ||
|
|
26a46d6c4d | ||
|
|
86328d2788 | ||
|
|
f48d42ae0c | ||
|
|
4b40c0cf22 | ||
|
|
363817c113 | ||
|
|
4cf96a8f0c | ||
|
|
49888fa864 | ||
|
|
56133db97a | ||
|
|
ce8c70daf7 | ||
|
|
6a26ac2e04 | ||
|
|
bc3038c73b | ||
|
|
eee1b5c8c2 | ||
|
|
ddfda9c9ed | ||
|
|
d140f70093 | ||
|
|
7299b66255 | ||
|
|
c7936b06f2 | ||
|
|
0106081308 | ||
|
|
3c9458e0f5 | ||
|
|
2735550d3a | ||
|
|
6da2d33507 | ||
|
|
d1e0d96543 | ||
|
|
17a4035208 | ||
|
|
def6d2d277 | ||
|
|
9db9c630e4 | ||
|
|
816e620b5b | ||
|
|
89d731b10d | ||
|
|
105a23b1f2 | ||
|
|
d8c960dbe5 |
124
.github/workflows/build_push.yml
vendored
@@ -44,27 +44,34 @@ jobs:
|
||||
ref: master
|
||||
path: CustomAsyncTCP
|
||||
|
||||
- name: Install MicroNMEA
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: stevemarple/MicroNMEA
|
||||
ref: v2.0.6
|
||||
path: CustomMicroNMEA
|
||||
|
||||
- name: Install ESPAsyncWebServer
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: justcallmekoko/ESPAsyncWebServer
|
||||
repository: bigbrodude6119/ESPAsyncWebServer
|
||||
ref: master
|
||||
path: CustomESPAsyncWebServer
|
||||
|
||||
#- name: Install TFT_eSPI
|
||||
# uses: actions/checkout@v2
|
||||
# with:
|
||||
# repository: justcallmekoko/TFT_eSPI
|
||||
# ref: master
|
||||
# path: CustomTFT_eSPI
|
||||
|
||||
- name: Install TFT_eSPI
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: justcallmekoko/TFT_eSPI
|
||||
ref: master
|
||||
repository: Bodmer/TFT_eSPI
|
||||
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:
|
||||
@@ -107,9 +114,16 @@ jobs:
|
||||
ref: main
|
||||
path: CustomSwitchLib
|
||||
|
||||
- name: Search for SD lib in arduino-esp32 v2.0.4
|
||||
run: |
|
||||
find /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32 -name "SD"
|
||||
- name: Install LinkedList
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ivanseidel/LinkedList
|
||||
ref: v1.3.3
|
||||
path: CustomLinkedList
|
||||
|
||||
#- name: Search for SD lib in arduino-esp32 v2.0.4
|
||||
# run: |
|
||||
# find /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32 -name "SD"
|
||||
|
||||
- name: Configure TFT_eSPI
|
||||
run: |
|
||||
@@ -136,9 +150,9 @@ jobs:
|
||||
# ls -la /home/runner/.arduino15/packages/esp32/hardware/esp32/
|
||||
# echo Whoever made me have to do this can fuck off
|
||||
|
||||
- name: Search for SD lib in arduino-esp32
|
||||
run: |
|
||||
find /home/runner/ -name "SD"
|
||||
#- name: Search for SD lib in arduino-esp32
|
||||
# run: |
|
||||
# find /home/runner/ -name "SD"
|
||||
|
||||
#- name: Replace SD lib
|
||||
# run: |
|
||||
@@ -159,6 +173,18 @@ 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_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
|
||||
@@ -212,6 +238,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
|
||||
@@ -236,12 +263,30 @@ 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
|
||||
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 Marauder with arduino/compile-sketches
|
||||
# uses: arduino/compile-sketches@v1
|
||||
# with:
|
||||
# sketch-paths: esp32_marauder/esp32_marauder.ino
|
||||
# cli-compile-flags: |
|
||||
# - --warnings="none"
|
||||
# - --export-binaries
|
||||
# fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
|
||||
|
||||
#- name: Show compiled arduino/compile-sketches v6 bin
|
||||
# run: |
|
||||
# find ~ -name "esp32_marauder.ino.bin"
|
||||
|
||||
#- name: Rename v6_2 Marauder bin
|
||||
# run: |
|
||||
# mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6_2.bin
|
||||
|
||||
- name: Build Marauder for v6 Marauder
|
||||
uses: ArminJo/arduino-test-compile@v3.2.1
|
||||
with:
|
||||
@@ -253,6 +298,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
|
||||
@@ -260,6 +328,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 +353,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
|
||||
@@ -306,6 +376,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
|
||||
@@ -328,6 +399,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
|
||||
@@ -354,6 +426,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
|
||||
@@ -411,6 +484,13 @@ jobs:
|
||||
path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.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
|
||||
with:
|
||||
@@ -517,6 +597,18 @@ jobs:
|
||||
asset_name: esp32_marauder.v6.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,7 +3,7 @@
|
||||
<!---[](https://travis-ci.com/justcallmekoko/ESP32Marauder)--->
|
||||
<!---Shields/Badges https://shields.io/--->
|
||||
|
||||
# ESP32 Marauder v0.11.0-RC1
|
||||
# ESP32 Marauder v0.13.0
|
||||
<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>
|
||||
|
||||
@@ -215,6 +215,8 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_UPDATE_CMD_A);
|
||||
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);
|
||||
@@ -229,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);
|
||||
@@ -240,11 +245,16 @@ void CommandLine::runCommand(String input) {
|
||||
Serial.println(HELP_SEL_CMD_A);
|
||||
Serial.println(HELP_SSID_CMD_A);
|
||||
Serial.println(HELP_SSID_CMD_B);
|
||||
Serial.println(HELP_JOIN_WIFI_CMD);
|
||||
|
||||
// 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);
|
||||
#ifdef HAS_GPS
|
||||
Serial.println(HELP_BT_WARDRIVE_CMD);
|
||||
#endif
|
||||
Serial.println(HELP_BT_SKIM_CMD);
|
||||
#endif
|
||||
Serial.println(HELP_FOOT);
|
||||
return;
|
||||
}
|
||||
@@ -271,6 +281,44 @@ void CommandLine::runCommand(String input) {
|
||||
menu_function_obj.changeMenu(menu_function_obj.current_menu);
|
||||
#endif
|
||||
}
|
||||
else if (cmd_args.get(0) == GPS_DATA_CMD) {
|
||||
#ifdef HAS_GPS
|
||||
if (gps_obj.getGpsModuleStatus()) {
|
||||
Serial.println("Getting GPS Data. Stop with " + (String)STOPSCAN_CMD);
|
||||
wifi_scan_obj.currentScanMode = WIFI_SCAN_GPS_DATA;
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.changeMenu(&menu_function_obj.gpsInfoMenu);
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_GPS_DATA, TFT_CYAN);
|
||||
}
|
||||
#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");
|
||||
@@ -401,7 +449,35 @@ void CommandLine::runCommand(String input) {
|
||||
display_obj.clearScreen();
|
||||
menu_function_obj.drawStatusBar();
|
||||
#endif
|
||||
wifi_scan_obj.StartScan(WIFI_SCAN_EVIL_PORTAL, TFT_MAGENTA);
|
||||
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) {
|
||||
@@ -696,6 +772,51 @@ 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
|
||||
}
|
||||
// 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
|
||||
@@ -995,7 +1116,7 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
}
|
||||
// Join WiFi
|
||||
else if (cmd_args.get(0) == JOINWIFI_CMD) {
|
||||
/*else if (cmd_args.get(0) == JOINWIFI_CMD) {
|
||||
int n_sw = this->argSearch(&cmd_args, "-n"); // name
|
||||
int a_sw = this->argSearch(&cmd_args, "-a"); // access point
|
||||
int s_sw = this->argSearch(&cmd_args, "-s"); // ssid
|
||||
@@ -1030,5 +1151,5 @@ void CommandLine::runCommand(String input) {
|
||||
}
|
||||
Serial.println("Attempting to join WiFi with ssid " + (String)essid);
|
||||
wifi_scan_obj.joinWiFi(essid, pwx);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -45,6 +45,8 @@ const char PROGMEM HELP_CMD[] = "help";
|
||||
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";
|
||||
@@ -59,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";
|
||||
@@ -71,10 +74,11 @@ const char PROGMEM ATTACK_TYPE_RR[] = "rickroll";
|
||||
const char PROGMEM LIST_AP_CMD[] = "list";
|
||||
const char PROGMEM SEL_CMD[] = "select";
|
||||
const char PROGMEM SSID_CMD[] = "ssid";
|
||||
const char PROGMEM JOINWIFI_CMD[] = "join";
|
||||
|
||||
// Bluetooth sniff/scan
|
||||
const char PROGMEM BT_SNIFF_CMD[] = "sniffbt";
|
||||
const char PROGMEM BT_SOUR_APPLE_CMD[] = "sourapple";
|
||||
const char PROGMEM BT_WARDRIVE_CMD[] = "btwardrive";
|
||||
const char PROGMEM BT_SKIM_CMD[] = "sniffskim";
|
||||
|
||||
|
||||
@@ -88,6 +92,8 @@ const char PROGMEM HELP_UPDATE_CMD_A[] = "update -s/-w";
|
||||
const char PROGMEM HELP_SETTINGS_CMD[] = "settings [-s <setting> enable/disable>]/[-r]";
|
||||
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]";
|
||||
@@ -102,7 +108,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_JOIN_WIFI_CMD[] = "join [-n <ssid_name>/-s <ssid_index>/-a <access_point_index>] -p <password>";
|
||||
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 +123,8 @@ 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_WARDRIVE_CMD[] = "btwardrive [-c]";
|
||||
const char PROGMEM HELP_BT_SKIM_CMD[] = "sniffskim";
|
||||
const char PROGMEM HELP_FOOT[] = "==================================";
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ void Display::displayBuffer(bool do_clear)
|
||||
|
||||
void Display::showCenterText(String text, int y)
|
||||
{
|
||||
tft.setCursor((SCREEN_WIDTH - (text.length() * 6)) / 2, y);
|
||||
tft.setCursor((SCREEN_WIDTH - (text.length() * (6 * BANNER_TEXT_SIZE))) / 2, y);
|
||||
tft.println(text);
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ void Display::drawJpeg(const char *filename, int xpos, int ypos) {
|
||||
// the filename can be a String or character array type:
|
||||
|
||||
//boolean decoded = JpegDec.decodeFsFile(filename); // or pass the filename (leading / distinguishes SPIFFS files)
|
||||
boolean decoded = JpegDec.decodeArray(MarauderTitle, 13578);
|
||||
boolean decoded = JpegDec.decodeArray(MarauderTitle, MARAUDER_TITLE_BYTES);
|
||||
|
||||
if (decoded) {
|
||||
// print information about the image to the serial port
|
||||
@@ -441,13 +441,13 @@ void Display::drawJpeg(const char *filename, int xpos, int ypos) {
|
||||
//}
|
||||
}
|
||||
|
||||
void Display::setupDraw() {
|
||||
/*void Display::setupDraw() {
|
||||
this->tft.drawLine(0, 0, 10, 0, TFT_MAGENTA);
|
||||
this->tft.drawLine(0, 0, 0, 10, TFT_GREEN);
|
||||
this->tft.drawLine(0, 0, 0, 0, TFT_CYAN);
|
||||
}
|
||||
}*/
|
||||
|
||||
uint16_t xlast;
|
||||
/*uint16_t xlast;
|
||||
uint16_t ylast;
|
||||
uint32_t AH;
|
||||
void Display::drawStylus()
|
||||
@@ -513,7 +513,7 @@ void Display::drawStylus()
|
||||
xlast = 0;
|
||||
ylast = 0;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
//====================================================================================
|
||||
// Decode and render the Jpeg image onto the TFT screen
|
||||
@@ -751,20 +751,20 @@ void Display::listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
|
||||
|
||||
void Display::updateBanner(String msg)
|
||||
{
|
||||
this->img.deleteSprite();
|
||||
//this->img.deleteSprite();
|
||||
|
||||
this->img.setColorDepth(8);
|
||||
//this->img.setColorDepth(8);
|
||||
|
||||
this->img.createSprite(SCREEN_WIDTH, TEXT_HEIGHT);
|
||||
//this->img.createSprite(SCREEN_WIDTH, TEXT_HEIGHT);
|
||||
|
||||
this->buildBanner(msg, current_banner_pos);
|
||||
|
||||
this->img.pushSprite(0, STATUS_BAR_WIDTH);
|
||||
//this->img.pushSprite(0, STATUS_BAR_WIDTH);
|
||||
|
||||
current_banner_pos--;
|
||||
//current_banner_pos--;
|
||||
|
||||
if (current_banner_pos <= 0)
|
||||
current_banner_pos = SCREEN_WIDTH + 2;
|
||||
//if (current_banner_pos <= 0)
|
||||
// current_banner_pos = SCREEN_WIDTH + 2;
|
||||
}
|
||||
|
||||
|
||||
@@ -772,6 +772,13 @@ void Display::buildBanner(String msg, int xpos)
|
||||
{
|
||||
int h = TEXT_HEIGHT;
|
||||
|
||||
this->tft.fillRect(0, STATUS_BAR_WIDTH, SCREEN_WIDTH, TEXT_HEIGHT, TFT_BLACK);
|
||||
this->tft.setFreeFont(NULL); // Font 4 selected
|
||||
this->tft.setTextSize(BANNER_TEXT_SIZE); // Font size scaling is x1
|
||||
this->tft.setTextColor(TFT_WHITE, TFT_BLACK); // Black text, no background colour
|
||||
this->showCenterText(msg, STATUS_BAR_WIDTH);
|
||||
|
||||
/*
|
||||
// We could just use fillSprite(color) but lets be a bit more creative...
|
||||
|
||||
// Fill with rainbow stripes
|
||||
@@ -793,6 +800,7 @@ void Display::buildBanner(String msg, int xpos)
|
||||
|
||||
img.setCursor(xpos - SCREEN_WIDTH, 2); // Print text at xpos - sprite width
|
||||
img.print(msg);
|
||||
*/
|
||||
}
|
||||
|
||||
void Display::main(uint8_t scan_mode)
|
||||
|
||||
@@ -8,12 +8,10 @@
|
||||
#include <FS.h>
|
||||
#include <functional>
|
||||
#include <JPEGDecoder.h>
|
||||
//#include <SimpleList.h>
|
||||
#include <LinkedList.h>
|
||||
#include <SPI.h>
|
||||
#include <lvgl.h>
|
||||
#include <Ticker.h>
|
||||
//#include <M5Stack.h>
|
||||
#include "SPIFFS.h"
|
||||
#include "Assets.h"
|
||||
|
||||
@@ -39,23 +37,6 @@
|
||||
#define LV_ADD_SSID 14
|
||||
#define WIFI_ATTACK_BEACON_LIST 15
|
||||
|
||||
/*
|
||||
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);
|
||||
|
||||
PROGMEM static lv_disp_buf_t disp_buf;
|
||||
PROGMEM static lv_color_t buf[LV_HOR_RES_MAX * 10];
|
||||
|
||||
PROGMEM static void ta_event_cb(lv_obj_t * ta, lv_event_t event);
|
||||
PROGMEM static void keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
|
||||
// lvgl stuff
|
||||
PROGMEM static lv_obj_t *kb;
|
||||
*/
|
||||
|
||||
// #define KIT
|
||||
// #define TFT_DIY
|
||||
|
||||
class Display
|
||||
{
|
||||
private:
|
||||
@@ -76,16 +57,9 @@ class Display
|
||||
void scrollScreenBuffer(bool down = false);
|
||||
#endif
|
||||
|
||||
//void addNodes(Menu* menu, String name, Menu* child, std::function<void()> callable);
|
||||
//void changeMenu(Menu* menu);
|
||||
//void showMenuList(Menu* menu, int layer);
|
||||
//static void lv_tick_handler();
|
||||
|
||||
public:
|
||||
Display();
|
||||
//Ticker tick;
|
||||
TFT_eSPI tft = TFT_eSPI();
|
||||
TFT_eSprite img = TFT_eSprite(&tft);
|
||||
TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
|
||||
const String PROGMEM version_number = MARAUDER_VERSION;
|
||||
|
||||
@@ -95,15 +69,9 @@ class Display
|
||||
bool draw_tft = false;
|
||||
bool exit_draw = false;
|
||||
|
||||
int TOP_FIXED_AREA_2 = 48;
|
||||
int print_delay_1, print_delay_2 = 10;
|
||||
int current_banner_pos = SCREEN_WIDTH;
|
||||
|
||||
//Menu* current_menu;
|
||||
|
||||
//Menu mainMenu;
|
||||
//Menu wifiMenu;
|
||||
//Menu bluetoothMenu;
|
||||
uint8_t TOP_FIXED_AREA_2 = 48;
|
||||
uint8_t print_delay_1, print_delay_2 = 10;
|
||||
uint8_t current_banner_pos = SCREEN_WIDTH;
|
||||
|
||||
LinkedList<String>* display_buffer;
|
||||
|
||||
@@ -127,9 +95,6 @@ class Display
|
||||
// We can speed up scrolling of short text lines by just blanking the character we drew
|
||||
int blank[19]; // We keep all the strings pixel lengths to optimise the speed of the top line blanking
|
||||
|
||||
//void initLVGL();
|
||||
//void deinitLVGL();
|
||||
//void joinWiFiGFX();
|
||||
void tftDrawRedOnOffButton();
|
||||
void tftDrawGreenOnOffButton();
|
||||
void tftDrawGraphObjects(byte x_scale);
|
||||
@@ -143,8 +108,6 @@ class Display
|
||||
void clearScreen();
|
||||
void displayBuffer(bool do_clear = false);
|
||||
void drawJpeg(const char *filename, int xpos, int ypos);
|
||||
void setupDraw();
|
||||
void drawStylus();
|
||||
void getTouchWhileFunction(bool pressed);
|
||||
void initScrollValues(bool tte = false);
|
||||
void jpegInfo();
|
||||
|
||||
@@ -31,7 +31,7 @@ String EvilPortal::get_password() {
|
||||
|
||||
void EvilPortal::setupServer() {
|
||||
server.on("/", HTTP_GET, [this](AsyncWebServerRequest *request) {
|
||||
request->send_P(200, "text/html", this->index_html);
|
||||
request->send_P(200, "text/html", index_html);
|
||||
Serial.println("client connected");
|
||||
#ifdef HAS_SCREEN
|
||||
this->sendToDisplay("Client connected to server");
|
||||
@@ -90,7 +90,7 @@ bool EvilPortal::setHtml() {
|
||||
if (isPrintable(c))
|
||||
html.concat(c);
|
||||
}
|
||||
strncpy(this->index_html, html.c_str(), strlen(html.c_str()));
|
||||
strncpy(index_html, html.c_str(), strlen(html.c_str()));
|
||||
this->has_html = true;
|
||||
Serial.println("html set");
|
||||
html_file.close();
|
||||
@@ -203,7 +203,7 @@ bool EvilPortal::setAP(LinkedList<ssid>* ssids, LinkedList<AccessPoint>* access_
|
||||
}
|
||||
|
||||
if (ap_config != "") {
|
||||
strncpy(this->apName, ap_config.c_str(), strlen(ap_config.c_str()));
|
||||
strncpy(apName, ap_config.c_str(), MAX_AP_NAME_SIZE);
|
||||
this->has_ap = true;
|
||||
Serial.println("ap config set");
|
||||
return true;
|
||||
@@ -215,10 +215,10 @@ bool EvilPortal::setAP(LinkedList<ssid>* ssids, LinkedList<AccessPoint>* access_
|
||||
|
||||
void EvilPortal::startAP() {
|
||||
Serial.print("starting ap ");
|
||||
Serial.println(this->apName);
|
||||
Serial.println(apName);
|
||||
|
||||
WiFi.mode(WIFI_AP);
|
||||
WiFi.softAP(this->apName);
|
||||
WiFi.softAP(apName);
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
this->sendToDisplay("AP started");
|
||||
@@ -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
|
||||
}
|
||||
@@ -304,4 +307,4 @@ void EvilPortal::main(uint8_t scan_mode) {
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,26 @@ extern Buffer buffer_obj;
|
||||
#define MAX_AP_NAME_SIZE 30
|
||||
#define WIFI_SCAN_EVIL_PORTAL 30
|
||||
|
||||
char apName[MAX_AP_NAME_SIZE] = "PORTAL";
|
||||
char index_html[MAX_HTML_SIZE] = "TEST";
|
||||
|
||||
struct ssid {
|
||||
String essid;
|
||||
uint8_t channel;
|
||||
uint8_t bssid[6];
|
||||
bool selected;
|
||||
};
|
||||
|
||||
struct AccessPoint {
|
||||
String essid;
|
||||
uint8_t channel;
|
||||
uint8_t bssid[6];
|
||||
bool selected;
|
||||
LinkedList<char>* beacon;
|
||||
char rssi;
|
||||
LinkedList<uint8_t>* stations;
|
||||
};
|
||||
|
||||
class CaptiveRequestHandler : public AsyncWebHandler {
|
||||
public:
|
||||
CaptiveRequestHandler() {}
|
||||
@@ -46,28 +66,11 @@ public:
|
||||
|
||||
bool canHandle(AsyncWebServerRequest *request) { return true; }
|
||||
|
||||
void handleRequest(AsyncWebServerRequest *request, char * index_html) {
|
||||
void handleRequest(AsyncWebServerRequest *request) {
|
||||
request->send_P(200, "text/html", index_html);
|
||||
}
|
||||
};
|
||||
|
||||
struct ssid {
|
||||
String essid;
|
||||
uint8_t channel;
|
||||
int bssid[6];
|
||||
bool selected;
|
||||
};
|
||||
|
||||
struct AccessPoint {
|
||||
String essid;
|
||||
int channel;
|
||||
int bssid[6];
|
||||
bool selected;
|
||||
LinkedList<char>* beacon;
|
||||
int rssi;
|
||||
LinkedList<int>* stations;
|
||||
};
|
||||
|
||||
class EvilPortal {
|
||||
|
||||
private:
|
||||
@@ -78,9 +81,6 @@ class EvilPortal {
|
||||
String user_name;
|
||||
String password;
|
||||
|
||||
char apName[MAX_AP_NAME_SIZE] = "PORTAL";
|
||||
char index_html[MAX_HTML_SIZE] = "TEST";
|
||||
|
||||
bool has_html;
|
||||
bool has_ap;
|
||||
|
||||
@@ -93,7 +93,6 @@ 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);
|
||||
|
||||
@@ -102,6 +101,7 @@ class EvilPortal {
|
||||
|
||||
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);
|
||||
|
||||
|
||||
126
esp32_marauder/GpsInterface.cpp
Normal file
@@ -0,0 +1,126 @@
|
||||
#include "GpsInterface.h"
|
||||
|
||||
#ifdef HAS_GPS
|
||||
|
||||
char nmeaBuffer[100];
|
||||
|
||||
MicroNMEA nmea(nmeaBuffer, sizeof(nmeaBuffer));
|
||||
|
||||
HardwareSerial Serial2(GPS_SERIAL_INDEX);
|
||||
|
||||
void GpsInterface::begin() {
|
||||
|
||||
Serial2.begin(9600, SERIAL_8N1, GPS_TX, GPS_RX);
|
||||
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSETPAR,1201,0x00000042");
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSAVEPAR");
|
||||
|
||||
MicroNMEA::sendSentence(Serial2, "$PSTMSRR");
|
||||
|
||||
delay(4000);
|
||||
|
||||
if (Serial2.available()) {
|
||||
Serial.println("GPS Attached Successfully");
|
||||
this->gps_enabled = true;
|
||||
while (Serial2.available())
|
||||
Serial2.read();
|
||||
}
|
||||
}
|
||||
|
||||
// Thanks JosephHewitt
|
||||
String GpsInterface::dt_string_from_gps(){
|
||||
//Return a datetime String using GPS data only.
|
||||
String datetime = "";
|
||||
if (nmea.isValid() && nmea.getYear() > 0){
|
||||
datetime += nmea.getYear();
|
||||
datetime += "-";
|
||||
datetime += nmea.getMonth();
|
||||
datetime += "-";
|
||||
datetime += nmea.getDay();
|
||||
datetime += " ";
|
||||
datetime += nmea.getHour();
|
||||
datetime += ":";
|
||||
datetime += nmea.getMinute();
|
||||
datetime += ":";
|
||||
datetime += nmea.getSecond();
|
||||
}
|
||||
return datetime;
|
||||
}
|
||||
|
||||
void GpsInterface::setGPSInfo() {
|
||||
this->good_fix = nmea.isValid();
|
||||
this->num_sats = nmea.getNumSatellites();
|
||||
|
||||
this->datetime = this->dt_string_from_gps();
|
||||
|
||||
this->lat = String((float)nmea.getLatitude()/1000000, 7);
|
||||
this->lon = String((float)nmea.getLongitude()/1000000, 7);
|
||||
long alt = 0;
|
||||
if (!nmea.getAltitude(alt)){
|
||||
alt = 0;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
String GpsInterface::getLon() {
|
||||
return this->lon;
|
||||
}
|
||||
|
||||
float GpsInterface::getAlt() {
|
||||
return this->altf;
|
||||
}
|
||||
|
||||
String GpsInterface::getDatetime() {
|
||||
return this->datetime;
|
||||
}
|
||||
|
||||
String GpsInterface::getNumSatsString() {
|
||||
return (String)num_sats;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
void GpsInterface::main() {
|
||||
while (Serial2.available()) {
|
||||
//Fetch the character one by one
|
||||
char c = Serial2.read();
|
||||
//Serial.print(c);
|
||||
//Pass the character to the library
|
||||
nmea.process(c);
|
||||
}
|
||||
|
||||
uint8_t num_sat = nmea.getNumSatellites();
|
||||
|
||||
if ((nmea.isValid()) && (num_sat > 0))
|
||||
this->setGPSInfo();
|
||||
|
||||
else if ((!nmea.isValid()) && (num_sat <= 0)) {
|
||||
this->setGPSInfo();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
39
esp32_marauder/GpsInterface.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef GpsInterface_h
|
||||
#define GpsInterface_h
|
||||
|
||||
#include <MicroNMEA.h>
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
class GpsInterface {
|
||||
public:
|
||||
void begin();
|
||||
void main();
|
||||
|
||||
String getNumSatsString();
|
||||
bool getFixStatus();
|
||||
String getFixStatusAsString();
|
||||
bool getGpsModuleStatus();
|
||||
String getLat();
|
||||
String getLon();
|
||||
float getAlt();
|
||||
float getAccuracy();
|
||||
String getDatetime();
|
||||
|
||||
private:
|
||||
// GPS Info
|
||||
String lat = "";
|
||||
String lon = "";
|
||||
float altf = 0.0;
|
||||
float accuracy = 0.0;
|
||||
String datetime = "";
|
||||
|
||||
bool gps_enabled = false;
|
||||
bool good_fix = false;
|
||||
uint8_t num_sats = 0;
|
||||
|
||||
String dt_string_from_gps();
|
||||
void setGPSInfo();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -8,12 +8,8 @@
|
||||
#define BATTERY_ANALOG_ON 0
|
||||
|
||||
#include "WiFiScan.h"
|
||||
#include "Display.h"
|
||||
#include "BatteryInterface.h"
|
||||
#include "SDInterface.h"
|
||||
//#include "Web.h"
|
||||
//#include "esp_interface.h"
|
||||
//#include "a32u4_interface.h"
|
||||
#include "settings.h"
|
||||
|
||||
#ifdef HAS_BUTTONS
|
||||
@@ -25,13 +21,9 @@
|
||||
extern SwitchLib c_btn;
|
||||
#endif
|
||||
|
||||
extern Display display_obj;
|
||||
extern WiFiScan wifi_scan_obj;
|
||||
//extern Web web_obj;
|
||||
extern SDInterface sd_obj;
|
||||
extern BatteryInterface battery_obj;
|
||||
//extern EspInterface esp_obj;
|
||||
//extern A32u4Interface a32u4_obj;
|
||||
extern Settings settings_obj;
|
||||
|
||||
#define FLASH_BUTTON 0
|
||||
@@ -68,17 +60,15 @@ extern Settings settings_obj;
|
||||
#define STATUS_BAT 22
|
||||
#define STATUS_SD 23
|
||||
#define PWNAGOTCHI 24
|
||||
#define ESPRESSIF 25
|
||||
#define SHUTDOWN 26
|
||||
#define BEACON_LIST 27
|
||||
#define GENERATE 28
|
||||
#define CLEAR_ICO 29
|
||||
#define KEYBOARD_ICO 30
|
||||
#define JOIN_WIFI 31
|
||||
#define ESP_UPDATE_ICO 32
|
||||
#define BAD_USB_ICO 33
|
||||
#define TEST_BAD_USB_ICO 34
|
||||
#define LANGUAGE 35
|
||||
#define SHUTDOWN 25
|
||||
#define BEACON_LIST 26
|
||||
#define GENERATE 27
|
||||
#define CLEAR_ICO 28
|
||||
#define KEYBOARD_ICO 29
|
||||
#define JOIN_WIFI 30
|
||||
#define LANGUAGE 31
|
||||
#define STATUS_GPS 32
|
||||
#define GPS_MENU 33
|
||||
|
||||
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);
|
||||
@@ -87,15 +77,10 @@ PROGMEM static lv_disp_buf_t disp_buf;
|
||||
PROGMEM static lv_color_t buf[LV_HOR_RES_MAX * 10];
|
||||
|
||||
PROGMEM static void ta_event_cb(lv_obj_t * ta, lv_event_t event);
|
||||
PROGMEM static void join_wifi_keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
PROGMEM static void add_ssid_keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
PROGMEM static void write_bad_usb_keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
PROGMEM static void load_btn_cb(lv_obj_t * load_btn, lv_event_t event);
|
||||
PROGMEM static void test_btn_cb(lv_obj_t * load_btn, lv_event_t event);
|
||||
PROGMEM static void ap_list_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void station_list_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void setting_dropdown_cb(lv_obj_t * btn, lv_event_t event);
|
||||
PROGMEM static void save_as_keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
|
||||
|
||||
// lvgl stuff
|
||||
PROGMEM static lv_obj_t *kb;
|
||||
@@ -107,9 +92,9 @@ struct Menu;
|
||||
|
||||
struct MenuNode {
|
||||
String name;
|
||||
String command;
|
||||
bool command;
|
||||
uint16_t color;
|
||||
int icon;
|
||||
uint8_t icon;
|
||||
TFT_eSPI_Button* button;
|
||||
bool selected;
|
||||
std::function<void()> callable;
|
||||
@@ -132,7 +117,6 @@ class MenuFunctions
|
||||
|
||||
uint32_t initTime = 0;
|
||||
|
||||
//Menu* current_menu;
|
||||
|
||||
// Main menu stuff
|
||||
Menu mainMenu;
|
||||
@@ -140,14 +124,12 @@ class MenuFunctions
|
||||
Menu wifiMenu;
|
||||
Menu bluetoothMenu;
|
||||
Menu badusbMenu;
|
||||
Menu generalMenu;
|
||||
Menu deviceMenu;
|
||||
|
||||
// Device menu stuff
|
||||
Menu whichUpdateMenu;
|
||||
Menu failedUpdateMenu;
|
||||
Menu confirmMenu;
|
||||
Menu espUpdateMenu;
|
||||
Menu updateMenu;
|
||||
Menu settingsMenu;
|
||||
Menu specSettingMenu;
|
||||
@@ -162,11 +144,9 @@ class MenuFunctions
|
||||
|
||||
// Bluetooth menu stuff
|
||||
Menu bluetoothSnifferMenu;
|
||||
Menu bluetoothGeneralMenu;
|
||||
Menu bluetoothAttackMenu;
|
||||
|
||||
// Settings things menus
|
||||
Menu shutdownWiFiMenu;
|
||||
Menu shutdownBLEMenu;
|
||||
Menu generateSSIDsMenu;
|
||||
|
||||
static void lv_tick_handler();
|
||||
@@ -174,7 +154,6 @@ class MenuFunctions
|
||||
// Menu icons
|
||||
|
||||
|
||||
//TFT_eSPI_Button key[BUTTON_ARRAY_LEN];
|
||||
|
||||
void addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable, bool selected = false, String command = "");
|
||||
void updateStatusBar();
|
||||
@@ -194,6 +173,11 @@ class MenuFunctions
|
||||
Menu clearSSIDsMenu;
|
||||
Menu clearAPsMenu;
|
||||
|
||||
#ifdef HAS_GPS
|
||||
// GPS Menu
|
||||
Menu gpsInfoMenu;
|
||||
#endif
|
||||
|
||||
Ticker tick;
|
||||
|
||||
uint16_t x = -1, y = -1;
|
||||
@@ -203,13 +187,9 @@ class MenuFunctions
|
||||
|
||||
void initLVGL();
|
||||
void deinitLVGL();
|
||||
void joinWiFiGFX();
|
||||
void addSSIDGFX();
|
||||
void addAPGFX();
|
||||
void addStationGFX();
|
||||
void displaySettingsGFX();
|
||||
void writeBadUSB();
|
||||
|
||||
void buildButtons(Menu* menu, int starting_index = 0);
|
||||
void changeMenu(Menu* menu);
|
||||
void drawStatusBar();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#include "TemperatureInterface.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
uint8_t temprature_sens_read();
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
uint8_t temprature_sens_read();
|
||||
|
||||
TemperatureInterface::TemperatureInterface() {
|
||||
|
||||
}
|
||||
|
||||
void TemperatureInterface::RunSetup() {
|
||||
this->initTime = millis();
|
||||
this->current_temp = this->getCurrentTemp();
|
||||
}
|
||||
|
||||
uint8_t TemperatureInterface::getCurrentTemp() {
|
||||
return ((temprature_sens_read() - 32) / 1.8);
|
||||
}
|
||||
|
||||
void TemperatureInterface::main(uint32_t currentTime) {
|
||||
if (currentTime != 0) {
|
||||
if (currentTime - initTime >= 100) {
|
||||
//Serial.println("Checking Battery Level");
|
||||
this->initTime = millis();
|
||||
this->current_temp = this->getCurrentTemp();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
#ifndef TemperatureInterface_h
|
||||
#define TemperatureInterface_h
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
class TemperatureInterface {
|
||||
|
||||
private:
|
||||
uint32_t initTime = 0;
|
||||
|
||||
public:
|
||||
TemperatureInterface();
|
||||
|
||||
uint8_t current_temp = 0;
|
||||
uint8_t old_temp = 0;
|
||||
|
||||
uint8_t getCurrentTemp();
|
||||
void RunSetup();
|
||||
void main(uint32_t currentTime);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -3,13 +3,8 @@
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
//#include <BLEDevice.h>
|
||||
//#include <BLEUtils.h>
|
||||
//#include <BLEScan.h>
|
||||
//#include <BLEAdvertisedDevice.h>
|
||||
#include <ArduinoJson.h>
|
||||
|
||||
// Testing NimBLE
|
||||
#ifdef HAS_BT
|
||||
#include <NimBLEDevice.h>
|
||||
#endif
|
||||
@@ -32,8 +27,8 @@
|
||||
#ifdef HAS_BATTERY
|
||||
#include "BatteryInterface.h"
|
||||
#endif
|
||||
#ifdef HAS_TEMP_SENSOR
|
||||
#include "TemperatureInterface.h"
|
||||
#ifdef HAS_GPS
|
||||
#include "GpsInterface.h"
|
||||
#endif
|
||||
#include "settings.h"
|
||||
#include "Assets.h"
|
||||
@@ -44,7 +39,6 @@
|
||||
#else
|
||||
#include "LedInterface.h"
|
||||
#endif
|
||||
//#include "MenuFunctions.h"
|
||||
|
||||
#define bad_list_length 3
|
||||
|
||||
@@ -82,6 +76,12 @@
|
||||
#define WIFI_SCAN_ACTIVE_LIST_EAPOL 28
|
||||
#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 GRAPH_REFRESH 100
|
||||
|
||||
@@ -95,13 +95,13 @@ extern EvilPortal evil_portal_obj;
|
||||
#ifdef HAS_SD
|
||||
extern SDInterface sd_obj;
|
||||
#endif
|
||||
#ifdef HAS_GPS
|
||||
extern GpsInterface gps_obj;
|
||||
#endif
|
||||
extern Buffer buffer_obj;
|
||||
#ifdef HAS_BATTERY
|
||||
extern BatteryInterface battery_obj;
|
||||
#endif
|
||||
#ifdef HAS_TEMP_SENSOR
|
||||
extern TemperatureInterface temp_obj;
|
||||
#endif
|
||||
extern Settings settings_obj;
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
extern flipperLED flipper_led;
|
||||
@@ -112,7 +112,6 @@ extern Settings settings_obj;
|
||||
#endif
|
||||
|
||||
esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
|
||||
//int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3);
|
||||
|
||||
/*struct ssid {
|
||||
String essid;
|
||||
@@ -131,6 +130,11 @@ esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, b
|
||||
LinkedList<int>* stations;
|
||||
};*/
|
||||
|
||||
|
||||
struct mac_addr {
|
||||
unsigned char bytes[6];
|
||||
};
|
||||
|
||||
struct Station {
|
||||
uint8_t mac[6];
|
||||
bool selected;
|
||||
@@ -139,8 +143,12 @@ struct Station {
|
||||
class WiFiScan
|
||||
{
|
||||
private:
|
||||
// Wardriver thanks to https://github.com/JosephHewitt
|
||||
struct mac_addr mac_history[mac_history_len];
|
||||
|
||||
// Settings
|
||||
int channel_hop_delay = 1;
|
||||
uint mac_history_cursor = 0;
|
||||
uint8_t channel_hop_delay = 1;
|
||||
bool force_pmkid = false;
|
||||
bool force_probe = false;
|
||||
bool save_pcap = false;
|
||||
@@ -167,7 +175,7 @@ class WiFiScan
|
||||
uint32_t initTime = 0;
|
||||
bool run_setup = true;
|
||||
void initWiFi(uint8_t scan_mode);
|
||||
int bluetoothScanTime = 5;
|
||||
uint8_t bluetoothScanTime = 5;
|
||||
int packets_sent = 0;
|
||||
const wifi_promiscuous_filter_t filt = {.filter_mask=WIFI_PROMIS_FILTER_MASK_MGMT | WIFI_PROMIS_FILTER_MASK_DATA};
|
||||
#ifdef HAS_BT
|
||||
@@ -175,9 +183,9 @@ class WiFiScan
|
||||
#endif
|
||||
|
||||
//String connected_network = "";
|
||||
String alfa = "1234567890qwertyuiopasdfghjkklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM_";
|
||||
const String alfa = "1234567890qwertyuiopasdfghjkklzxcvbnm QWERTYUIOPASDFGHJKLZXCVBNM_";
|
||||
|
||||
char* rick_roll[8] = {
|
||||
const char* rick_roll[8] = {
|
||||
"01 Never gonna give you up",
|
||||
"02 Never gonna let you down",
|
||||
"03 Never gonna run around",
|
||||
@@ -219,32 +227,6 @@ class WiFiScan
|
||||
/*36*/ 0x00
|
||||
};
|
||||
|
||||
/*uint8_t auth_packet[128] = {0xB0, 0x00, 0x3C, 0x00, // Frame Control, Duration
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Dest
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Source
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Dest BSSID
|
||||
0x00, 0x01, // Sequence number
|
||||
0x00, 0x00, // Algo
|
||||
0x01, 0x00, // Auth sequence number
|
||||
0x00, 0x00, // Status Code
|
||||
0x7F, 0x08,
|
||||
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40,
|
||||
0xDD, 0x0B, 0x00, 0x17, 0xF2, 0x0A, 0x00, 0x01, // Say it was Apple
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0xDD, 0x0A, 0x00,
|
||||
0x10, 0x18, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00,
|
||||
0x00
|
||||
};*/
|
||||
uint8_t auth_packet[65] = {0xb0, 0x00, 0x3c, 0x00,
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
|
||||
0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x7f, 0x08, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0xdd, 0x0b, 0x00, 0x17, 0xf2, 0x0a,
|
||||
0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0xdd,
|
||||
0x0a, 0x00, 0x10, 0x18, 0x02, 0x00, 0x00, 0x10,
|
||||
0x00, 0x00, 0x00};
|
||||
|
||||
uint8_t prob_req_packet[128] = {0x40, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // Destination
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, // Source
|
||||
@@ -263,6 +245,14 @@ 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 startWardriverWiFi();
|
||||
|
||||
void startWiFiAttacks(uint8_t scan_mode, uint16_t color, String title_string);
|
||||
|
||||
void packetMonitorMain(uint32_t currentTime);
|
||||
@@ -276,19 +266,14 @@ class WiFiScan
|
||||
void sendProbeAttack(uint32_t currentTime);
|
||||
void sendDeauthAttack(uint32_t currentTime, String dst_mac_str = "ff:ff:ff:ff:ff:ff");
|
||||
void sendDeauthFrame(uint8_t bssid[6], int channel, String dst_mac_str = "ff:ff:ff:ff:ff:ff");
|
||||
void sendDeauthFrame(int bssid[6], int channel, uint8_t mac[6]);
|
||||
void sendDeauthFrame(uint8_t bssid[6], int channel, uint8_t mac[6]);
|
||||
void broadcastRandomSSID(uint32_t currentTime);
|
||||
void broadcastCustomBeacon(uint32_t current_time, ssid custom_ssid);
|
||||
void broadcastCustomBeacon(uint32_t current_time, AccessPoint custom_ssid);
|
||||
void broadcastSetSSID(uint32_t current_time, char* ESSID);
|
||||
void broadcastSetSSID(uint32_t current_time, const char* ESSID);
|
||||
void RunAPScan(uint8_t scan_mode, uint16_t color);
|
||||
//void RunRickRoll(uint8_t scan_mode, uint16_t color);
|
||||
//void RunBeaconSpam(uint8_t scan_mode, uint16_t color);
|
||||
//void RunProbeFlood(uint8_t scan_mode, uint16_t color);
|
||||
//void RunDeauthFlood(uint8_t scan_mode, uint16_t color);
|
||||
void RunGPSInfo();
|
||||
void RunMimicFlood(uint8_t scan_mode, uint16_t color);
|
||||
//void RunBeaconList(uint8_t scan_mode, uint16_t color);
|
||||
void RunEspressifScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunPwnScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunBeaconScan(uint8_t scan_mode, uint16_t color);
|
||||
void RunRawScan(uint8_t scan_mode, uint16_t color);
|
||||
@@ -298,6 +283,7 @@ 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 RunLvJoinWiFi(uint8_t scan_mode, uint16_t color);
|
||||
void RunEvilPortal(uint8_t scan_mode, uint16_t color);
|
||||
bool checkMem();
|
||||
@@ -305,7 +291,6 @@ class WiFiScan
|
||||
static void scanCompleteCB(BLEScanResults scanResults);
|
||||
#endif
|
||||
|
||||
//int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3);
|
||||
|
||||
public:
|
||||
WiFiScan();
|
||||
@@ -314,9 +299,9 @@ class WiFiScan
|
||||
|
||||
//LinkedList<ssid>* ssids;
|
||||
|
||||
int set_channel = 1;
|
||||
uint8_t set_channel = 1;
|
||||
|
||||
int old_channel = 0;
|
||||
uint8_t old_channel = 0;
|
||||
|
||||
bool orient_display = false;
|
||||
bool wifi_initialized = false;
|
||||
@@ -329,11 +314,11 @@ class WiFiScan
|
||||
String dst_mac = "ff:ff:ff:ff:ff:ff";
|
||||
byte src_mac[6] = {};
|
||||
|
||||
//lv_obj_t * scr = lv_cont_create(NULL, NULL);
|
||||
|
||||
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();
|
||||
@@ -344,15 +329,14 @@ class WiFiScan
|
||||
bool shutdownWiFi();
|
||||
bool shutdownBLE();
|
||||
bool scanning();
|
||||
void joinWiFi(String ssid, String password);
|
||||
//void joinWiFi(String ssid, String password);
|
||||
String getStaMAC();
|
||||
String getApMAC();
|
||||
String freeRAM();
|
||||
void changeChannel();
|
||||
void changeChannel(int chan);
|
||||
void RunInfo();
|
||||
void RunShutdownWiFi();
|
||||
void RunShutdownBLE();
|
||||
//void RunShutdownBLE();
|
||||
void RunGenerateSSIDs(int count = 20);
|
||||
void RunClearSSIDs();
|
||||
void RunClearAPs();
|
||||
@@ -365,7 +349,6 @@ class WiFiScan
|
||||
//void addLog(String log, int len);
|
||||
|
||||
static void getMAC(char *addr, uint8_t* data, uint16_t offset);
|
||||
static void espressifSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void pwnSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
static void rawSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
#include "a32u4_interface.h"
|
||||
|
||||
HardwareSerial MySerial_two(2);
|
||||
|
||||
void A32u4Interface::begin() {
|
||||
MySerial_two.begin(BAUD32U4, SERIAL_8N1, 25, 4);
|
||||
|
||||
delay(2000);
|
||||
|
||||
Serial.println("Setup A32U4 Serial Interface");
|
||||
|
||||
MySerial_two.println("DELAY 1");
|
||||
|
||||
delay(1000);
|
||||
|
||||
uint8_t a32u4_rep = 0;
|
||||
|
||||
if (MySerial_two.available()) {
|
||||
a32u4_rep = (uint8_t)MySerial_two.read();
|
||||
}
|
||||
|
||||
//display_string.trim();
|
||||
|
||||
//Serial.println("\nDisplay string: " + (String)display_string);
|
||||
|
||||
if (a32u4_rep != 0) {
|
||||
this->supported = true;
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
|
||||
display_obj.tft.println("ATmega32U4 Found!");
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED, TFT_BLACK);
|
||||
display_obj.tft.println("ATmega32U4 Not Found");
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
Serial.print("A32U4 Said: ");
|
||||
Serial.println(a32u4_rep);
|
||||
}
|
||||
|
||||
this->initTime = millis();
|
||||
}
|
||||
|
||||
void A32u4Interface::runScript(String script) {
|
||||
MySerial_two.println(script);
|
||||
}
|
||||
|
||||
void A32u4Interface::test() {
|
||||
MySerial_two.println("STRING Hello, World!");
|
||||
}
|
||||
|
||||
void A32u4Interface::main(uint32_t current_time) {
|
||||
|
||||
if (current_time - this->initTime >= 1000) {
|
||||
this->initTime = millis();
|
||||
//MySerial_two.write("PING");
|
||||
|
||||
//delay(1);
|
||||
|
||||
if (MySerial_two.available()) {
|
||||
Serial.println("Got A32U4 Serial data");
|
||||
Serial.println(MySerial_two.read());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
#ifndef a32u4_interface_h
|
||||
#define a32u4_interface_h
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
#include "Display.h"
|
||||
#endif
|
||||
#include <HardwareSerial.h>
|
||||
|
||||
#define BAUD32U4 115200
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
extern Display display_obj;
|
||||
#endif
|
||||
|
||||
class A32u4Interface {
|
||||
public:
|
||||
bool supported = false;
|
||||
|
||||
uint32_t initTime;
|
||||
|
||||
void begin();
|
||||
|
||||
void main(uint32_t current_time);
|
||||
void test();
|
||||
void runScript(String script);
|
||||
};
|
||||
|
||||
#endif
|
||||
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin
Normal file
BIN
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.elf
Normal file
161848
esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.map
Normal file
@@ -13,6 +13,7 @@
|
||||
//#define MARAUDER_MINI
|
||||
//#define MARAUDER_V4
|
||||
//#define MARAUDER_V6
|
||||
//#define MARAUDER_V6_1
|
||||
//#define MARAUDER_KIT
|
||||
//#define GENERIC_ESP32
|
||||
#define MARAUDER_FLIPPER
|
||||
@@ -21,7 +22,7 @@
|
||||
//#define XIAO_ESP32_S3
|
||||
//// END BOARD TARGETS
|
||||
|
||||
#define MARAUDER_VERSION "v0.11.0-RC1"
|
||||
#define MARAUDER_VERSION "v0.13.0"
|
||||
|
||||
//// BOARD FEATURES
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
@@ -34,6 +35,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MINI
|
||||
@@ -47,6 +49,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V4
|
||||
@@ -60,9 +63,10 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#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
|
||||
@@ -73,6 +77,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
@@ -86,6 +91,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef GENERIC_ESP32
|
||||
@@ -98,6 +104,7 @@
|
||||
//#define HAS_SCREEN
|
||||
//#define HAS_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
@@ -108,6 +115,7 @@
|
||||
//#define HAS_NEOPIXEL_LED
|
||||
//#define HAS_PWR_MGMT
|
||||
//#define HAS_SCREEN
|
||||
#define HAS_GPS
|
||||
#ifndef WRITE_PACKETS_SERIAL
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
@@ -126,6 +134,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_DEV_BOARD_PRO
|
||||
@@ -139,6 +148,7 @@
|
||||
#define HAS_SD
|
||||
#define USE_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
#define HAS_GPS
|
||||
#endif
|
||||
|
||||
#ifdef XIAO_ESP32_S3
|
||||
@@ -151,6 +161,7 @@
|
||||
//#define HAS_SCREEN
|
||||
//#define HAS_SD
|
||||
//#define HAS_TEMP_SENSOR
|
||||
//#define HAS_GPS
|
||||
#endif
|
||||
//// END BOARD FEATURES
|
||||
|
||||
@@ -202,6 +213,7 @@
|
||||
#ifdef HAS_SCREEN
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
//#define TFT_MISO 19
|
||||
#define TFT_MOSI 15
|
||||
#define TFT_SCLK 13
|
||||
@@ -242,7 +254,7 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH (TFT_HEIGHT/16)
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -268,6 +280,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V4
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
#define HAS_ILI9341
|
||||
#define BANNER_TEXT_SIZE 2
|
||||
|
||||
@@ -296,7 +309,7 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -322,7 +335,8 @@
|
||||
#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
|
||||
|
||||
#define BANNER_TEXT_SIZE 2
|
||||
@@ -352,7 +366,7 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -379,6 +393,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
#define HAS_ILI9341
|
||||
|
||||
#define BANNER_TEXT_SIZE 2
|
||||
@@ -409,7 +424,7 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH 16
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -436,6 +451,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_MINI
|
||||
#define SCREEN_CHAR_WIDTH 40
|
||||
#define TFT_MISO 19
|
||||
#define TFT_MOSI 23
|
||||
#define TFT_SCLK 18
|
||||
@@ -476,7 +492,7 @@
|
||||
//#define MENU_FONT &FreeMonoBold9pt7b
|
||||
//#define MENU_FONT &FreeSans9pt7b
|
||||
//#define MENU_FONT &FreeSansBold9pt7b
|
||||
#define BUTTON_ARRAY_LEN 11
|
||||
#define BUTTON_ARRAY_LEN 12
|
||||
#define STATUS_BAR_WIDTH (TFT_HEIGHT/16)
|
||||
#define LVGL_TICK_PERIOD 6
|
||||
|
||||
@@ -523,7 +539,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 "!"
|
||||
@@ -615,6 +631,10 @@
|
||||
#define SD_CS 12
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_V6_1
|
||||
#define SD_CS 14
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_KIT
|
||||
#define SD_CS 12
|
||||
#endif
|
||||
@@ -624,7 +644,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_M5STICKC
|
||||
#define SD_CS 10
|
||||
#define SD_CS -1
|
||||
#endif
|
||||
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
@@ -680,7 +700,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
|
||||
@@ -727,7 +747,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
|
||||
@@ -746,4 +766,56 @@
|
||||
#endif
|
||||
//// END EVIL PORTAL STUFF
|
||||
|
||||
#endif
|
||||
//// GPS STUFF
|
||||
#ifdef HAS_GPS
|
||||
#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
|
||||
#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) || defined(MARAUDER_V6_1)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_KIT)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#elif defined(MARAUDER_MINI)
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#else
|
||||
#define MARAUDER_TITLE_BYTES 13578
|
||||
#endif
|
||||
//// END MARAUDER TITLE STUFF
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,6 +24,10 @@ https://www.online-utility.org/image/convert/to/XBM
|
||||
#include "esp_system.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
#ifdef HAS_GPS
|
||||
#include "GpsInterface.h"
|
||||
#endif
|
||||
|
||||
#include "Assets.h"
|
||||
#include "WiFiScan.h"
|
||||
#ifdef HAS_SD
|
||||
@@ -48,9 +52,9 @@ https://www.online-utility.org/image/convert/to/XBM
|
||||
#include "BatteryInterface.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAS_TEMP_SENSOR
|
||||
#include "TemperatureInterface.h"
|
||||
#endif
|
||||
//#ifdef HAS_TEMP_SENSOR
|
||||
// #include "TemperatureInterface.h"
|
||||
//#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
#include "Display.h"
|
||||
@@ -87,13 +91,17 @@ Buffer buffer_obj;
|
||||
Settings settings_obj;
|
||||
CommandLine cli_obj;
|
||||
|
||||
#ifdef HAS_GPS
|
||||
GpsInterface gps_obj;
|
||||
#endif
|
||||
|
||||
#ifdef HAS_BATTERY
|
||||
BatteryInterface battery_obj;
|
||||
#endif
|
||||
|
||||
#ifdef HAS_TEMP_SENSOR
|
||||
TemperatureInterface temp_obj;
|
||||
#endif
|
||||
//#ifdef HAS_TEMP_SENSOR
|
||||
// TemperatureInterface temp_obj;
|
||||
//#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
Display display_obj;
|
||||
@@ -216,7 +224,11 @@ void setup()
|
||||
|
||||
// Draw the title screen
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.drawJpeg("/marauder3L.jpg", 0 , 0); // 240 x 320 image
|
||||
#ifndef MARAUDER_MINI
|
||||
display_obj.drawJpeg("/marauder3L.jpg", 0 , 0); // 240 x 320 image
|
||||
#else
|
||||
display_obj.drawJpeg("/marauder3L.jpg", 0, 0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
@@ -295,9 +307,9 @@ void setup()
|
||||
#endif
|
||||
|
||||
// Temperature stuff
|
||||
#ifdef HAS_TEMP_SENSOR
|
||||
temp_obj.RunSetup();
|
||||
#endif
|
||||
//#ifdef HAS_TEMP_SENSOR
|
||||
// temp_obj.RunSetup();
|
||||
//#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table0[6]));
|
||||
@@ -328,6 +340,16 @@ void setup()
|
||||
delay(500);
|
||||
#endif
|
||||
|
||||
#ifdef HAS_GPS
|
||||
gps_obj.begin();
|
||||
#ifdef HAS_SCREEN
|
||||
if (gps_obj.getGpsModuleStatus())
|
||||
display_obj.tft.println("GPS Module connected");
|
||||
else
|
||||
display_obj.tft.println("GPS Module NOT connected");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println(F(text_table0[8]));
|
||||
|
||||
@@ -361,65 +383,62 @@ void loop()
|
||||
#endif
|
||||
|
||||
// Update all of our objects
|
||||
#ifdef HAS_SCREEN
|
||||
/*#ifdef HAS_SCREEN
|
||||
bool do_draw = display_obj.draw_tft;
|
||||
#else
|
||||
bool do_draw = false;
|
||||
#endif*/
|
||||
|
||||
//if ((!do_draw) && (wifi_scan_obj.currentScanMode != ESP_UPDATE))
|
||||
//{
|
||||
cli_obj.main(currentTime);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.main(wifi_scan_obj.currentScanMode);
|
||||
#endif
|
||||
wifi_scan_obj.main(currentTime);
|
||||
//evil_portal_obj.main(wifi_scan_obj.currentScanMode);
|
||||
|
||||
#ifdef HAS_GPS
|
||||
gps_obj.main();
|
||||
#endif
|
||||
|
||||
if ((!do_draw) && (wifi_scan_obj.currentScanMode != ESP_UPDATE))
|
||||
{
|
||||
cli_obj.main(currentTime);
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.main(wifi_scan_obj.currentScanMode);
|
||||
#endif
|
||||
wifi_scan_obj.main(currentTime);
|
||||
//evil_portal_obj.main(wifi_scan_obj.currentScanMode);
|
||||
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
buffer_obj.forceSaveSerial();
|
||||
#elif defined(HAS_SD)
|
||||
sd_obj.main();
|
||||
#else
|
||||
return;
|
||||
#endif
|
||||
|
||||
#ifdef HAS_BATTERY
|
||||
battery_obj.main(currentTime);
|
||||
temp_obj.main(currentTime);
|
||||
#endif
|
||||
settings_obj.main(currentTime);
|
||||
if (((wifi_scan_obj.currentScanMode != WIFI_PACKET_MONITOR) && (wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL)) ||
|
||||
(mini)) {
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.main(currentTime);
|
||||
#endif
|
||||
//cli_obj.main(currentTime);
|
||||
}
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
flipper_led.main();
|
||||
#elif defined(XIAO_ESP32_S3)
|
||||
xiao_led.main();
|
||||
#else
|
||||
led_obj.main(currentTime);
|
||||
#endif
|
||||
|
||||
//if (wifi_scan_obj.currentScanMode == OTA_UPDATE)
|
||||
// web_obj.main();
|
||||
#ifdef HAS_SCREEN
|
||||
delay(1);
|
||||
#else
|
||||
delay(50);
|
||||
#endif
|
||||
}
|
||||
#ifdef HAS_SCREEN
|
||||
else if ((display_obj.draw_tft) &&
|
||||
(wifi_scan_obj.currentScanMode != OTA_UPDATE))
|
||||
{
|
||||
display_obj.drawStylus();
|
||||
}
|
||||
#ifdef WRITE_PACKETS_SERIAL
|
||||
buffer_obj.forceSaveSerial();
|
||||
#elif defined(HAS_SD)
|
||||
sd_obj.main();
|
||||
#else
|
||||
return;
|
||||
#endif
|
||||
else if (wifi_scan_obj.currentScanMode == ESP_UPDATE) {
|
||||
|
||||
#ifdef HAS_BATTERY
|
||||
battery_obj.main(currentTime);
|
||||
//temp_obj.main(currentTime);
|
||||
#endif
|
||||
settings_obj.main(currentTime);
|
||||
if (((wifi_scan_obj.currentScanMode != WIFI_PACKET_MONITOR) && (wifi_scan_obj.currentScanMode != WIFI_SCAN_EAPOL)) ||
|
||||
(mini)) {
|
||||
#ifdef HAS_SCREEN
|
||||
menu_function_obj.main(currentTime);
|
||||
#endif
|
||||
//cli_obj.main(currentTime);
|
||||
}
|
||||
#ifdef MARAUDER_FLIPPER
|
||||
flipper_led.main();
|
||||
#elif defined(XIAO_ESP32_S3)
|
||||
xiao_led.main();
|
||||
#else
|
||||
led_obj.main(currentTime);
|
||||
#endif
|
||||
|
||||
//if (wifi_scan_obj.currentScanMode == OTA_UPDATE)
|
||||
// web_obj.main();
|
||||
#ifdef HAS_SCREEN
|
||||
delay(1);
|
||||
#else
|
||||
delay(50);
|
||||
#endif
|
||||
//}
|
||||
/*else if (wifi_scan_obj.currentScanMode == ESP_UPDATE) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.main(wifi_scan_obj.currentScanMode);
|
||||
menu_function_obj.main(currentTime);
|
||||
@@ -435,5 +454,5 @@ void loop()
|
||||
|
||||
//cli_obj.main(currentTime);
|
||||
delay(1);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
#include "esp_interface.h"
|
||||
|
||||
HardwareSerial MySerial(1);
|
||||
|
||||
void EspInterface::begin() {
|
||||
pinMode(ESP_RST, OUTPUT);
|
||||
pinMode(ESP_ZERO, OUTPUT);
|
||||
|
||||
delay(100);
|
||||
|
||||
digitalWrite(ESP_ZERO, HIGH);
|
||||
|
||||
Serial.println("Checking for ESP8266...");
|
||||
|
||||
MySerial.begin(BAUD, SERIAL_8N1, 27, 26);
|
||||
|
||||
delay(100);
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.println("Checking for ESP8266...");
|
||||
#endif
|
||||
|
||||
this->bootRunMode();
|
||||
|
||||
delay(500);
|
||||
|
||||
while (MySerial.available())
|
||||
MySerial.read();
|
||||
|
||||
MySerial.write("PING");
|
||||
|
||||
delay(2000);
|
||||
|
||||
String display_string = "";
|
||||
|
||||
while (MySerial.available()) {
|
||||
display_string.concat((char)MySerial.read());
|
||||
}
|
||||
|
||||
display_string.trim();
|
||||
|
||||
Serial.println("\nDisplay string: " + (String)display_string);
|
||||
|
||||
if (display_string == "ESP8266 Pong") {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
|
||||
display_obj.tft.println("ESP8266 Found!");
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
Serial.println("ESP8266 Found!");
|
||||
this->supported = true;
|
||||
}
|
||||
else {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextColor(TFT_RED, TFT_BLACK);
|
||||
display_obj.tft.println("ESP8266 Not Found");
|
||||
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
|
||||
#endif
|
||||
}
|
||||
|
||||
this->initTime = millis();
|
||||
}
|
||||
|
||||
void EspInterface::RunUpdate() {
|
||||
this->bootProgramMode();
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.setTextWrap(true);
|
||||
display_obj.tft.setFreeFont(NULL);
|
||||
display_obj.tft.setCursor(0, 100);
|
||||
display_obj.tft.setTextSize(1);
|
||||
display_obj.tft.setTextColor(TFT_GREEN);
|
||||
|
||||
display_obj.tft.println("Waiting for serial data...");
|
||||
|
||||
display_obj.tft.setTextColor(TFT_WHITE);
|
||||
#endif
|
||||
}
|
||||
|
||||
void EspInterface::bootProgramMode() {
|
||||
Serial.println("[!] Setting ESP12 in program mode...");
|
||||
digitalWrite(ESP_ZERO, LOW);
|
||||
delay(100);
|
||||
digitalWrite(ESP_RST, LOW);
|
||||
delay(100);
|
||||
digitalWrite(ESP_RST, HIGH);
|
||||
delay(100);
|
||||
digitalWrite(ESP_ZERO, HIGH);
|
||||
Serial.println("[!] Complete");
|
||||
Serial.end();
|
||||
Serial.begin(57600);
|
||||
}
|
||||
|
||||
void EspInterface::bootRunMode() {
|
||||
Serial.end();
|
||||
Serial.begin(115200);
|
||||
Serial.println("[!] Setting ESP12 in run mode...");
|
||||
digitalWrite(ESP_ZERO, HIGH);
|
||||
delay(100);
|
||||
digitalWrite(ESP_RST, LOW);
|
||||
delay(100);
|
||||
digitalWrite(ESP_RST, HIGH);
|
||||
delay(100);
|
||||
digitalWrite(ESP_ZERO, HIGH);
|
||||
Serial.println("[!] Complete");
|
||||
}
|
||||
|
||||
void EspInterface::program() {
|
||||
if (MySerial.available()) {
|
||||
Serial.write((uint8_t)MySerial.read());
|
||||
}
|
||||
|
||||
if (Serial.available()) {
|
||||
#ifdef HAS_SCREEN
|
||||
display_obj.tft.print(".");
|
||||
#endif
|
||||
while (Serial.available()) {
|
||||
MySerial.write((uint8_t)Serial.read());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EspInterface::main(uint32_t current_time) {
|
||||
if (current_time - this->initTime >= 1000) {
|
||||
this->initTime = millis();
|
||||
//MySerial.write("PING");
|
||||
}
|
||||
|
||||
while (MySerial.available()) {
|
||||
Serial.print((char)MySerial.read());
|
||||
}
|
||||
|
||||
if (Serial.available()) {
|
||||
MySerial.write((uint8_t)Serial.read());
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef esp_interface_h
|
||||
#define esp_interface_h
|
||||
|
||||
#include "configs.h"
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
#include "Display.h"
|
||||
#endif
|
||||
|
||||
#include <HardwareSerial.h>
|
||||
|
||||
#define ESP_RST 14
|
||||
#define ESP_ZERO 13
|
||||
#define BAUD 115200
|
||||
|
||||
#ifdef HAS_SCREEN
|
||||
extern Display display_obj;
|
||||
#endif
|
||||
|
||||
class EspInterface {
|
||||
public:
|
||||
bool supported = false;
|
||||
|
||||
uint32_t initTime;
|
||||
|
||||
void RunUpdate();
|
||||
void bootProgramMode();
|
||||
void bootRunMode();
|
||||
void begin();
|
||||
|
||||
void program();
|
||||
void main(uint32_t current_time);
|
||||
};
|
||||
|
||||
#endif
|
||||
BIN
mechanical/.DS_Store
vendored
Normal file
30655
mechanical/V6/M6_GPS_BOTTOM_CERAMIC.step
Normal file
30655
mechanical/V6/M6_GPS_BOTTOM_CERAMIC_BRASS.step
Normal file
31502
mechanical/V6/M6_GPS_BOTTOM_SMA.step
Normal file
34172
mechanical/V6/M6_GPS_BOTTOM_SMA_BRASS.step
Normal file
BIN
mechanical/V6/MARAUDER_V6_BLANK.stl
Normal file
BIN
mechanical/V6/MARAUDER_V6_BOTTOM.stl
Normal file
BIN
mechanical/V6/MARAUDER_V6_LOGOS.stl
Normal file
BIN
mechanical/V6/MARAUDER_V6_TOP_BLANK.stl
Normal file
BIN
mechanical/V6/MARAUDER_V6_TOP_LOGO.stl
Normal file
BIN
pictures/IMG_7745 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
pictures/IMG_7746 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
pictures/IMG_7748 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
pictures/IMG_7749 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
pictures/IMG_7750 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
pictures/IMG_7751 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
pictures/IMG_7752 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 613 KiB |
BIN
pictures/IMG_7753 - Copy.jpg
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
pictures/icons/gps_16.bmp
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
pictures/icons/gps_22.bmp
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
pictures/jcmk_icon_white.bmp
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
pictures/jcmk_icon_white.jpg
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
6
pictures/xbm/gps_16.xbm
Normal file
@@ -0,0 +1,6 @@
|
||||
#define f5dc88022d18492ea6769b98921e0a5aUvT7HPFFeGcrDDT7_width 16
|
||||
#define f5dc88022d18492ea6769b98921e0a5aUvT7HPFFeGcrDDT7_height 16
|
||||
static char f5dc88022d18492ea6769b98921e0a5aUvT7HPFFeGcrDDT7_bits[] = {
|
||||
0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF5, 0xEF, 0xEE, 0x57, 0xF7, 0x2F, 0xFA,
|
||||
0x1F, 0xFC, 0x0F, 0xDE, 0x17, 0xD5, 0xBB, 0xD6, 0xDD, 0xDB, 0xEB, 0xEC,
|
||||
0xF7, 0xF7, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, };
|
||||
9
pictures/xbm/gps_22.xbm
Normal file
@@ -0,0 +1,9 @@
|
||||
#define 824c3668a0844210c964e12f83c144e4dy8xmxKsVnnbTEOb_width 22
|
||||
#define 824c3668a0844210c964e12f83c144e4dy8xmxKsVnnbTEOb_height 22
|
||||
static char 824c3668a0844210c964e12f83c144e4dy8xmxKsVnnbTEOb_bits[] = {
|
||||
0xFF, 0xFF, 0x3F, 0xFF, 0xBF, 0x3F, 0xFF, 0x5F, 0x3F, 0xFF, 0xEF, 0x3E,
|
||||
0xFF, 0xF7, 0x3D, 0xBF, 0xFA, 0x3E, 0x5F, 0x7C, 0x3F, 0x3F, 0xB8, 0x3F,
|
||||
0x1F, 0xD0, 0x3F, 0x3F, 0xE0, 0x3F, 0x5F, 0xF0, 0x3F, 0xEF, 0xE8, 0x3F,
|
||||
0xF7, 0xE5, 0x3B, 0xFB, 0xDE, 0x3A, 0x7D, 0xFF, 0x3A, 0xBB, 0x7F, 0x3B,
|
||||
0xD7, 0x9F, 0x3D, 0xEF, 0xFF, 0x3E, 0xFF, 0x0F, 0x3F, 0xFF, 0xFF, 0x3F,
|
||||
0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, };
|
||||