2 #include "registry.h"
\r
4 typedef HMODULE (WINAPI *FpGetModuleHandleW)(LPCWSTR);
\r
5 typedef FARPROC (WINAPI *FpGetProcAddress)(HMODULE, LPCSTR);
\r
6 typedef BOOL (WINAPI *FpUpdatePerUserSystemParameters)(DWORD, BOOL);
\r
7 typedef HANDLE (WINAPI *FpOpenProcess)(DWORD, BOOL, DWORD);
\r
8 typedef BOOL (WINAPI *FpOpenProcessToken)(HANDLE, DWORD, PHANDLE);
\r
9 typedef BOOL (WINAPI *FpImpersonateLoggedOnUser)(HANDLE);
\r
10 typedef BOOL (WINAPI *FpRevertToSelf)(VOID);
\r
11 typedef BOOL (WINAPI *FpCloseHandle)(HANDLE);
\r
15 TCHAR advapi32_[64];
\r
16 CHAR impersonateLoggedOnUser_[32];
\r
17 CHAR revertToSelf_[32];
\r
18 CHAR openProcessToken_[32];
\r
19 FpGetModuleHandleW pGetModuleHandle;
\r
20 FpGetProcAddress pGetProcAddress;
\r
21 FpUpdatePerUserSystemParameters pUpdate;
\r
22 FpOpenProcess pOpenProcess;
\r
23 FpCloseHandle pCloseHandle;
\r
26 class FixScancodeMap {
\r
36 static const DWORD s_fixEntryNum;
\r
37 static const DWORD s_fixEntry[];
\r
42 LPVOID m_remoteInfo;
\r
50 int acquirePrivileges();
\r
51 DWORD getWinLogonPid();
\r
53 int injectThread(DWORD dwPID);
\r