Просмотр исходного кода

Merge branch 'master' of https://github.com/justcallmekoko/ESP32Marauder

Just Call Me Koko 6 лет назад
Родитель
Сommit
48e0d08477
3 измененных файлов с 126 добавлено и 14 удалено
  1. 91 0
      .travis.yml
  2. 34 14
      README.md
  3. 1 0
      esp32_marauder/MenuFunctions.cpp

+ 91 - 0
.travis.yml

@@ -0,0 +1,91 @@
+sudo: required
+
+language: python
+python: 3.6
+
+env:
+  global:
+    # The Arduino IDE will be installed at APPLICATION_FOLDER/arduino
+    - APPLICATION_FOLDER="${HOME}/arduino-ide"
+    - SKETCHBOOK_FOLDER="${HOME}/arduino-sketchbook"
+
+before_install:
+
+  # TODO: undo
+  # remove submodules, we don't want those to be actually tested for compliance
+  - git submodule status | rm -Rf `cut -d ' ' -f 3`
+
+  # Formatting checks:
+  # Check for files starting with a blank line
+  - find . -path './.git' -prune -or -type f -print0 | xargs -0 -L1 bash -c 'head -1 "$0" | grep --binary-files=without-match --regexp="^$"; if [[ "$?" == "0" ]]; then echo "Blank line found at start of $0."; false; fi'
+  # Check for tabs
+  - find . -path './.git' -prune -or -type f \( ! -iname ".gitmodules" \) -exec grep --with-filename --line-number --binary-files=without-match --regexp=$'\t' '{}' \; -exec echo 'Tab found.' \; -exec false '{}' +
+  # Check for trailing whitespace
+  - find . -path './.git' -prune -or -type f -exec grep --with-filename --line-number --binary-files=without-match --regexp='[[:blank:]]$' '{}' \; -exec echo 'Trailing whitespace found.' \; -exec false '{}' +
+  # Check for non-Unix line endings
+  - find . -path './.git' -prune -or -type f -exec grep --files-with-matches --binary-files=without-match --regexp=$'\r$' '{}' \; -exec echo 'Non-Unix EOL detected.' \; -exec false '{}' +
+  # Check for blank lines at end of files
+  - find . -path './.git' -prune -or -type f -print0 | xargs -0 -L1 bash -c 'tail -1 "$0" | grep --binary-files=without-match --regexp="^$"; if [[ "$?" == "0" ]]; then echo "Blank line found at end of $0."; false; fi'
+  # Check for files that don't end in a newline (https://stackoverflow.com/a/25686825)
+  - find . -path './.git' -prune -or -type f -print0 | xargs -0 -L1 bash -c 'if test "$(grep --files-with-matches --binary-files=without-match --max-count=1 --regexp='.*' "$0")" && test "$(tail --bytes=1 "$0")"; then echo "No new line at end of $0."; false; fi'
+
+  - git clone https://github.com/per1234/arduino-ci-script.git "${HOME}/scripts/arduino-ci-script"
+  - cd "${HOME}/scripts/arduino-ci-script"
+  # Get new tags from the remote
+  - git fetch --tags
+  # Checkout the latest tag
+  - git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
+  - source "${HOME}/scripts/arduino-ci-script/arduino-ci-script.sh"
+
+  #- set_script_verbosity 1
+  #- set_verbose_output_during_compilation "true"
+
+  # Check for library issues that don't affect compilation
+  - set_library_testing "true"
+
+  - set_application_folder "$APPLICATION_FOLDER"
+  - set_sketchbook_folder "$SKETCHBOOK_FOLDER"
+
+  - install_ide '("1.8.0" "1.8.9" "newest")'
+
+  # Install the library from the repository
+  - install_library
+  - install_library "M5Stack"
+  - install_library 'https://github.com/bblanchon/ArduinoJson.git' # "ArduinoJSON"
+
+  - ls ${TRAVIS_BUILD_DIR} -la
+  - ls ${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/ -la
+  - ls $SKETCHBOOK_FOLDER -la
+  - ls $SKETCHBOOK_FOLDER/libraries -la
+  - pwd
+  # what the fsck is wrong install_package() ??
+  - install_package "esp32:esp32" "https://dl.espressif.com/dl/package_esp32_index.json" #  # esp32:esp32:m5stack-core-esp32
+  #- /home/travis/arduino-ide/arduino-1.8.10/arduino --pref "compiler.warning_level=none" --save-prefs   &>/dev/null
+  #- /home/travis/arduino-ide/arduino-1.8.10/arduino --pref "build.warn_data_percentage=75" --save-prefs   &>/dev/null
+  #- /home/travis/arduino-ide/arduino-1.8.10/arduino --pref "boardsmanager.additional.urls=https://dl.espressif.com/dl/package_esp32_index.json" --save-prefs   &>/dev/null
+  #- /home/travis/arduino-ide/arduino-1.8.10/arduino --install-boards esp32:esp32 &>/dev/null
+  - pip install pyserial
+
+script:
+  # Compile all example sketches included with the library
+  # build_sketch arguments: sketch name, fqbn, allow failure, IDE version/list/range
+  - check_library_manager_compliance "$TRAVIS_BUILD_DIR"
+  - build_sketch "${TRAVIS_BUILD_DIR}/examples/M5Stack-SD-Menu/M5Stack-SD-Menu.ino" "esp32:esp32:m5stack-core-esp32:FlashFreq=80,UploadSpeed=921600" "false" "newest"
+
+after_script:
+  # Commit a report of the job results to the CI-reports repository
+  - USER_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 1)"
+  - REPOSITORY_NAME="$(echo "$TRAVIS_REPO_SLUG" | cut -d'/' -f 2)"
+  - publish_report_to_repository "$REPORT_GITHUB_TOKEN" "https://github.com/${USER_NAME}/CI-reports.git" "$REPOSITORY_NAME" "build_$(printf "%05d\n" "${TRAVIS_BUILD_NUMBER}")" "false"
+  # Print a tab separated report of all sketch verification results to the log
+  - display_report
+
+notifications:
+  email:
+    on_success: always
+    on_failure: always
+  webhooks:
+    urls:
+      - https://www.travisbuddy.com/
+    on_success: never
+    on_failure: always

