* Add doxygen and doxygen-awesome css, cleanup docs files * Ignore more libraries and remove leftover local variables * Create an actual intro page * .md files linting * Add doxygen action * Fix Doxygen path * Fix doxyfile path * Try to upload * Change docs branch * Add submudules checkout * Disable doxygen on PR * Mention the firmware docs in the readme * More dev docs mentions in the readme * Fix runner group, add tags * Test dev in PR * Disable running on PR * Fix a typo in the doxyfile * Try upload to S3 * Fix local path * Fix S3 ACL * Add delete flag, unifying dev and tags * Update ignored directories * More ignored directories * Even more ignored directories * Fix submodule * Change S3 uploader * Change S3 uploader version * Fix aws sync flags * Fix ACL * Disable ACL * Improve ignores, add WiFi devboard docs * TEMP: generate dev docs * TEMP: generate 0.89.0 docs * Disabling PR trigger * Enable submodules and test build * Enable test build * Disable test build * Change docs directory structure * Fix accidentally committed submodule * Fix submodules * Update links to the developer documentation * Markdown linting * Update workflow, enable test build * Fix doxygen dir path * Update Doxyfile-awesome.cfg * Change paths * Fix upload docs path * Disable pull_request debug trigger * Disable tags building * Remove autolinks and namespaces * Establish basic documentation structure * Add missing changes * Improve stylesheet, move some files * Improve examples * Improve the main page * Improve application dev docs * Improve system programming docs * Improve development tools docs * Improve other docs * Improve application examples * Fix formatting * Fix PVS-studio warnings * Improve visuals * Fix doxygen syntax warnings * Fix broken links * Update doxygen action Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com> Co-authored-by: あく <alleteam@gmail.com> Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com> Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
5.7 KiB
BadUSB File Format
Command syntax
BadUsb app uses extended Duckyscript syntax. It is compatible with classic USB Rubber Ducky 1.0 scripts but provides some additional commands and features, such as custom USB ID, ALT+Numpad input method, SYSRQ command, and more functional keys.
Script file format
BadUsb app can execute only text scripts from .txt
files, no compilation is required. Both \n
and \r\n
line endings are supported. Empty lines are allowed. You can use spaces or tabs for line indentation.
Command set
Comment line
Just a single comment line. The interpreter will ignore all text after the REM command.
Command | Parameters | Notes |
---|---|---|
REM | Comment text |
Delay
Pause script execution by a defined time.
Command | Parameters | Notes |
---|---|---|
DELAY | Delay value in ms | Single delay |
DEFAULT_DELAY | Delay value in ms | Add delay before every next command |
DEFAULTDELAY | Delay value in ms | Same as DEFAULT_DELAY |
Special keys
Command | Notes |
---|---|
DOWNARROW / DOWN | |
LEFTARROW / LEFT | |
RIGHTARROW / RIGHT | |
UPARROW / UP | |
ENTER | |
DELETE | |
BACKSPACE | |
END | |
HOME | |
ESCAPE / ESC | |
INSERT | |
PAGEUP | |
PAGEDOWN | |
CAPSLOCK | |
NUMLOCK | |
SCROLLLOCK | |
PRINTSCREEN | |
BREAK | Pause/Break key |
PAUSE | Pause/Break key |
SPACE | |
TAB | |
MENU | Context menu key |
APP | Same as MENU |
Fx | F1-F12 keys |
Modifier keys
Can be combined with a special key command or a single character.
Command | Notes |
---|---|
CONTROL / CTRL | |
SHIFT | |
ALT | |
WINDOWS / GUI | |
CTRL-ALT | CTRL+ALT |
CTRL-SHIFT | CTRL+SHIFT |
ALT-SHIFT | ALT+SHIFT |
ALT-GUI | ALT+WIN |
GUI-SHIFT | WIN+SHIFT |
GUI-CTRL | WIN+CTRL |
Key hold and release
Up to 5 keys can be hold simultaneously.
Command | Parameters | Notes |
---|---|---|
HOLD | Special key or single character | Press and hold key until RELEASE command |
RELEASE | Special key or single character | Release key |
Wait for button press
Will wait indefinitely for a button to be pressed
Command | Parameters | Notes |
---|---|---|
WAIT_FOR_BUTTON_PRESS | None | Will wait for the user to press a button to continue script execution |
String
Command | Parameters | Notes |
---|---|---|
STRING | Text string | Print text string |
STRINGLN | Text string | Print text string and press enter after it |
String delay
Delay between keypresses.
Command | Parameters | Notes |
---|---|---|
STRING_DELAY | Delay value in ms | Applied once to next appearing STRING command |
STRINGDELAY | Delay value in ms | Same as STRING_DELAY |
Repeat
Command | Parameters | Notes |
---|---|---|
REPEAT | Number of additional repeats | Repeat previous command |
ALT+Numpad input
On Windows and some Linux systems, you can print characters by holding ALT
key and entering its code on Numpad.
Command | Parameters | Notes |
---|---|---|
ALTCHAR | Character code | Print single character |
ALTSTRING | Text string | Print text string using ALT+Numpad method |
ALTCODE | Text string | Same as ALTSTRING, presents in some Duckyscript implementations |
SysRq
Send SysRq command
Command | Parameters | Notes |
---|---|---|
SYSRQ | Single character |
USB device ID
You can set the custom ID of the Flipper USB HID device. ID command should be in the first line of script, it is executed before script run.
Command | Parameters | Notes |
---|---|---|
ID | VID:PID Manufacturer:Product |
Example:
ID 1234:abcd Flipper Devices:Flipper Zero
VID and PID are hex codes and are mandatory. Manufacturer and Product are text strings and are optional.