mirror of
https://github.com/flipperdevices/flipperzero-firmware.git
synced 2025-12-13 05:19:50 +04:00
badusb: arbitrary modifier key combinations
This commit is contained in:
@@ -6,21 +6,16 @@ typedef struct {
|
||||
uint16_t keycode;
|
||||
} DuckyKey;
|
||||
|
||||
static const DuckyKey ducky_keys[] = {
|
||||
{"CTRL-ALT", KEY_MOD_LEFT_CTRL | KEY_MOD_LEFT_ALT},
|
||||
{"CTRL-SHIFT", KEY_MOD_LEFT_CTRL | KEY_MOD_LEFT_SHIFT},
|
||||
{"ALT-SHIFT", KEY_MOD_LEFT_ALT | KEY_MOD_LEFT_SHIFT},
|
||||
{"ALT-GUI", KEY_MOD_LEFT_ALT | KEY_MOD_LEFT_GUI},
|
||||
{"GUI-SHIFT", KEY_MOD_LEFT_GUI | KEY_MOD_LEFT_SHIFT},
|
||||
{"GUI-CTRL", KEY_MOD_LEFT_GUI | KEY_MOD_LEFT_CTRL},
|
||||
|
||||
static const DuckyKey ducky_modifier_keys[] = {
|
||||
{"CTRL", KEY_MOD_LEFT_CTRL},
|
||||
{"CONTROL", KEY_MOD_LEFT_CTRL},
|
||||
{"SHIFT", KEY_MOD_LEFT_SHIFT},
|
||||
{"ALT", KEY_MOD_LEFT_ALT},
|
||||
{"GUI", KEY_MOD_LEFT_GUI},
|
||||
{"WINDOWS", KEY_MOD_LEFT_GUI},
|
||||
};
|
||||
|
||||
static const DuckyKey ducky_keys[] = {
|
||||
{"DOWNARROW", HID_KEYBOARD_DOWN_ARROW},
|
||||
{"DOWN", HID_KEYBOARD_DOWN_ARROW},
|
||||
{"LEFTARROW", HID_KEYBOARD_LEFT_ARROW},
|
||||
@@ -119,6 +114,23 @@ static const DuckyKey ducky_mouse_keys[] = {
|
||||
{"WHEEL_CLICK", HID_MOUSE_BTN_WHEEL},
|
||||
};
|
||||
|
||||
uint16_t ducky_get_next_modifier_keycode_by_name(const char** param) {
|
||||
const char* input_str = *param;
|
||||
|
||||
for(size_t i = 0; i < COUNT_OF(ducky_modifier_keys); i++) {
|
||||
size_t key_cmd_len = strlen(ducky_modifier_keys[i].name);
|
||||
if((strncmp(input_str, ducky_modifier_keys[i].name, key_cmd_len) == 0)) {
|
||||
char next_char_after_key = input_str[key_cmd_len];
|
||||
if(ducky_is_line_end(next_char_after_key) || (next_char_after_key == '-')) {
|
||||
*param = &input_str[key_cmd_len];
|
||||
return ducky_modifier_keys[i].keycode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return HID_KEYBOARD_NONE;
|
||||
}
|
||||
|
||||
uint16_t ducky_get_keycode_by_name(const char* param) {
|
||||
for(size_t i = 0; i < COUNT_OF(ducky_keys); i++) {
|
||||
size_t key_cmd_len = strlen(ducky_keys[i].name);
|
||||
|
||||
Reference in New Issue
Block a user