+ 34 - 14
README.md

@@ -1,8 +1,12 @@
-# ESP32 Marauder v0.3.2
+[![License: MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/justcallmekoko/ESP32Marauder/blob/master/LICENSE)
+<!---[![Build Status](https://travis-ci.com/justcallmekoko/ESP32Marauder.svg?branch=master)](https://travis-ci.com/justcallmekoko/ESP32Marauder)--->
+
+# ESP32 Marauder v0.4.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"><img alt="Marauder logo" src="https://github.com/justcallmekoko/ESP32Marauder/blob/master/pictures/marauder3L.jpg?raw=true" width="300"></p>
 <p align="center">
 <p align="center">
   <b>A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32</b>
   <b>A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32</b>
-  <br>
+  <br><br>
+  <a href="https://www.tindie.com/products/justcallmekoko/esp32-marauder/"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-larges.png" alt="I sell on Tindie" width="200" height="104"></a>
 </p>
 </p>
 
 
 # Table Of Condensation
 # Table Of Condensation
@@ -15,9 +19,10 @@
     - [Connections](#connections)
     - [Connections](#connections)
   - [Flashing Firmware](#flashing-firmware)
   - [Flashing Firmware](#flashing-firmware)
     - [Using Arduino IDE](#setting-up-arduino-ide)
     - [Using Arduino IDE](#setting-up-arduino-ide)
+  - [Updating Firmware](#updating-firmware)
 - [Under Development](#under-development)
 - [Under Development](#under-development)
 - [Special Thanks](#special-thanks)
 - [Special Thanks](#special-thanks)
-- [For Sale Soon](#for-sale-soon)
+- [For Sale Now](#for-sale-now)
 
 
 # About
 # About
 Sometimes you just gotta do what you gotta do. Am I right, ladies?
 Sometimes you just gotta do what you gotta do. Am I right, ladies?
@@ -39,12 +44,12 @@ You can check out the marauder article written [here](https://www.hackster.io/ne
 - Bluetooth Sniffer: Sniff bluetooth devices within range
 - Bluetooth Sniffer: Sniff bluetooth devices within range
 - Detect Card Skimmers: Detect bluetooth enabled credit card skimmers
 - Detect Card Skimmers: Detect bluetooth enabled credit card skimmers
 - Packet Monitor: Show WiFi packet density on a given channel using a time bar graph
 - Packet Monitor: Show WiFi packet density on a given channel using a time bar graph
-- Deauthentication Packet Sniffer: Detect deauthentication packets sent on all channels
+- Deauth Sniff: Detect deauthentication packets sent on all channels
 - Draw: Just doodle on the screen or whatever
 - Draw: Just doodle on the screen or whatever
+- Update Firmware: Update Marauder firmware over the air via web interface
 
 
 ### Developing
 ### Developing
 - Emulate Bluetooth: Emulate a bluetooth device with a specific name
 - Emulate Bluetooth: Emulate a bluetooth device with a specific name
-- OTA Firmware Update: Update Marauder firmware over the air with .bin file
 
 
 # Do It Yourself
 # Do It Yourself
 
 
@@ -82,21 +87,38 @@ Make the following connections between your 2.8" TFT Screen and your ESP32 board
 3. Add the following URL to `Additional Boards Manager URLs:`
 3. Add the following URL to `Additional Boards Manager URLs:`
     - https://dl.espressif.com/dl/package_esp32_index.json
     - https://dl.espressif.com/dl/package_esp32_index.json
 4. Go to `Tools`>`Board`>`Boards Manager`, search for `esp32` and install `esp32 by Espressif Systems`
 4. Go to `Tools`>`Board`>`Boards Manager`, search for `esp32` and install `esp32 by Espressif Systems`
-6. Install Spacehuhn's [SimpleList](https://github.com/spacehuhn/SimpleList) library in your Arduino IDE
+5. Install Spacehuhn's [SimpleList](https://github.com/spacehuhn/SimpleList) library in your Arduino IDE
     - Download the SimpleList repo
     - Download the SimpleList repo
     - In the Arduino IDE, go to `Sketch`>`Include Library`>`Add .ZIP Library...` and add the SimpleList-master.zip you just downloaded
     - In the Arduino IDE, go to `Sketch`>`Include Library`>`Add .ZIP Library...` and add the SimpleList-master.zip you just downloaded
-7. Install Bodmer's [TFT_eSPI](https://github.com/Bodmer/TFT_eSPI) library in your Arduino IDE
+<!---6. Install Bodmer's [TFT_eSPI](https://github.com/Bodmer/TFT_eSPI) library in your Arduino IDE--->
+6. Install my fork of Bodmer's [TFT_eSPI](https://github.com/justcallmekoko/TFT_eSPI) library in your Arduino IDE
     - Download the TFT_eSPI repo
     - Download the TFT_eSPI repo
     - In the Arduino IDE, go to `Sketch`>`Include Library`>`Add .ZIP Library...` and add the TFT-eSPI-master.zip you just downloaded
     - In the Arduino IDE, go to `Sketch`>`Include Library`>`Add .ZIP Library...` and add the TFT-eSPI-master.zip you just downloaded
     - Make the following modifications shown in [this issue](https://github.com/justcallmekoko/ESP32Marauder/issues/2#issuecomment-555695918) to the TFT_eSPI library you just installed
     - Make the following modifications shown in [this issue](https://github.com/justcallmekoko/ESP32Marauder/issues/2#issuecomment-555695918) to the TFT_eSPI library you just installed
-8. Follow [these instructions](https://github.com/me-no-dev/arduino-esp32fs-plugin) for installing ESP32 Spiffs Tool
-9. Install the [CH340 Drivers](https://github.com/justcallmekoko/ESP32Marauder/blob/master/Drivers/CH34x_Install_Windows_v3_4.EXE)
-10. Download or clone this repository
-11. Open `esp32_marauder.ino`
-12. Plug your ESP32 into a USB port and select the COM port under `Tools`>`Port`
+7. Follow [these instructions](https://github.com/me-no-dev/arduino-esp32fs-plugin) for installing ESP32 Spiffs Tool
+8. Install the [CH340 Drivers](https://github.com/justcallmekoko/ESP32Marauder/blob/master/Drivers/CH34x_Install_Windows_v3_4.EXE)
+9. Download or clone this repository
+10. Open `esp32_marauder.ino`
+11. Plug your ESP32 into a USB port and select the COM port under `Tools`>`Port`
 12. Select `LOLIN D32` under `Tools`>`Boards`
 12. Select `LOLIN D32` under `Tools`>`Boards`
 13. Click `ESP32 Sketch Data Upload` and wait for the SPIFFS upload to finish
 13. Click `ESP32 Sketch Data Upload` and wait for the SPIFFS upload to finish
 14. Click the upload button
 14. Click the upload button
+
+## Updating Firmware
+There are multiple options available to update the Marauder firmware. If you have already built the project from this repo, you can just pull the latest commit and flash the firmware using the Arduino IDE (see [here](#using-arduino-ide)).  
+If you own an ESP32 Marauder and have not build the project, you can follow these instructions for installing the latest update over the air via Marauder's web interface.  
+
+1. Download the [latest release](https://github.com/justcallmekoko/ESP32Marauder/releases/latest) of the Marauder firmware
+2. With Marauder powered on, select the main menu option `Update Firmware`
+    - Marauder will display details on screen about the status of the update
+3. Connect to the MarauderOTA WiFi network from your computer
+4. On your web browser, navigate to `http://192.168.4.1`
+5. Enter the username and password
+    - Username: admin
+    - Password: admin
+6. Click the `Browse` button and select the .bin file you downloaded from the releases
+7. Click `Update`
+    - Marauder will automatically reboot once the update has been applied
   
   
 # Under Development
 # Under Development
 Currently the ESP32 Marauder has limited firmware capabilities. Most of the work so far has been put into designing the hardware. New firmware features will be added over time and will eventually reach a point where this project will be a fully capable hacking machine.
 Currently the ESP32 Marauder has limited firmware capabilities. Most of the work so far has been put into designing the hardware. New firmware features will be added over time and will eventually reach a point where this project will be a fully capable hacking machine.
@@ -109,5 +131,3 @@ Currently the ESP32 Marauder has limited firmware capabilities. Most of the work
 
 
 # For Sale Now
 # For Sale Now
 You can buy the ESP32 Marauder using [this link](https://www.tindie.com/products/justcallmekoko/esp32-marauder/)
 You can buy the ESP32 Marauder using [this link](https://www.tindie.com/products/justcallmekoko/esp32-marauder/)
-
-<a href="https://www.tindie.com/stores/justcallmekoko/?ref=offsite_badges&utm_source=sellers_justcallmekoko&utm_medium=badges&utm_campaign=badge_large"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-larges.png" alt="I sell on Tindie" width="200" height="104"></a>

+ 1 - 0
esp32_marauder/MenuFunctions.cpp

@@ -216,6 +216,7 @@ void MenuFunctions::main()
   y = -1;
   y = -1;
 }
 }
 
 
+// Return display to normal after having been in landscape
 void MenuFunctions::orientDisplay()
 void MenuFunctions::orientDisplay()
 {
 {
   display_obj.tft.init();
   display_obj.tft.init();