Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/garfield1002/pico-ducky-3.0
Create a USB Rubber Ducky 3.0 like device using a Raspberry PI Pico
https://github.com/garfield1002/pico-ducky-3.0
rasberry-pi-pico rubber-ducky
Last synced: about 1 month ago
JSON representation
Create a USB Rubber Ducky 3.0 like device using a Raspberry PI Pico
- Host: GitHub
- URL: https://github.com/garfield1002/pico-ducky-3.0
- Owner: Garfield1002
- License: gpl-3.0
- Created: 2023-09-20T14:34:00.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-09-20T14:42:31.000Z (over 1 year ago)
- Last Synced: 2023-09-21T04:18:12.447Z (over 1 year ago)
- Topics: rasberry-pi-pico, rubber-ducky
- Language: Python
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 🦆 pico-ducky-3.0 🦆
> This project was heavily inspired by dbisu's [pico-ducky](https://github.com/dbisu/pico-ducky) but expands on it by adding limited support for DuckyScript 3.0
This project contains a **compiler** that you need on your computer to compile your scripts to an `inject.bin` and an **interpreter** that goes on your Pico and runs the code in the `inject.bin`.
## âš¡ Quick start
This installation guide assumes you have a Pico running [CircuitPython](https://circuitpython.org/).
Copy `interpreter/code.py` and `interpreter/boot.py` to the root of your Pico.
You need to install `simple_chalk` for the compiler.
## 💿 Compilation
To compile a script, run
```
$ python3 ./compiler/ducky3.py ./example.ducky
```You can then copy the `inject.bin` compilation output to the root of your Pico.
## ✅ Limitations and required work
This is a very new project and does not fully support DuckyScript 3.0 yet
### Not supported yet
- Anything linked to storage on the Pico:
- `HIDE_PAYLOAD`
- `RESTORE_PAYLOAD`
- `EXFIL`
- `$_RANDOM_SEED`
- `ATTACKMODE` is not supported
- `$_CURRENT_VID`
- `$_CURRENT_PID`
- `$_CURRENT_ATTACKMODE`
- Anything with the button is not supported:
- `WAIT_FOR_BUTTON_PRESS`
- `BUTTON_DEF`
- `DISABLE_BUTTON`
- `ENABLE_BUTTON`
- `SAVE_ATTACKMODE`
- `RESTORE_ATTACKMODE`
- `$_BUTTON_ENABLED`
- `$_BUTTON_USER_DEFINED`
- `$_BUTTON_PUSH_RECEIVED`
- `$_BUTTON_TIMEOUT`
- The key press currently releases all the keys, I'm not sure how to make these work with that
- `HOLD`
- `RELEASE`
- `RESET`
- I'm not too sure what these do
- `$_HOST_CONFIGURATION_REQUEST_COUNT`
- `$_EXFIL_MODE_ENABLED`
- `$_STORAGE_ACTIVITY_TIMEOUT`
- `$_RECEIVED_HOST_LOCK_LED_REPLY`
- OS detection
- `$_OS`## License
This code is licensed under the GPLv3 license. Check out `license.md` for additional details.
## Contribution
This is a new project, bugs are expected and contributions are welcome