A tool to embed python code into a runnable DuckyScript on mac os
Project description
🦆 Quackdoor
Honk Honk!
Quackdoor is a CLI tool written in Python that generates DuckyScript to execute arbitrary Python code on a target machine. It is best used for crafting payloads for Flipper Zero's BadUSB app.
🔧 Features
- Converts Python scripts into executable DuckyScript payloads
- Supports external Python libraries (via
-rand-pflags) - Tailored for use with macOS and Zsh environments
- Ideal for authorized security testing and educational purposes
⚠️ Limitations & Considerations
- The target system must have Python 3 installed
- All local Python code must reside in a single file; other local modules will not be compiled into the payload
- External libraries are supported and will be installed globally on the target via pip
- Payload may leave recoverable traces on the target system—use with caution
- Assumes the Zsh shell and standard macOS filesystem on the target
🚀 Getting Started
Clone the repository:
git clone https://github.com/your-org/quackdoor.git
Generate a payload:
cd quackdoor
python3 quackdoor.py -i your_script.py -o output_file_name.txt
Optional flags for additional customization:
-r dependency1 dependency2– Provide a space delimited list of dependencies to install-p– Pip-time, or how long for the resulting DuckyScript to wait after running pip install (if there are dependencies provided)
✅ Development Best Practices
We follow the GitHub Flow for all development work:
-
Create a new branch from
main:git checkout -b feature/my-feature
-
Make your changes and commit them:
git commit -m "#123 Brief description of the change"
- Always reference the GitHub issue number with a
#, e.g.#42 - Write clear and descriptive commit messages
- Always reference the GitHub issue number with a
-
Push your branch:
git push origin feature/my-feature
-
Open a Pull Request targeting the
mainbranch -
Request review and ensure all checks pass
-
Once approved, squash and merge
📄 License
MIT License. See LICENSE for details.
🛡️ Disclaimer
This software is provided for educational and authorized testing purposes only.
The author is not responsible for misuse, damage, or legal consequences resulting from the use of this tool.
Use responsibly. Honk responsibly. 🦆
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quackdoor-0.1.0.tar.gz.
File metadata
- Download URL: quackdoor-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3aee7f649ff618283a5192fbe0fa2bac20fec331efccdb3a8d8cf73658cda2c8
|
|
| MD5 |
3ea8be48ba7ca96f3e8cd92688f6542e
|
|
| BLAKE2b-256 |
f7a5c6ceb54cadbd069351ccdccba7d6f29108144de53fc6e66dab96f794b05b
|
File details
Details for the file quackdoor-0.1.0-py3-none-any.whl.
File metadata
- Download URL: quackdoor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba441bc4b493c0b01a5c471b11675ea41ef7fbbb4b2656964294b7753d11a83e
|
|
| MD5 |
6125e3ec4fdba2095e7c4428296f1b76
|
|
| BLAKE2b-256 |
5747c1e33ca5ed2934e7675a3162e834be72ed5cc3151c4b752c2ebc46ae8aef
|