Key State Brute Forcing Utility
This utility is for the page below. It is automated task completion for this objective in Level 1.
Modify the variable of the hide menu functionalityWhat is this tool?
This tool is basically one giant automator. It will set virtual key code states to true for approximately 5 seconds and keep doing that for every supported by the Windows API function GetAsyncKeyState which is used to catch or capture undocumented features in applications.
WARNING this tool when tested caused a PC to break a little bit (certain objects became unclickable mostly due to the program itself breaking and never releasing or resetting the key state back to 0) - USE WITH CAUTION
How it works
Basically, the tool itself will use two Windows API functions.
keybd_event: This function is used to set the virtual key state to 1 (indicating that the status of the key is active) and also used to reset the virtual key state.GetAsyncKeyState: This function is used between the two times the function above is used and is used to verify that the key state has been set to active. If it has not, no status returns.
When the GetAsyncKeyState function returns its status as true, this indicates that any program using a key state listener will most likely have executed its function based on that key stroke while the program is running.
Source Code
#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;
}Last updated
