собсна можете и на контре и *** знает где юзать =) юзайте батник для запуска. первый параметр - имя процесса, второй - десятичный виртуальный код забинденой клавиши) /* * tinyWh ver 1.0b by sn0w. 2funny@inbox.ru * * speedhack.cpp - build definitions, entrypoint */ #include <windows.h> #include <winnt.h> #include <tlhelp32.h> #pragma optimize("gsy", on) #pragma comment(linker, "/MERGE:.rdata=.data") #pragma comment(linker,"/MERGE:.text=.data") #pragma comment(linker,"/SECTION:.data,ERW") #pragma comment(linker, "/BASE:0x00010000") #pragma comment(linker, "/ENTRY:WinMain") #pragma comment(linker, "/VERSION:1.0") #pragma comment(linker, "/NODEFAULTLIB") #define BASEADDR 0x00010000 #include "inject.h" #include "functions.h" #include "syshook.h" #include "speedhack.h" DWORD WINAPI RMain(LPVOID lpParam /* virtual code */) { // init LoadLibrary("kernel32.dll"); LoadLibrary("msvcrt.dll"); LoadLibrary("user32.dll"); LoadLibrary("advapi32.dll"); SpliceInit(); vKEY = (int)lpParam; //hook QueryPerfTimer InstallSpeedhack(); MessageBox(0, "Speedhack installed",0 ,0); return 0; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char *cmdline = GetCommandLine(); char exename[100], keyname[100], *pname, *kname; int keycode = VK_LBUTTON; pname = exename; kname = keyname; *pname = 0; *kname = 0; while(*cmdline++ != ' '); while(*cmdline != ' ') *pname++=*cmdline++; *pname = 0; cmdline++; while(*cmdline) *kname++=*cmdline++; *kname = 0; if(lstrlen(exename)){ if(lstrlen(keyname)) keycode = atoi(keyname); SetPrivilege("SeDebugPrivilege", TRUE); InjectProcess(RMain, (LPVOID)keycode, exename); } return 0; } [UPD] сорцы тут - http://www.sendspace.com/file/czfxmc