LCD GUI for P4wnP1 ALOA

Overview

GUI for P4wnP1

  • Colorful UI interface for P4wnP1 ALOA
  • Don't pwn just as a USB client. Use also the USB host capabilities!
  • UPS Lite support
  • Scalability (I tried my best to make it easier to add new menus)

Main menu

I wanted to use also USB host capabilites of the P4wnP1.

So I implemented few scripts like Keystrokes->Duckyscript, Logitech dump with more scripts TODO; to make it more swissarmyknife like.

Device

βœ… Features

  • System info
  • Deploy HID attacks, templates
  • Gamepad
  • Dump logitech dongle (via munifying)
  • Automatically backdoor logitech dongle (if logitacker present)
  • Show images
  • Plug-in rubberducky/keyboard and get duckyscript!
  • Change UI colors

Typing speed Gamepad

βš™ Setup

Hardware

Layout

πŸ“ Requirements:

πŸ—‘ For logitech attacks

πŸ”¨ Hardware tips

If you are planning to use the USB adapter you cannot solder it straight to the RPI.

You will need to place it under the UPS lite, because you will not be able to plug it in a laptop.

If you want smaller device you can shorten the pins on the raspberry pi. But I do not recommend it.

Instead solder new set of pins from bottom, with LCD placed on them.

Header fitment

🧾 Software

Download latest P4wnP1 aloa image on sdcard.

cd /root/
git clone https://github.com/gloglas/rpi_gui
sudo ./rpi_gui/setup.sh

If errors are not present just reboot your pi and you are set!

πŸ’Ύ Config gui_conf.json

It can be saved/loaded from options menu.

{
    "COLORS": {
        "BACKGROUND": "#000000",
        "BORDER": "#0e0e6b",
        "GAMEPAD": "#141494",
        "GAMEPAD_FILL": "#EEEEEE",
        "SELECTED_TEXT": "#EEEEEE",
        "SELECTED_TEXT_BACKGROUND": "#141494",
        "TEXT": "#9c9ccc"
    },
    "PATHS": {
        "ANALYZED_HID": "/root/rpi_gui/ducky/",
        "ANALYZED_HID_LOGS": "/root/rpi_gui/log/",
        "BASH_SCRIPTS": "/usr/local/P4wnP1/scripts/",
        "HID": "/usr/local/P4wnP1/HIDScripts/",
        "IMAGEBROWSER_START": "/root/",
        "MUNIFYING": "/root/munifying/"
    },
    "PINS": {
        "KEY1_PIN": 21,
        "KEY2_PIN": 20,
        "KEY3_PIN": 16,
        "KEY_DOWN_PIN": 19,
        "KEY_LEFT_PIN": 5,
        "KEY_PRESS_PIN": 13,
        "KEY_RIGHT_PIN": 26,
        "KEY_UP_PIN": 6
    }
}

πŸ’» Making your own menu and functions

The menu class has its own structure. I'll try to explain it to you the best I can.

Menu

Key "a" is a definition for menu.

If you are in "ab" menu and go one menu back, it will go to the "a" menu.

Items and structure

The items in menu in menu are in array.

First value is text displayed to the user.

The second value is:

  • Menu which will be displayed next (specified by [a-z]) - "ab"
  • Function with own stuff - ShowInfo
  • Function with parameter - [Templates, "WIFI"] or [SetColor, 2]
