Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“Ÿ ESP32 BLE Payload Executor (SPIFFS Script Engine)

A modular ESP32-based BLE HID payload execution framework with SPIFFS script storage, OLED UI, and a lightweight DuckyScript-like interpreter designed for cybersecurity research and embedded systems labs.

โš ๏ธ Educational / Authorized Lab Use Only

๐Ÿง  System Overview

This project converts an ESP32 into a:

BLE Keyboard Device Script Execution Engine SPIFFS-based Payload Manager OLED-controlled interface system ๐Ÿ—๏ธ Architecture Diagram โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Serial Monitor โ”‚ โ”‚ (Edit / Debug Input) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ SPIFFS Flash โ”‚ โ”‚ /windows.txt payloads โ”‚ โ”‚ /android.txt โ”‚ โ”‚ /custom.txt โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ESP32 Payload Engine โ”‚ โ”‚ (executeLine / parser system) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ BLE HID โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Target Device โ”‚ โ”‚ (Keyboard Input Inject) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Features ๐Ÿ“ก BLE Keyboard emulation (ESP32) ๐Ÿ“ SPIFFS file-based payload storage ๐Ÿงพ DuckyScript-inspired interpreter ๐Ÿ–ฅ๏ธ OLED menu system (128x64 SSD1306) โŒจ๏ธ Serial-based file editor ๐Ÿ” Line-by-line payload execution โšก Lightweight & modular design

๐Ÿ”Œ Hardware Pin Connections (ESP32 Wiring) ๐Ÿ“Ÿ OLED Display (SSD1306 โ€“ I2C) OLED Pin ESP32 Pin VCC 3.3V GND GND SDA GPIO 21 SCL GPIO 22 ๐Ÿ”˜ Push Buttons Button 1 (Menu / Next) Button Pin ESP32 Pin One side GPIO 15 Other side GND Button 2 (Select / Execute) Button Pin ESP32 Pin One side GPIO 5 Other side GND

โš ๏ธ Important Notes Buttons use INPUT_PULLUP mode โ†’ no external resistors required Pressing button connects GPIO โ†’ GND (active LOW) OLED runs on I2C protocol (default ESP32 pins 21/22)

๐Ÿ“Š Wiring Diagram (Simplified) ESP32 Dev Board โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ GPIO 21 โ”€โ”€โ”€โ”€โ”€ SDA โ”‚โ”€โ”€โ”€โ”€ OLED SDA โ”‚ GPIO 22 โ”€โ”€โ”€โ”€โ”€ SCL โ”‚โ”€โ”€โ”€โ”€ OLED SCL โ”‚ 3.3V โ”€โ”€โ”€โ”€โ”€ VCC โ”‚โ”€โ”€โ”€โ”€ OLED VCC โ”‚ GND โ”€โ”€โ”€โ”€โ”€ GND โ”‚โ”€โ”€โ”€โ”€ OLED GND โ”‚ โ”‚ โ”‚ GPIO 15 โ”€โ”€โ”€โ”€โ”€ Buttonโ”‚โ”€โ”€โ”€โ”€ GND โ”‚ GPIO 5 โ”€โ”€โ”€โ”€โ”€ Buttonโ”‚โ”€โ”€โ”€โ”€ GND โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ๐Ÿ”ง Hardware Requirements ESP32 Dev Board (ESP-WROOM-32 recommended) SSD1306 OLED Display (I2C) 2x Push Buttons USB Cable

๐Ÿ’ป Software Requirements Arduino IDE (latest) ESP32 Board Support Package Required Libraries (see below) โš™๏ธ Installation Guide 1๏ธโƒฃ Install Arduino IDE

https://www.arduino.cc/en/software

2๏ธโƒฃ Add ESP32 Board Manager

Go to:

File โ†’ Preferences

Add:

https://espressif.github.io/arduino-esp32/package_esp32_index.json

Then:

Tools โ†’ Board โ†’ Boards Manager Search: ESP32 Install: ESP32 by Espressif Systems 3๏ธโƒฃ Select Board Tools โ†’ Board โ†’ ESP32 Dev Module 4๏ธโƒฃ Install Required Libraries

Install via Library Manager:

Adafruit SSD1306 Adafruit GFX SPIFFS (built-in) Wire (built-in) ESP32 BLE Keyboard https://github.com/T-vK/ESP32-BLE-Keyboard ๐Ÿ“ SPIFFS File System Default Structure /windows.txt /android.txt /iphone.txt /custom.txt

Each file contains script instructions executed line-by-line.

๐Ÿ“ฆ Payload Flow Diagram User Input (Serial / File Edit) โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ SPIFFS Storage โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ executeLine(parser) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ–ผ BLE Keyboard Injection Layer โ–ผ Target Device Input โœ๏ธ Payload Syntax Command Description STRING text Type characters NUMBER 1002 Type digits DELAY 1000 Wait in milliseconds ENTER Press Enter TAB Press Tab ESC Escape key UP/DOWN/LEFT/RIGHT Arrow keys ๐Ÿงช Example Payload STRING Hello World ENTER DELAY 1000 NUMBER 1002 ENTER ๐Ÿงพ File Editing (SPIFFS) ๐Ÿ“Œ Enter Edit Mode EDIT /windows.txt ๐Ÿ“Œ Add Payload Lines STRING Hello DELAY 500 NUMBER 1002 ENTER ๐Ÿ“Œ Finish Editing END ๐Ÿ‘€ File Operations List files LIST Show file content SHOW /windows.txt Delete line DEL /windows.txt 2 Clear file CLEAR /windows.txt ๐ŸŽฎ UI Flow Boot ESP32 โ”‚ โ–ผ OLED Menu โ”‚ โ”œโ”€โ”€ Windows Payload โ”œโ”€โ”€ Android Payload โ”œโ”€โ”€ iPhone Payload โ””โ”€โ”€ Custom Payload โ”‚ โ–ผ BLE Connect โ”‚ โ–ผ Execute Script โš ๏ธ Safety Notice

This project is intended strictly for:

โœ” Cybersecurity research โœ” Embedded systems learning โœ” Authorized penetration testing labs

โŒ Do NOT use on unauthorized systems

๐Ÿ”ง Troubleshooting BLE not connecting Re-pair device: โ€œESP Keyboardโ€ Restart ESP32 SPIFFS errors SPIFFS.begin(true); Upload issues Ensure correct board selected: ESP32 Dev Module ๐Ÿš€ Future Enhancements ๐ŸŒ Web-based payload editor ๐Ÿ“ฑ Mobile control interface ๐Ÿ” Encrypted SPIFFS storage ๐Ÿง  Advanced scripting engine (variables, loops) ๐Ÿ–ฅ๏ธ OLED file manager UI ๐Ÿ‘จโ€๐Ÿ’ป Author

Built for embedded cybersecurity experimentation and research.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages