137 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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 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.
 | |
| 
 | |
| # 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 untill 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](https://en.wikipedia.org/wiki/Magic_SysRq_key)
 | |
| | 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.
 | 