menu = {
    "a": (
        ["System info", ShowInfo],
        ["HID", "ab"],
        ["Logitech attacks", "ac"],
        ["USB tools", "ad"],
        ["Template selector", "aa"],
        ["Other features","ag"],
        ["Options", "ae"],
        ["System", "af"]
    ),
    "aa": (
        ["Full settings", [Templates, "FULL_SETTINGS"]],
        ["WiFi", [Templates, "WIFI"]],
    ..snip..
    "aea": (
        ["Background", [SetColor, 0]],
        ["Text", [SetColor, 2]],
    ..snip..
}

So If you want to add your own you just follow the example.

Function called from menu

Requires:

  • It is recommended to set location (basically just user is not in menu) with - m.which = m.which + "1"
  • Draw empty background - color.DrawMenuBackground()
  • Wait a few milliseconds so the user doesn't accidentally presses some button - time.sleep(0.4)
  • After leaving the function, set the location accordingly with - m.which = m.which[:-1]
def ShowInfo():
    m.which = m.which + "1"
    color.DrawMenuBackground()
    time.sleep(0.4)
    
    # Your stuff here

    m.which = m.which[:-1]

πŸ‘ Helper functions

Dialogs

Yes or No dialog

YNDialog

def YNDialog(a="Are you sure?", y="Yes", n="No",b=""):

Arguments: First line; text for YES; text for NO; Second line; Returns: True/False

Dialog

def Dialog(a, wait=True):

Basic Message box

Arguments: Text; Waits for user to click ok;

Scroll trought text (like in menu)

def GetMenuString(inlist,duplicates=False):

Arguments: List of strings with labels to show; bool, if your lists contains duplicates (to show the list properly); Returns: Selected string from array.

Show text without selection ("slide")

def GetMenuPic(a):

Arguments: List of lists with labels to show; Returns: Index of selected slide (-1 for none).

Wait for button press

def getButton():

Returns: Name of the pressed button (defined in json config).

RGB color picker

Color picker

def GetColor(final_color="#000000"):

Arguments: Color you start with; Returns: #RRGGBBselected color in hex

πŸ“‹ TODO

  • More features for Logitech stuff
  • Dump USB storage
  • Construct HID payloads
  • Terminal

πŸ“š Credits and sources

Owner
John
He really loves hardware but he is sometimes lost when it comes to using a git.
John
Redis GUI using Qt & Python

QRedis A Python, Qt based Redis client user interface. Help wanted Open to people who want to colaborate. Would like to know which features you would

Tiago Coutinho 58 Dec 09, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 07, 2023
A hotkey manager that runs in the system tray. Uses PySimpleGUI for the GUI and the system tray.

PySimpleHotkey PySimpleHotkey A hotkey manager that runs in the system tray. Uses PySimpleGUI for the GUI and the system tray. Packages Used This proj

PySimpleGUI 20 Nov 14, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 04, 2023
TextTUI is a set of extensions to the Textual and Textual-Inputs libraries

TextTUI is a set of extensions to the Textual and Textual-Inputs libraries. Currently a Work in Progress that is based on the 0.1.14 branch of

3 Feb 10, 2022
A quick GUI script to pseudo-anonymize patient videos for use in the GRK

grk_patient_sorter A quick GUI script to pseudo-anonymize patient videos for use in the GRK. Source directory β€” the highest level folder that will be

Peter Somers 1 Dec 09, 2021
Primeira interface (simples) desenvolvida em Python utilizando o PySimpleGUI

Interface-Python Sobre o projeto Primeira interface grΓ‘fica (simples) desenvolvida em Python utilizando o PySimpleGUI Interface GrΓ‘fica Tecnologias ut

Matheus Maia Alvarez 5 Apr 09, 2022
Management Gui for OpenVR FSR PlugIn

OpenVR FSR App Small GUI to install/uninstall, tweak settings of the Modified OpenVR DLL with AMD FidelityFX SuperResolution Upscaler with a single cl

Stefan Tapper 234 Dec 20, 2022
Python Web Version 3.0 Using PyQty module

Python-Web-Version-3.0 Python Web Version 3.0 Using PyQty module you have to install pyinstaller module then install PyQt5 module and install PyQtwebE

JehanKandy 9 Jul 13, 2022
This is a GUI application to plot functions in the form Y = F(X)

Plotter This is a GUI application to plot functions in the form Y = F(X) Technologies Python Qt designer Python unittest matplotlib Running Navigate

ahmedasad236 3 Dec 26, 2021
A system tray application written in python that will assist you with your keyboard endeavors.

A system tray application written in python that will assist you with your keyboard endeavors. It has features such as abbreviation, email autofill, media control, writing from clipboard ,typing curr

Mach50 1 Dec 15, 2021
build GUIs from python functions, using magic.

magicgui: build GUIs from functions, using magic. πŸ“– Docs Installation magicgui uses qtpy to support both pyside2 and pyqt5 backends. However, you mus

napari 0 Nov 11, 2022
Edifice: a declarative GUI library for Python

Edifice is a Python library for building reactive UI, inspired by modern Javascript libraries such as React.

David Ding 193 Dec 11, 2022
A GUI frontend developed in Python3 for simple admin tasks on MySQL-Server running on the localhost

A GUI frontend developed in Python3 for simple admin tasks on MySQL-Server running on the localhost. Developed for my CS School Project.

1 May 29, 2022
Advanced GUI Calculator with Beautiful UI and Clear Code.

Advanced GUI Calculator with Beautiful UI and Clear Code.

Mohammad Dori 3 Jul 15, 2022
CBMPy Metadraft: a flexible and extensible genome-scale model reconstruction tool

CBMPy Metadraft: a flexible and extensible, GUI-based genome-scale model reconstruction tool that supports multiple Systems Biology standards.

Systems Biology Lab, Vrije Universiteit Amsterdam 1 Mar 14, 2022
This is the new and improved Plex Automatic Pre-roll script with a GUI

Rollarr This is the new and improved Automatic Pre-roll script with a GUI for Plex now called Rollarr! It should be stable but if you find a bug pleas

164 Nov 04, 2022
FPKG Maker GUI - A user friendly User Interface for fPKG Tools for PS4

Know Issues being worked on Please place this application on the root of a drive

26 Nov 27, 2022
OpenPort scanner GUI tool (CNMAP)

CNMAP-GUI- OpenPort scanner GUI tool (CNMAP) as you know it is the advanced tool to find open port, firewalls and we also added here heartbleed scanni

9 Mar 05, 2022
A library for building modern declarative desktop applications in WX.

re-wx is a library for building modern declarative desktop applications. It's built as a management layer on top of WXPython, which means you get all the goodness of a mature, native, cross-platform

Chris 115 Dec 24, 2022