-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathduckyscript.tmLanguage.json
More file actions
169 lines (169 loc) · 5.84 KB
/
duckyscript.tmLanguage.json
File metadata and controls
169 lines (169 loc) · 5.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
{
"name": "DuckyScript",
"scopeName": "source.duckyscript",
"patterns": [
{
"include": "#comments"
},
{
"include": "#stringCommands"
},
{
"include": "#delayCommands"
},
{
"include": "#declarations"
},
{
"include": "#controlKeywords"
},
{
"include": "#variables"
},
{
"include": "#constants"
},
{
"include": "#functionCalls"
},
{
"include": "#operators"
},
{
"include": "#usbArmyKnife"
},
{
"include": "#pagerCommands"
},
{
"include": "#commands"
}
],
"repository": {
"comments": {
"patterns": [
{
"name": "comment.line.rem.duckyscript",
"match": "^\\s*REM\\b.*$"
},
{
"begin": "^\\s*REM_BLOCK(?:\\s.*)?$",
"end": "^\\s*END_REM\\b.*$",
"name": "comment.block.rem.duckyscript"
}
]
},
"stringCommands": {
"patterns": [
{
"name": "meta.string.command.duckyscript",
"match": "^\\s*(STRING(?:LN)?(?:_POWERSHELL|_BATCH|_BASH|_JAVASCRIPT|_PYTHON|_RUBY|_HTML)?|END_STRING|END_STRINGLN)\\b(\\s+)(.+)$",
"captures": {
"1": {
"name": "support.function.builtin.duckyscript"
},
"3": {
"name": "string.unquoted.command.duckyscript"
}
}
}
]
},
"delayCommands": {
"patterns": [
{
"name": "meta.delay.command.duckyscript",
"match": "^\\s*(DEFAULTDELAY|DEFAULT_DELAY|DELAY)\\b(\\s+)(-?\\d+)\\b",
"captures": {
"1": {
"name": "support.function.builtin.duckyscript"
},
"3": {
"name": "constant.numeric.duckyscript"
}
}
}
]
},
"declarations": {
"patterns": [
{
"name": "storage.type.duckyscript",
"match": "\\b(?:EXTENSION|BUTTON_DEF|DEFINE|VAR|FUNCTION)\\b"
},
{
"name": "storage.modifier.duckyscript",
"match": "\\b(?:END_EXTENSION|END_BUTTON|END_FUNCTION)\\b"
}
]
},
"controlKeywords": {
"patterns": [
{
"name": "keyword.control.conditional.duckyscript",
"match": "\\b(?:IF|ELSE|THEN|END_IF|IF_DEFINED_TRUE|END_IF_DEFINED)\\b"
},
{
"name": "keyword.control.loop.duckyscript",
"match": "\\b(?:WHILE|END_WHILE)\\b"
}
]
},
"variables": {
"patterns": [
{
"name": "variable.other.definition.duckyscript",
"match": "(?:#|\\$)[A-Za-z_][A-Za-z0-9_-]*"
}
]
},
"constants": {
"patterns": [
{
"name": "constant.language.boolean.duckyscript",
"match": "\\b(?:TRUE|FALSE)\\b"
}
]
},
"functionCalls": {
"patterns": [
{
"name": "entity.name.function.call.duckyscript",
"match": "\\b[A-Za-z_][A-Za-z0-9_]*(?=\\()"
}
]
},
"operators": {
"patterns": [
{
"name": "keyword.operator.duckyscript",
"match": "!=|==|<=|>=|=|\\+|-|\\*|/|%|\\^|&|<|>|\\|"
}
]
},
"commands": {
"patterns": [
{
"name": "support.function.builtin.duckyscript",
"match": "\\b(?:STRING|STRING_POWERSHELL|STRING_BATCH|STRING_BASH|STRING_JAVASCRIPT|STRING_PYTHON|STRING_RUBY|STRING_HTML|END_STRING|STRINGLN|STRINGLN_POWERSHELL|STRINGLN_BATCH|STRINGLN_BASH|STRINGLN_JAVASCRIPT|STRINGLN_PYTHON|STRINGLN_RUBY|STRINGLN_HTML|END_STRINGLN|DEFAULTDELAY|DEFAULT_DELAY|DELAY|ATTACKMODE|ENTER|ESCAPE|SHIFT|ALT|CTRL|GUI|DOWNARROW|DOWN|UPARROW|UP|LEFTARROW|LEFT|RIGHTARROW|RIGHT|TAB|CAPSLOCK|DELETE|DEL|END|ESC|HOME|INSERT|PAGEUP|PAGEDOWN|PRINTSCREEN|SPACE|BACKSPACE|BREAK|PAUSE|MENU|APP|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMLOCK|SCROLLLOCK|WINDOWS|CONTROL|COMMAND|OPTION|INJECT_MOD|WAIT_FOR_BUTTON_PRESS|LED_OFF|LED_R|LED_G|HID|STORAGE|OFF|RANDOM_LOWERCASE_LETTER|RANDOM_UPPERCASE_LETTER|RANDOM_LETTER|RANDOM_NUMBER|RANDOM_SPECIAL|RANDOM_CHAR|VID_RANDOM|PID_RANDOM|MAN_RANDOM|PROD_RANDOM|SERIAL_RANDOM|HOLD|RESET|RESTART_PAYLOAD|STOP_PAYLOAD|HIDE_PAYLOAD|RESTORE_PAYLOAD|WAIT_FOR_CAPS_ON|WAIT_FOR_CAPS_OFF|WAIT_FOR_CAPS_CHANGE|WAIT_FOR_NUM_ON|WAIT_FOR_NUM_OFF|WAIT_FOR_NUM_CHANGE|WAIT_FOR_SCROLL_ON|WAIT_FOR_SCROLL_OFF|WAIT_FOR_SCROLL_CHANGE|SAVE_HOST_KEYBOARD_LOCK_STATE|RESTORE_HOST_KEYBOARD_LOCK_STATE|EXFIL|RESTORE_ATTACKMODE|SAVE_ATTACKMODE|RELEASE|SCROLLOCK|RETURN)\\b"
}
]
},
"usbArmyKnife": {
"patterns": [
{
"name": "support.function.builtin.usb-army-knife.duckyscript",
"match": "\\b(?:TFT_OFF|TFT_ON|DISPLAY_PNG|DISPLAY_TEXT|DISPLAY_CLEAR|LED|LED_B|WEB_OFF|WEB_ON|WIFI_OFF|WIFI_ON|SERIAL|BUTTON_LONG_PRESS|BUTTON_SHORT_PRESS|USB_MOUNT_DISK_READ_ONLY|USB_NCM_PCAP_ON|USB_NCM_PCAP_OFF|WAIT_FOR_USB_STORAGE_ACTIVITY|WAIT_FOR_USB_STORAGE_ACTIVITY_TO_STOP|RAW_HID|AGENT_RUN|WAIT_FOR_AGENT_RUN_RESULT|AGENT_CONNECTED|FILE_EXISTS|CREATE_FILE|DELETE_FILE|LOAD_FILES_FROM_SD|FILE_INDEX_VALID|CALC|ESP32M|RUN_PAYLOAD|KEYBOARD_LAYOUT)\\b"
}
]
},
"pagerCommands": {
"patterns": [
{
"name": "support.function.builtin.pager.duckyscript",
"match": "\\b(?:ALERT|PAYLOAD_GET_CONFIG|PAYLOAD_SET_CONFIG|PAYLOAD_DEL_CONFIG|CONFIRMATION_DIALOG|ERROR_DIALOG|IP_PICKER|LOG|MAC_PICKER|NUMBER_PICKER|PROMPT|RINGTONE|START_SPINNER|STOP_SPINNER|TEXT_PICKER|VIBRATE|WAIT_FOR_INPUT|FIND_CLIENT_IP|DEAUTH_CLIENT|PINEAPPLE_DEVICE_FILTER_ADD|PINEAPPLE_DEVICE_FILTER_ADD_FILE|PINEAPPLE_DEVICE_FILTER_DELETE|PINEAPPLE_DEVICE_FILTER_CLEAR|PINEAPPLE_DEVICE_FILTER_LIST|PINEAPPLE_DEVICE_FILTER_MODE|PINEAPPLE_EXAMINE_BSSID|PINEAPPLE_EXAMINE_CHANNEL|PINEAPPLE_EXAMINE_RESET|PINEAPPLE_RECON_NEW|PINEAPPLE_SET_BANDS|PINEAPPLE_MIMIC_DISABLE|PINEAPPLE_MIMIC_ENABLE|PINEAPPLE_NETWORK_FILTER_ADD|PINEAPPLE_NETWORK_FILTER_ADD_FILE|PINEAPPLE_NETWORK_FILTER_DELETE|PINEAPPLE_NETWORK_FILTER_CLEAR|PINEAPPLE_NETWORK_FILTER_LIST|PINEAPPLE_NETWORK_FILTER_MODE|PINEAPPLE_SSID_POOL_ADD|PINEAPPLE_SSID_POOL_ADD_FILE|PINEAPPLE_SSID_POOL_DELETE|PINEAPPLE_SSID_POOL_CLEAR|PINEAPPLE_SSID_POOL_LIST|PINEAPPLE_SSID_POOL_COLLECT_START|PINEAPPLE_SSID_POOL_COLLECT_STOP|PINEAPPLE_SSID_POOL_START|PINEAPPLE_SSID_POOL_STOP|WIFI_PCAP_START|WIFI_PCAP_STOP|WIGLE_LOGIN|WIGLE_LOGOUT|WIGLE_UPLOAD|WIGLE_START|WIGLE_STOP)\\b"
}
]
}
}
}