Skip to content

Instantly share code, notes, and snippets.

@TotallyNotAHaxxer
Created February 21, 2024 01:15
Show Gist options
  • Save TotallyNotAHaxxer/2765fb84f9acc070117aa01b196417c5 to your computer and use it in GitHub Desktop.
Save TotallyNotAHaxxer/2765fb84f9acc070117aa01b196417c5 to your computer and use it in GitHub Desktop.
KeySpammer - Virtual Key Code Utility
#include <Windows.h>
#include <iostream>
#include <unordered_map>
#include <string>
std::unordered_map<std::string, std::string> VKEY_Map = {
{"VK_LBUTTON", "0x01"},
{"VK_TAB", "0x09"},
{"VK_RBUTTON", "0x02"},
{"VK_CANCEL", "0x03"},
{"VK_MBUTTON", "0x04"},
{"VK_XBUTTON1", "0x05"},
{"VK_XBUTTON2", "0x06"},
{"VK_BACK", "0x08"},
{"VK_CLEAR", "0x0C"},
{"VK_RETURN", "0x0D"},
{"VK_SHIFT", "0x10"},
{"VK_CONTROL", "0x11"},
{"VK_MENU", "0x12"},
{"VK_PAUSE", "0x13"},
{"VK_CAPITAL", "0x14"},
{"VK_KANA", "0x15"},
{"VK_HANGUL", "0x15"},
{"VK_IME_ON", "0x16"},
{"VK_JUNJA", "0x17"},
{"VK_FINAL", "0x18"},
{"VK_HANJA", "0x19"},
{"VK_KANJI", "0x19"},
{"VK_IME_OFF", "0x1A"},
{"VK_ESCAPE", "0x1B"},
{"VK_CONVERT", "0x1C"},
{"VK_NONCONVERT", "0x1D"},
{"VK_ACCEPT", "0x1E"},
{"VK_MODECHANGE", "0x1F"},
{"VK_SPACE", "0x20"},
{"VK_PRIOR", "0x21"},
{"VK_NEXT", "0x22"},
{"VK_END", "0x23"},
{"VK_HOME", "0x24"},
{"VK_LEFT", "0x25"},
{"VK_UP", "0x26"},
{"VK_RIGHT", "0x27"},
{"VK_DOWN", "0x28"},
{"VK_SELECT", "0x29"},
{"VK_PRINT", "0x2A"},
{"VK_EXECUTE", "0x2B"},
{"VK_SNAPSHOT", "0x2C"},
{"VK_INSERT", "0x2D"},
{"VK_DELETE", "0x2E"},
{"VK_HELP", "0x2F"},
{"0 key", "0x30"},
{"1 key", "0x31"},
{"2 key", "0x32"},
{"3 key", "0x33"},
{"4 key", "0x34"},
{"5 key", "0x35"},
{"6 key", "0x36"},
{"7 key", "0x37"},
{"8 key", "0x38"},
{"9 key", "0x39"},
{"A key", "0x41"},
{"B key", "0x42"},
{"C key", "0x43"},
{"D key", "0x44"},
{"E key", "0x45"},
{"F key", "0x46"},
{"G key", "0x47"},
{"H key", "0x48"},
{"I key", "0x49"},
{"J key", "0x4A"},
{"K key", "0x4B"},
{"L key", "0x4C"},
{"M key", "0x4D"},
{"N key", "0x4E"},
{"O key", "0x4F"},
{"P key", "0x50"},
{"Q key", "0x51"},
{"R key", "0x52"},
{"S key", "0x53"},
{"T key", "0x54"},
{"U key", "0x55"},
{"V key", "0x56"},
{"W key", "0x57"},
{"X key", "0x58"},
{"Y key", "0x59"},
{"Z key", "0x5A"},
{"VK_LWIN", "0x5B"},
{"VK_RWIN", "0x5C"},
{"VK_APPS", "0x5D"},
{"VK_SLEEP", "0x5F"},
{"VK_NUMPAD0", "0x60"},
{"VK_NUMPAD1", "0x61"},
{"VK_NUMPAD2", "0x62"},
{"VK_NUMPAD3", "0x63"},
{"VK_NUMPAD4", "0x64"},
{"VK_NUMPAD5", "0x65"},
{"VK_NUMPAD6", "0x66"},
{"VK_NUMPAD7", "0x67"},
{"VK_NUMPAD8", "0x68"},
{"VK_NUMPAD9", "0x69"},
{"VK_MULTIPLY", "0x6A"},
{"VK_ADD", "0x6B"},
{"VK_SEPARATOR", "0x6C"},
{"VK_SUBTRACT", "0x6D"},
{"VK_DECIMAL", "0x6E"},
{"VK_DIVIDE", "0x6F"},
{"VK_F1", "0x70"},
{"VK_F2", "0x71"},
{"VK_F3", "0x72"},
{"VK_F4", "0x73"},
{"VK_F5", "0x74"},
{"VK_F6", "0x75"},
{"VK_F7", "0x76"},
{"VK_F8", "0x77"},
{"VK_F9", "0x78"},
{"VK_F10", "0x79"},
{"VK_F11", "0x7A"},
{"VK_F12", "0x7B"},
{"VK_F13", "0x7C"},
{"VK_F14", "0x7D"},
{"VK_F15", "0x7E"},
{"VK_F16", "0x7F"},
{"VK_F17", "0x80"},
{"VK_F18", "0x81"},
{"VK_F19", "0x82"},
{"VK_F20", "0x83"},
{"VK_F21", "0x84"},
{"VK_F22", "0x85"},
{"VK_F23", "0x86"},
{"VK_F24", "0x87"},
{"VK_NUMLOCK", "0x90"},
{"VK_SCROLL", "0x91"},
{"VK_LSHIFT", "0xA0"},
{"VK_RSHIFT", "0xA1"},
{"VK_LCONTROL", "0xA2"},
{"VK_RCONTROL", "0xA3"},
{"VK_LMENU", "0xA4"},
{"VK_RMENU", "0xA5"},
{"VK_BROWSER_BACK", "0xA6"},
{"VK_BROWSER_FORWARD", "0xA7"},
{"VK_BROWSER_REFRESH", "0xA8"},
{"VK_BROWSER_STOP", "0xA9"},
{"VK_BROWSER_SEARCH", "0xAA"},
{"VK_BROWSER_FAVORITES", "0xAB"},
{"VK_BROWSER_HOME", "0xAC"},
{"VK_VOLUME_MUTE", "0xAD"},
{"VK_VOLUME_DOWN", "0xAE"},
{"VK_VOLUME_UP", "0xAF"},
{"VK_MEDIA_NEXT_TRACK", "0xB0"},
{"VK_MEDIA_PREV_TRACK", "0xB1"},
{"VK_MEDIA_STOP", "0xB2"},
{"VK_MEDIA_PLAY_PAUSE", "0xB3"},
{"VK_LAUNCH_MAIL", "0xB4"},
{"VK_LAUNCH_MEDIA_SELECT", "0xB5"},
{"VK_LAUNCH_APP1", "0xB6"},
{"VK_LAUNCH_APP2", "0xB7"},
{"VK_OEM_1", "0xBA"},
{"VK_OEM_PLUS", "0xBB"},
{"VK_OEM_COMMA", "0xBC"},
{"VK_OEM_MINUS", "0xBD"},
{"VK_OEM_PERIOD", "0xBE"},
{"VK_OEM_2", "0xBF"},
{"VK_OEM_3", "0xC0"},
{"VK_OEM_4", "0xDB"},
{"VK_OEM_5", "0xDC"},
{"VK_OEM_6", "0xDD"},
{"VK_OEM_7", "0xDE"},
{"VK_OEM_8", "0xDF"},
{"VK_OEM_102", "0xE2"},
{"VK_PROCESSKEY", "0xE5"},
{"VK_PACKET", "0xE7"},
{"VK_ATTN", "0xF6"},
{"VK_CRSEL", "0xF7"},
{"VK_EXSEL", "0xF8"},
{"VK_EREOF", "0xF9"},
{"VK_PLAY", "0xFA"},
{"VK_ZOOM", "0xFB"},
{"VK_NONAME", "0xFC"},
{"VK_PA1", "0xFD"},
{"VK_OEM_CLEAR", "0xFE"}
};
int main() {
for (const auto& pair : VKEY_Map) {
keybd_event(std::stoi(pair.second, nullptr, 16), 0, 0, 0);
if (GetAsyncKeyState(std::stoi(pair.second, nullptr, 16))) {
std::cout << "[State-Key (" << pair.first << ")] ACTIVE\n";
}
Sleep(5000);
keybd_event(std::stoi(pair.second, nullptr, 16), 0, std::stoi(pair.second, nullptr, 16), 0);
std::cout << "[State-Key (" << pair.first << ")] RELEASED\n";
std::cout << "----------------------------------------------";
}
std::cout << "[!] List finished\n\n";
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment