2022-12-23 13:25:29 +03:00
# Command syntax
2023-01-06 21:18:43 +03:00
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.
2022-12-23 13:25:29 +03:00
# Script file format
2023-01-06 21:18:43 +03:00
BadUsb app can execute only text scrips 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.
2022-12-23 13:25:29 +03:00
# Command set
2023-01-06 21:18:43 +03:00
2022-12-23 13:25:29 +03:00
## Comment line
2023-01-06 21:18:43 +03:00
Just a single comment line. The interpreter will ignore all text after the REM command.
2022-12-23 13:25:29 +03:00
|Command|Parameters|Notes|
|-|-|-|
|REM|Comment text||
## Delay
2023-01-06 21:18:43 +03:00
Pause script execution by a defined time.
2022-12-23 13:25:29 +03:00
|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
2023-01-06 21:18:43 +03:00
| 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 |
2022-12-23 13:25:29 +03:00
## Modifier keys
2023-01-06 21:18:43 +03:00
Can be combined with a special key command or a single character.
2022-12-23 13:25:29 +03:00
|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|
2023-01-30 12:49:51 +03:00
|GUI-CTRL|WIN+CTRL|
2023-01-06 21:18:43 +03:00
2022-12-23 13:25:29 +03:00
## String
2023-01-06 21:18:43 +03:00
| Command | Parameters | Notes |
| ------- | ----------- | ----------------- |
| STRING | Text string | Print text string |
2022-12-23 13:25:29 +03:00
## Repeat
2023-01-06 21:18:43 +03:00
| Command | Parameters | Notes |
| ------- | ---------------------------- | ----------------------- |
| REPEAT | Number of additional repeats | Repeat previous command |
2022-12-23 13:25:29 +03:00
## ALT+Numpad input
2023-01-06 21:18:43 +03:00
On Windows and some Linux systems, you can print characters by pressing `ALT` key and entering its code on Numpad.
2022-12-23 13:25:29 +03:00
|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|
2023-01-06 21:18:43 +03:00
2022-12-23 13:25:29 +03:00
## SysRq
2023-01-06 21:18:43 +03:00
2022-12-23 13:25:29 +03:00
Send [SysRq command ](https://en.wikipedia.org/wiki/Magic_SysRq_key )
|Command|Parameters|Notes|
|-|-|-|
|SYSRQ|Single character||
2023-01-06 21:18:43 +03:00
2022-12-23 13:25:29 +03:00
## USB device ID
2023-01-06 21:18:43 +03:00
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 | |
2022-12-23 13:25:29 +03:00
Example:
`ID 1234:abcd Flipper Devices:Flipper Zero`
2023-01-06 21:18:43 +03:00
VID and PID are hex codes and are mandatory. Manufacturer and Product are text strings and are optional.