|
|
|
@ -0,0 +1,538 @@
|
|
|
|
|
//
|
|
|
|
|
// License:
|
|
|
|
|
// https://github.com/rapid7/metasploit-framework/blob/master/LICENSE
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#define MAX_PATH 260
|
|
|
|
|
#define MEM_COMMIT 0x00001000
|
|
|
|
|
#define MEM_RESERVE 0x00002000
|
|
|
|
|
#define MEM_RESET 0x00080000
|
|
|
|
|
#define MEM_RESET_UNDO 0x1000000
|
|
|
|
|
#define MEM_LARGE_PAGES 0x20000000
|
|
|
|
|
#define MEM_PHYSICAL 0x00400000
|
|
|
|
|
#define MEM_TOP_DOWN 0x00100000
|
|
|
|
|
#define MEM_WRITE_WATCH 0x00200000
|
|
|
|
|
#define PAGE_EXECUTE_READWRITE 0x00000040
|
|
|
|
|
#define HEAP_GENERATE_EXCEPTIONS 0x00000004
|
|
|
|
|
#define HEAP_NO_SERIALIZE 0x00000001
|
|
|
|
|
#define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010
|
|
|
|
|
#define HEAP_ZERO_MEMORY 0x00000008
|
|
|
|
|
#define STARTF_FORCEONFEEDBACK 0x00000040
|
|
|
|
|
#define STARTF_FORCEOFFFEEDBACK 0x00000080
|
|
|
|
|
#define STARTF_PREVENTPINNING 0x00002000
|
|
|
|
|
#define STARTF_RUNFULLSCREEN 0x00000020
|
|
|
|
|
#define STARTF_TITLEISAPPID 0x00001000
|
|
|
|
|
#define STARTF_TITLEISLINKNAME 0x00000800
|
|
|
|
|
#define STARTF_USECOUNTCHARS 0x00000008
|
|
|
|
|
#define STARTF_USEFILLATTRIBUTE 0x00000010
|
|
|
|
|
#define STARTF_USEHOTKEY 0x00000200
|
|
|
|
|
#define STARTF_USEPOSITION 0x00000004
|
|
|
|
|
#define STARTF_USESHOWWINDOW 0x00000001
|
|
|
|
|
#define STARTF_USESIZE 0x00000002
|
|
|
|
|
#define STARTF_USESTDHANDLES 0x00000100
|
|
|
|
|
#define GW_CHILD 5
|
|
|
|
|
#define GW_ENABLEDPOPUP 6
|
|
|
|
|
#define GW_HWNDFIRST 0
|
|
|
|
|
#define GW_HWNDLAST 1
|
|
|
|
|
#define GW_HWNDNEXT 2
|
|
|
|
|
#define GW_OWNER 4
|
|
|
|
|
#define MB_ABORTRETRYIGNORE 0x00000002L
|
|
|
|
|
#define MB_CANCELTRYCONTINUE 0x00000006L
|
|
|
|
|
#define MB_HELP 0x00004000L
|
|
|
|
|
#define MB_OK 0x00000000L
|
|
|
|
|
#define MB_OKCANCEL 0x00000001L
|
|
|
|
|
#define MB_RETRYCANCEL 0x00000005L
|
|
|
|
|
#define MB_YESNO 0x00000004L
|
|
|
|
|
#define MB_YESNOCANCEL 0x00000003L
|
|
|
|
|
#define MB_ICONEXCLAMATION 0x00000030L
|
|
|
|
|
#define MB_ICONWARNING 0x00000030L
|
|
|
|
|
#define MB_ICONINFORMATION 0x00000040L
|
|
|
|
|
#define MB_ICONASTERISK 0x00000040L
|
|
|
|
|
#define MB_ICONQUESTION 0x00000020L
|
|
|
|
|
#define MB_ICONSTOP 0x00000010L
|
|
|
|
|
#define MB_ICONERROR 0x00000010L
|
|
|
|
|
#define MB_ICONHAND 0x00000010L
|
|
|
|
|
#define MB_DEFBUTTON1 0x00000000L
|
|
|
|
|
#define MB_DEFBUTTON2 0x00000100L
|
|
|
|
|
#define MB_DEFBUTTON3 0x00000200L
|
|
|
|
|
#define MB_DEFBUTTON4 0x00000300L
|
|
|
|
|
#define MB_APPLMODAL 0x00000000L
|
|
|
|
|
#define MB_SYSTEMMODAL 0x00001000L
|
|
|
|
|
#define MB_TASKMODAL 0x00002000L
|
|
|
|
|
#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
|
|
|
|
|
#define MB_RIGHT 0x00080000L
|
|
|
|
|
#define MB_RTLREADING 0x00100000L
|
|
|
|
|
#define MB_SETFOREGROUND 0x00010000L
|
|
|
|
|
#define MB_TOPMOST 0x00040000L
|
|
|
|
|
#define MB_SERVICE_NOTIFICATION 0x00200000L
|
|
|
|
|
#define IDABORT 3
|
|
|
|
|
#define IDCANCEL 2
|
|
|
|
|
#define IDCONTINUE 11
|
|
|
|
|
#define IDIGNORE 5
|
|
|
|
|
#define IDNO 7
|
|
|
|
|
#define IDOK 1
|
|
|
|
|
#define IDRETRY 4
|
|
|
|
|
#define IDTRYAGAIN 10
|
|
|
|
|
#define IDYES 6
|
|
|
|
|
#define HEAP_CREATE_ENABLE_EXECUTE 0x00040000
|
|
|
|
|
#define SC_MANAGER_ALL_ACCESS 0xf003f
|
|
|
|
|
#define SC_MANAGER_CONNECT 1
|
|
|
|
|
#define SC_MANAGER_CREATE_SERVICE 2
|
|
|
|
|
#define SC_MANAGER_ENUMERATE_SERVICE 4
|
|
|
|
|
#define SC_MANAGER_LOCK 8
|
|
|
|
|
#define SC_MANAGER_QUERY_LOCK_STATUS 16
|
|
|
|
|
#define SC_MANAGER_MODIFY_BOOT_CONFIG 32
|
|
|
|
|
#define SERVICE_NO_CHANGE (-1)
|
|
|
|
|
#define SERVICE_STOPPED 1
|
|
|
|
|
#define SERVICE_START_PENDING 2
|
|
|
|
|
#define SERVICE_STOP_PENDING 3
|
|
|
|
|
#define SERVICE_RUNNING 4
|
|
|
|
|
#define SERVICE_CONTINUE_PENDING 5
|
|
|
|
|
#define SERVICE_PAUSE_PENDING 6
|
|
|
|
|
#define SERVICE_PAUSED 7
|
|
|
|
|
#define SERVICE_ACCEPT_STOP 1
|
|
|
|
|
#define SERVICE_ACCEPT_PAUSE_CONTINUE 2
|
|
|
|
|
#define SERVICE_ACCEPT_SHUTDOWN 4
|
|
|
|
|
#define SERVICE_CONTROL_STOP 1
|
|
|
|
|
#define SERVICE_CONTROL_PAUSE 2
|
|
|
|
|
#define SERVICE_CONTROL_CONTINUE 3
|
|
|
|
|
#define SERVICE_CONTROL_INTERROGATE 4
|
|
|
|
|
#define SERVICE_CONTROL_SHUTDOWN 5
|
|
|
|
|
#define SERVICE_ACTIVE 1
|
|
|
|
|
#define SERVICE_INACTIVE 2
|
|
|
|
|
#define SERVICE_STATE_ALL 3
|
|
|
|
|
#define SERVICE_QUERY_CONFIG 1
|
|
|
|
|
#define SERVICE_CHANGE_CONFIG 2
|
|
|
|
|
#define SERVICE_QUERY_STATUS 4
|
|
|
|
|
#define SERVICE_ENUMERATE_DEPENDENTS 8
|
|
|
|
|
#define SERVICE_START 16
|
|
|
|
|
#define SERVICE_STOP 32
|
|
|
|
|
#define SERVICE_PAUSE_CONTINUE 64
|
|
|
|
|
#define SERVICE_INTERROGATE 128
|
|
|
|
|
#define SERVICE_USER_DEFINED_CONTROL 256
|
|
|
|
|
#define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG|SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS|SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START|SERVICE_STOP|SERVICE_PAUSE_CONTINUE|SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL)
|
|
|
|
|
#define GHND 0x0042
|
|
|
|
|
#define GMEM_FIXED 0x0000
|
|
|
|
|
#define GMEM_MOVEABLE 0x0002
|
|
|
|
|
#define GMEM_ZEROINIT 0x0040
|
|
|
|
|
#define GPTR 0x0040
|
|
|
|
|
#define WH_CALLWNDPROC 4
|
|
|
|
|
#define WH_CALLWNDPROCRET 12
|
|
|
|
|
#define WH_CBT 5
|
|
|
|
|
#define WH_DEBUG 9
|
|
|
|
|
#define WH_FOREGROUNDIDLE 11
|
|
|
|
|
#define WH_GETMESSAGE 3
|
|
|
|
|
#define WH_JOURNALPLAYBACK 1
|
|
|
|
|
#define WH_JOURNALRECORD 0
|
|
|
|
|
#define WH_KEYBOARD 2
|
|
|
|
|
#define WH_KEYBOARD_LL 13
|
|
|
|
|
#define WH_MOUSE 7
|
|
|
|
|
#define WH_MOUSE_LL 14
|
|
|
|
|
#define WH_MSGFILTER -1
|
|
|
|
|
#define WH_SHELL 10
|
|
|
|
|
#define WH_SYSMSGFILTER 6
|
|
|
|
|
#define GENERIC_READ 0x80000000
|
|
|
|
|
#define GENERIC_WRITE 0x40000000
|
|
|
|
|
#define GENERIC_EXECUTE 0x20000000
|
|
|
|
|
#define GENERIC_ALL 0x10000000
|
|
|
|
|
#define FILE_SHARE_READ 0x00000001
|
|
|
|
|
#define FILE_SHARE_WRITE 0x00000002
|
|
|
|
|
#define FILE_SHARE_DELETE 0x00000004
|
|
|
|
|
#define CREATE_NEW 1
|
|
|
|
|
#define CREATE_ALWAYS 2
|
|
|
|
|
#define OPEN_EXISTING 3
|
|
|
|
|
#define OPEN_ALWAYS 4
|
|
|
|
|
#define TRUNCATE_EXISTING 5
|
|
|
|
|
#define FILE_ATTRIBUTE_READONLY 0x00000001
|
|
|
|
|
#define FILE_ATTRIBUTE_NORMAL 0x00000080
|
|
|
|
|
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
|
|
|
|
|
#define FILE_FLAG_WRITE_THROUGH 0x80000000
|
|
|
|
|
#define FILE_FLAG_NO_BUFFERING 0x20000000
|
|
|
|
|
#define FILE_FLAG_RANDOM_ACCESS 0x10000000
|
|
|
|
|
#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
|
|
|
|
|
#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
|
|
|
|
|
#define FILE_FLAG_OVERLAPPED 0x40000000
|
|
|
|
|
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
|
|
|
|
|
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
|
|
|
|
|
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
|
|
|
|
|
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
|
|
|
|
|
#define FILE_ATTRIBUTE_DEVICE 0x00000040
|
|
|
|
|
#define ERROR_FILE_NOT_FOUND 2L
|
|
|
|
|
#define ERROR_NO_MORE_FILES 18L
|
|
|
|
|
#define INVALID_HANDLE_VALUE ((HANDLE) -1)
|
|
|
|
|
#define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF)
|
|
|
|
|
#define FILE_NAME_NORMALIZED 0x0
|
|
|
|
|
#define FILE_NAME_OPENED 0x8
|
|
|
|
|
#define VOLUME_NAME_DOS 0x0
|
|
|
|
|
#define VOLUME_NAME_GUID 0x1
|
|
|
|
|
#define VOLUME_NAME_NONE 0x4
|
|
|
|
|
#define VOLUME_NAME_NT 0x2
|
|
|
|
|
#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
|
|
|
|
|
#define SERVICE_KERNEL_DRIVER 0x00000001
|
|
|
|
|
#define SERVICE_WIN32_OWN_PROCESS 0x00000010
|
|
|
|
|
#define SERVICE_WIN32_SHARE_PROCESS 0x00000020
|
|
|
|
|
#define SERVICE_USER_OWN_PROCESS 0x00000050
|
|
|
|
|
#define SERVICE_USER_SHARE_PROCESS 0x00000060
|
|
|
|
|
#define SERVICE_INTERACTIVE_PROCESS 0x00000100
|
|
|
|
|
#define SERVICE_CONTINUE_PENDING 0x00000005
|
|
|
|
|
#define SERVICE_PAUSE_PENDING 0x00000006
|
|
|
|
|
#define SERVICE_PAUSED 0x00000007
|
|
|
|
|
#define SERVICE_RUNNING 0x00000004
|
|
|
|
|
#define SERVICE_START_PENDING 0x00000002
|
|
|
|
|
#define SERVICE_STOP_PENDING 0x00000003
|
|
|
|
|
#define SERVICE_STOPPED 0x00000001
|
|
|
|
|
#define SERVICE_AUTO_START 0x00000002
|
|
|
|
|
#define SERVICE_BOOT_START 0x00000000
|
|
|
|
|
#define SERVICE_DEMAND_START 0x00000003
|
|
|
|
|
#define SERVICE_DISABLED 0x00000004
|
|
|
|
|
#define SERVICE_SYSTEM_START 0x00000001
|
|
|
|
|
#define SERVICE_ERROR_CRITICAL 0x00000003
|
|
|
|
|
#define SERVICE_ERROR_IGNORE 0x00000000
|
|
|
|
|
#define SERVICE_ERROR_NORMAL 0x00000001
|
|
|
|
|
#define SERVICE_ERROR_SEVERE 0x00000002
|
|
|
|
|
#define SERVICE_DRIVER 0x0000000B
|
|
|
|
|
#define SERVICE_FILE_SYSTEM_DRIVER 0x00000002
|
|
|
|
|
#define SERVICE_KERNEL_DRIVER 0x00000001
|
|
|
|
|
#define SERVICE_WIN32 0x00000030
|
|
|
|
|
#define SERVICE_WIN32_OWN_PROCESS 0x00000010
|
|
|
|
|
#define SERVICE_WIN32_SHARE_PROCESS 0x00000020
|
|
|
|
|
|
|
|
|
|
typedef struct _SECURITY_ATTRIBUTES {
|
|
|
|
|
DWORD nLength;
|
|
|
|
|
LPVOID lpSecurityDescriptor;
|
|
|
|
|
BOOL bInheritHandle;
|
|
|
|
|
} SECURITY_ATTRIBUTES , *LPSECURITY_ATTRIBUTES;
|
|
|
|
|
|
|
|
|
|
typedef struct _LPTHREAD_START_ROUTINE {
|
|
|
|
|
LPVOID lpThreadParameter;
|
|
|
|
|
} LPTHREAD_START_ROUTINE, *LPTHREAD_START_ROUTINE;
|
|
|
|
|
|
|
|
|
|
typedef struct _STARTUPINFO {
|
|
|
|
|
DWORD cb;
|
|
|
|
|
LPTSTR lpReserved;
|
|
|
|
|
LPTSTR lpDesktop;
|
|
|
|
|
LPTSTR lpTitle;
|
|
|
|
|
DWORD dwX;
|
|
|
|
|
DWORD dwY;
|
|
|
|
|
DWORD dwXSize;
|
|
|
|
|
DWORD dwYSize;
|
|
|
|
|
DWORD dwXCountChars;
|
|
|
|
|
DWORD dwYCountChars;
|
|
|
|
|
DWORD dwFillAttribute;
|
|
|
|
|
DWORD dwFlags;
|
|
|
|
|
WORD wShowWindow;
|
|
|
|
|
WORD cbReserved2;
|
|
|
|
|
LPBYTE lpReserved2;
|
|
|
|
|
HANDLE hStdInput;
|
|
|
|
|
HANDLE hStdOutput;
|
|
|
|
|
HANDLE hStdError;
|
|
|
|
|
} STARTUPINFO, *LPSTARTUPINFO;
|
|
|
|
|
|
|
|
|
|
typedef struct _PROCESS_INFORMATION {
|
|
|
|
|
HANDLE hProcess;
|
|
|
|
|
HANDLE hThread;
|
|
|
|
|
DWORD dwProcessId;
|
|
|
|
|
DWORD dwThreadId;
|
|
|
|
|
} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
|
|
|
|
|
|
|
|
|
|
typedef struct _OVERLAPPED {
|
|
|
|
|
ULONG_PTR Internal;
|
|
|
|
|
ULONG_PTR InternalHigh;
|
|
|
|
|
union {
|
|
|
|
|
struct {
|
|
|
|
|
DWORD Offset;
|
|
|
|
|
DWORD OffsetHigh;
|
|
|
|
|
};
|
|
|
|
|
PVOID Pointer;
|
|
|
|
|
};
|
|
|
|
|
HANDLE hEvent;
|
|
|
|
|
} OVERLAPPED, *LPOVERLAPPED;
|
|
|
|
|
|
|
|
|
|
typedef DWORD SERVICE_STATUS_HANDLE;
|
|
|
|
|
|
|
|
|
|
typedef enum _SC_ENUM_TYPE {
|
|
|
|
|
SC_ENUM_PROCESS_INFO = 0
|
|
|
|
|
} SC_ENUM_TYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum _HEAP_INFORMATION_CLASS {
|
|
|
|
|
HeapCompatibilityInformation = 0,
|
|
|
|
|
HeapEnableTerminationOnCorruption = 1
|
|
|
|
|
} HEAP_INFORMATION_CLASS;
|
|
|
|
|
|
|
|
|
|
typedef struct _FILETIME {
|
|
|
|
|
DWORD dwLowDateTime;
|
|
|
|
|
DWORD dwHighDateTime;
|
|
|
|
|
} FILETIME, *PFILETIME;
|
|
|
|
|
|
|
|
|
|
typedef struct _WIN32_FIND_DATA {
|
|
|
|
|
DWORD dwFileAttributes;
|
|
|
|
|
FILETIME ftCreationTime;
|
|
|
|
|
FILETIME ftLastAccessTime;
|
|
|
|
|
FILETIME ftLastWriteTime;
|
|
|
|
|
DWORD nFileSizeHigh;
|
|
|
|
|
DWORD nFileSizeLow;
|
|
|
|
|
DWORD dwReserved0;
|
|
|
|
|
DWORD dwReserved1;
|
|
|
|
|
TCHAR cFileName[MAX_PATH];
|
|
|
|
|
TCHAR cAlternateFileName[14];
|
|
|
|
|
} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
|
|
|
|
|
|
|
|
|
|
typedef struct tagPOINT {
|
|
|
|
|
LONG x;
|
|
|
|
|
LONG y;
|
|
|
|
|
} POINT, *PPOINT;
|
|
|
|
|
|
|
|
|
|
typedef struct tagMSG {
|
|
|
|
|
HWND hwnd;
|
|
|
|
|
UINT message;
|
|
|
|
|
WPARAM wParam;
|
|
|
|
|
LPARAM lParam;
|
|
|
|
|
DWORD time;
|
|
|
|
|
POINT pt;
|
|
|
|
|
} MSG, *PMSG, *LPMSG;
|
|
|
|
|
|
|
|
|
|
typedef struct _BY_HANDLE_FILE_INFORMATION {
|
|
|
|
|
DWORD dwFileAttributes;
|
|
|
|
|
FILETIME ftCreationTime;
|
|
|
|
|
FILETIME ftLastAccessTime;
|
|
|
|
|
FILETIME ftLastWriteTime;
|
|
|
|
|
DWORD dwVolumeSerialNumber;
|
|
|
|
|
DWORD nFileSizeHigh;
|
|
|
|
|
DWORD nFileSizeLow;
|
|
|
|
|
DWORD nNumberOfLinks;
|
|
|
|
|
DWORD nFileIndexHigh;
|
|
|
|
|
DWORD nFileIndexLow;
|
|
|
|
|
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
|
|
|
|
|
|
|
|
|
|
typedef struct _SERVICE_STATUS {
|
|
|
|
|
DWORD dwServiceType;
|
|
|
|
|
DWORD dwCurrentState;
|
|
|
|
|
DWORD dwControlsAccepted;
|
|
|
|
|
DWORD dwWin32ExitCode;
|
|
|
|
|
DWORD dwServiceSpecificExitCode;
|
|
|
|
|
DWORD dwCheckPoint;
|
|
|
|
|
DWORD dwWaitHint;
|
|
|
|
|
} SERVICE_STATUS, *LPSERVICE_STATUS;
|
|
|
|
|
|
|
|
|
|
typedef struct _ENUM_SERVICE_STATUS {
|
|
|
|
|
LPTSTR lpServiceName;
|
|
|
|
|
LPTSTR lpDisplayName;
|
|
|
|
|
SERVICE_STATUS ServiceStatus;
|
|
|
|
|
} ENUM_SERVICE_STATUS, *LPENUM_SERVICE_STATUS;
|
|
|
|
|
|
|
|
|
|
typedef VOID (CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED);
|
|
|
|
|
|
|
|
|
|
typedef enum _PROCESSINFOCLASS {
|
|
|
|
|
ProcessBasicInformation = 0,
|
|
|
|
|
ProcessQuotaLimits = 1,
|
|
|
|
|
ProcessIoCounters = 2,
|
|
|
|
|
ProcessVmCounters = 3,
|
|
|
|
|
ProcessTimes = 4,
|
|
|
|
|
ProcessBasePriority = 5,
|
|
|
|
|
ProcessRaisePriority = 6,
|
|
|
|
|
ProcessDebugPort = 7,
|
|
|
|
|
ProcessExceptionPort = 8,
|
|
|
|
|
ProcessAccessToken = 9,
|
|
|
|
|
ProcessLdtInformation = 10,
|
|
|
|
|
ProcessLdtSize = 11,
|
|
|
|
|
ProcessDefaultHardErrorMode = 12,
|
|
|
|
|
ProcessIoPortHandlers = 13,
|
|
|
|
|
ProcessPooledUsageAndLimits = 14,
|
|
|
|
|
ProcessWorkingSetWatch = 15,
|
|
|
|
|
ProcessUserModeIOPL = 16,
|
|
|
|
|
ProcessEnableAlignmentFaultFixup = 17,
|
|
|
|
|
ProcessPriorityClass = 18,
|
|
|
|
|
ProcessWx86Information = 19,
|
|
|
|
|
ProcessHandleCount = 20,
|
|
|
|
|
ProcessAffinityMask = 21,
|
|
|
|
|
ProcessPriorityBoost = 22,
|
|
|
|
|
ProcessDeviceMap = 23,
|
|
|
|
|
ProcessSessionInformation = 24,
|
|
|
|
|
ProcessForegroundInformation = 25,
|
|
|
|
|
ProcessWow64Information = 26,
|
|
|
|
|
ProcessImageFileName = 27,
|
|
|
|
|
ProcessLUIDDeviceMapsEnabled = 28,
|
|
|
|
|
ProcessBreakOnTermination = 29,
|
|
|
|
|
ProcessDebugObjectHandle = 30,
|
|
|
|
|
ProcessDebugFlags = 31,
|
|
|
|
|
ProcessHandleTracing = 32,
|
|
|
|
|
ProcessIoPriority = 33,
|
|
|
|
|
ProcessExecuteFlags = 34,
|
|
|
|
|
ProcessTlsInformation = 35,
|
|
|
|
|
ProcessCookie = 36,
|
|
|
|
|
ProcessImageInformation = 37,
|
|
|
|
|
ProcessCycleTime = 38,
|
|
|
|
|
ProcessPagePriority = 39,
|
|
|
|
|
ProcessInstrumentationCallback = 40,
|
|
|
|
|
ProcessThreadStackAllocation = 41,
|
|
|
|
|
ProcessWorkingSetWatchEx = 42,
|
|
|
|
|
ProcessImageFileNameWin32 = 43,
|
|
|
|
|
ProcessImageFileMapping = 44,
|
|
|
|
|
ProcessAffinityUpdateMode = 45,
|
|
|
|
|
ProcessMemoryAllocationMode = 46,
|
|
|
|
|
ProcessGroupInformation = 47,
|
|
|
|
|
ProcessTokenVirtualizationEnabled = 48,
|
|
|
|
|
ProcessOwnerInformation = 49,
|
|
|
|
|
ProcessWindowInformation = 50,
|
|
|
|
|
ProcessHandleInformation = 51,
|
|
|
|
|
ProcessMitigationPolicy = 52,
|
|
|
|
|
ProcessDynamicFunctionTableInformation = 53,
|
|
|
|
|
ProcessHandleCheckingMode = 54,
|
|
|
|
|
ProcessKeepAliveCount = 55,
|
|
|
|
|
ProcessRevokeFileHandles = 56,
|
|
|
|
|
ProcessWorkingSetControl = 57,
|
|
|
|
|
ProcessHandleTable = 58,
|
|
|
|
|
ProcessCheckStackExtentsMode = 59,
|
|
|
|
|
ProcessCommandLineInformation = 60,
|
|
|
|
|
ProcessProtectionInformation = 61,
|
|
|
|
|
ProcessMemoryExhaustion = 62,
|
|
|
|
|
ProcessFaultInformation = 63,
|
|
|
|
|
ProcessTelemetryIdInformation = 64,
|
|
|
|
|
ProcessCommitReleaseInformation = 65,
|
|
|
|
|
ProcessReserved1Information = 66,
|
|
|
|
|
ProcessReserved2Information = 67,
|
|
|
|
|
ProcessSubsystemProcess = 68,
|
|
|
|
|
ProcessInPrivate = 70,
|
|
|
|
|
ProcessRaiseUMExceptionOnInvalidHandleClose = 71,
|
|
|
|
|
MaxProcessInfoClass
|
|
|
|
|
} PROCESSINFOCLASS;
|
|
|
|
|
|
|
|
|
|
typedef enum _FINDEX_INFO_LEVELS {
|
|
|
|
|
FindExInfoStandard,
|
|
|
|
|
FindExInfoBasic,
|
|
|
|
|
FindExInfoMaxInfoLevel
|
|
|
|
|
} FINDEX_INFO_LEVELS;
|
|
|
|
|
|
|
|
|
|
typedef enum _FINDEX_SEARCH_OPS {
|
|
|
|
|
FindExSearchNameMatch,
|
|
|
|
|
FindExSearchLimitToDirectories,
|
|
|
|
|
FindExSearchLimitToDevices
|
|
|
|
|
} FINDEX_SEARCH_OPS;
|
|
|
|
|
|
|
|
|
|
WORD MAKEWORD(
|
|
|
|
|
BYTE bLow,
|
|
|
|
|
BYTE bHigh
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
WINAPI void OutputDebugString __attribute__((dllimport))(LPCTSTR);
|
|
|
|
|
WINAPI HGLOBAL GlobalAlloc __attribute__((dllimport))(UINT, size_t);
|
|
|
|
|
WINAPI LPVOID GlobalLock __attribute__((dllimport))(HGLOBAL);
|
|
|
|
|
WINAPI BOOL GlobalUnlock __attribute__((dllimport))(HGLOBAL);
|
|
|
|
|
WINAPI HGLOBAL GlobalReAlloc __attribute__((dllimport))(HGLOBAL, size_t, UINT);
|
|
|
|
|
WINAPI HGLOBAL GlobalFree __attribute__((dllimport))(HGLOBAL);
|
|
|
|
|
WINAPI DWORD GetLastError __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI LPVOID VirtualAlloc __attribute__((dllimport))(LPVOID, size_t, DWORD, DWORD);
|
|
|
|
|
WINAPI LPVOID VirtualAllocEx __attribute__((dllimport))(HANDLE, LPVOID, size_t, DWORD, DWORD);
|
|
|
|
|
WINAPI BOOL VirtualProtect __attribute__((dllimport))(LPVOID, size_t, DWORD, PDWORD);
|
|
|
|
|
WINAPI BOOL VirtualProtectEx __attribute__((dllimport))(HANDLE, LPVOID, size_t, DWORD, PDWORD);
|
|
|
|
|
WINAPI HANDLE GetProcessHeap __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI DWORD GetProcessHeaps __attribute__((dllimport))(DWORD, PHANDLE);
|
|
|
|
|
WINAPI HANDLE HeapCreate __attribute__((dllimport))(DWORD, size_t, size_t);
|
|
|
|
|
WINAPI LPVOID HeapAlloc __attribute__((dllimport))(HANDLE, DWORD, size_t);
|
|
|
|
|
WINAPI size_t HeapSize __attribute__((dllimport))(HANDLE, DWORD, LPCVOID);
|
|
|
|
|
WINAPI LPVOID HeapreAlloc __attribute__((dllimport))(HANDLE, DWORD, LPVOID, size_t);
|
|
|
|
|
WINAPI BOOL HeapFree __attribute__((dllimport))(HANDLE, DWORD, LPVOID);
|
|
|
|
|
WINAPI BOOL HeapQueryInformation __attribute__((dllimport))(HANDLE, HEAP_INFORMATION_CLASS, PVOID, size_t, PSIZE_T);
|
|
|
|
|
WINAPI BOOL HeapSetInformation __attribute__((dllimport))(HANDLE, HEAP_INFORMATION_CLASS, PVOID, size_t);
|
|
|
|
|
WINAPI BOOL VirtualFreeEx __attribute__((dllimport))(HANDLE, LPVOID, size_t, DWORD);
|
|
|
|
|
WINAPI void MoveMemory __attribute__((dllimport))(PVOID, void*, size_t);
|
|
|
|
|
WINAPI BOOL WriteProcessMemory __attribute__((dllimport))(HANDLE, LPVOID, LPCVOID, size_t, size_t*);
|
|
|
|
|
WINAPI BOOL ReadProcessMemory __attribute__((dllimport))(HANDLE, LPCVOID, LPVOID, size_t, size_t*);
|
|
|
|
|
WINAPI HANDLE CreateThread __attribute__((dllimport))(LPSECURITY_ATTRIBUTES, size_t, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD );
|
|
|
|
|
WINAPI HANDLE CreateRemoteThread __attribute__((dllimport))(HANDLE, LPSECURITY_ATTRIBUTES, size_t, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD );
|
|
|
|
|
WINAPI void ZeroMemory __attribute__((dllimport))(PVOID, size_t);
|
|
|
|
|
WINAPI DWORD GetProcessId __attribute__((dllimport))(HANDLE);
|
|
|
|
|
WINAPI BOOL CreateProcess __attribute__((dllimport))(LPCTSTR, LPTSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCTSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
|
|
|
|
|
WINAPI BOOL CreateProcessAsUser __attribute__((dllimport))(HANDLE, LPCTSTR, LPTSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCTSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION);
|
|
|
|
|
WINAPI HANDLE OpenProcess __attribute__((dllimport))(DWORD, BOOL, DWORD);
|
|
|
|
|
WINAPI void ExitProcess __attribute__((dllimport))(UINT);
|
|
|
|
|
WINAPI BOOL TerminateProcess __attribute__((dllimport))(UINT);
|
|
|
|
|
WINAPI DWORD GetTickCount __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI void Sleep __attribute__((dllimport))(DWORD);
|
|
|
|
|
WINAPI UINT WinExec __attribute__((dllimport))(LPCSTR, UINT);
|
|
|
|
|
WINAPI DWORD WaitForSingleObject __attribute__((dllimport))(HANDLE, DWORD);
|
|
|
|
|
WINAPI FARPROC GetProcAddress __attribute__((dllimport))(HMODULE, LPCSTR);
|
|
|
|
|
WINAPI HMODULE LoadLibrary __attribute__((dllimport))(LPCTSTR);
|
|
|
|
|
WINAPI HMODULE GetModuleHandle __attribute__((dllimport))(LPCTSTR);
|
|
|
|
|
WINAPI HANDLE CreateFile __attribute__((dllimport))(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
|
|
|
|
|
WINAPI BOOL GetFileInformationByHandle __attribute__((dllimport))(HANDLE, LPBY_HANDLE_FILE_INFORMATION);
|
|
|
|
|
WINAPI DWORD GetFullPathName __attribute__((dllimport))(LPCTSTR, DWORD, LPTSTR, LPTSTR*);
|
|
|
|
|
WINAPI DWORD GetFileType __attribute__((dllimport))(HANDLE);
|
|
|
|
|
WINAPI BOOL MoveFile __attribute__((dllimport))(LPCTSTR, LPCTSTR);
|
|
|
|
|
WINAPI BOOL DeleteFile __attribute__((dllimport))(LPCTSTR);
|
|
|
|
|
WINAPI BOOL CopyFile __attribute__((dllimport))(LPCTSTR, LPCTSTR, BOOL);
|
|
|
|
|
WINAPI BOOL WriteFile __attribute__((dllimport))(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
|
|
|
|
|
WINAPI BOOL ReadFile __attribute__((dllimport))(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
|
|
|
|
|
WINAPI BOOL ReadFileEx __attribute__((dllimport))(HANDLE, LPVOID, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE);
|
|
|
|
|
WINAPI DWORD GetFileSize __attribute__((dllimport))(HANDLE, LPDWORD);
|
|
|
|
|
WINAPI DWORD GetTempPath __attribute__((dllimport))(DWORD, LPTSTR);
|
|
|
|
|
WINAPI UINT GetTempFileName __attribute__((dllimport))(LPCTSTR, LPCTSTR, UINT, LPTSTR);
|
|
|
|
|
WINAPI DWORD GetShortPathName __attribute__((dllimport))(LPCTSTR, LPTSTR, DWORD);
|
|
|
|
|
WINAPI DWORD GetLongPathName __attribute__((dllimport))(LPCTSTR, LPTSTR, DWORD);
|
|
|
|
|
WINAPI INT GetExpandedName __attribute__((dllimport))(LPTSTR, LPTSTR);
|
|
|
|
|
WINAPI DWORD GetFinalPathNameByHandle __attribute__((dllimport))(HANDLE, LPTSTR, DWORD, DWORD);
|
|
|
|
|
WINAPI BOOL LockFile __attribute__((dllimport))(HANDLE, DWORD, DWORD, DWORD, DWORD);
|
|
|
|
|
WINAPI BOOL UnlockFile __attribute__((dllimport))(HANDLE, DWORD, DWORD, DWORD, DWORD);
|
|
|
|
|
WINAPI BOOL UnlockFileEx __attribute__((dllimport))(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED);
|
|
|
|
|
WINAPI BOOL FreeLibrary __attribute__((dllimport))(HMODULE);
|
|
|
|
|
WINAPI DWORD GetModuleFileName __attribute__((dllimport))(HMODULE, LPTSTR, DWORD);
|
|
|
|
|
WINAPI BOOL CloseHandle __attribute__((dllimport))(HANDLE);
|
|
|
|
|
WINAPI void DebugBreak __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI HWND FindWindow __attribute__((dllimport))(LPCTSTR, LPCTSTR);
|
|
|
|
|
WINAPI HWND FindWindowEx __attribute__((dllimport))(HWND, HWND, LPCTSTR, LPCTSTR);
|
|
|
|
|
WINAPI HWND GetWindow __attribute__((dllimport))(HWND, UINT);
|
|
|
|
|
WINAPI HWND GetForegroundWindow __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI BOOL SetForegroundWindow __attribute__((dllimport))(HWND);
|
|
|
|
|
WINAPI HWND GetDesktopWindow __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI HWND SetActiveWindow __attribute__((dllimport))(HWND);
|
|
|
|
|
WINAPI BOOL IsWindowEnabled __attribute__((dllimport))(HWND);
|
|
|
|
|
WINAPI HWND SetFocus __attribute__((dllimport))(HWND);
|
|
|
|
|
WINAPI BOOL MoveWindow __attribute__((dllimport))(HWND, int, int, int, int, BOOL);
|
|
|
|
|
WINAPI int MessageBox __attribute__((dllimport))(HWND, LPCTSTR, LPCTSTR, UINT);
|
|
|
|
|
WINAPI BOOL Beep __attribute__((dllimport))(DWORD, DWORD);
|
|
|
|
|
WINAPI BOOL CreateDirectory __attribute__((dllimport))(LPCTSTR, LPSECURITY_ATTRIBUTES);
|
|
|
|
|
WINAPI HANDLE CreateFileMapping __attribute__((dllimport))(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCTSTR);
|
|
|
|
|
WINAPI LPVOID MapViewOfFile __attribute__((dllimport))(HANDLE, DWORD, DWORD, DWORD, size_t);
|
|
|
|
|
WINAPI LPVOID MapViewOfFileEx __attribute__((dllimport))(HANDLE, DWORD, DWORD, DWORD, size_t, LPVOID);
|
|
|
|
|
WINAPI BOOL FindClose __attribute__((dllimport))(HANDLE);
|
|
|
|
|
WINAPI HANDLE FindFirstFile __attribute__((dllimport))(LPCTSTR, LPWIN32_FIND_DATA);
|
|
|
|
|
WINAPI HANDLE FindFirstFileEx __attribute__((dllimport))(LPCTSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD);
|
|
|
|
|
WINAPI BOOL FindNextFile __attribute__((dllimport))(HANDLE, LPWIN32_FIND_DATA);
|
|
|
|
|
WINAPI HANDLE GetCurrentProcess __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI HANDLE GetCurrentThread __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI LRESULT CallNextHookEx __attribute__((dllimport))(HHOOK, int, WPARAM, LPARAM);
|
|
|
|
|
WINAPI BOOL GetMessage __attribute__((dllimport))(LPMSG, HWND, UINT, UINT);
|
|
|
|
|
WINAPI BOOL PostMessage __attribute__((dllimport))(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
|
WINAPI LRESULT SendMessage __attribute__((dllimport))(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
|
WINAPI SC_HANDLE OpenSCManager __attribute__((dllimport))(LPCTSTR, LPCTSTR, DWORD);
|
|
|
|
|
WINAPI BOOL StartService __attribute__((dllimport))(SC_HANDLE, DWORD, LPCTSTR*);
|
|
|
|
|
WINAPI BOOL SetServiceStatus __attribute__((dllimport))(SERVICE_STATUS_HANDLE, LPSERVICE_STATUS);
|
|
|
|
|
WINAPI SC_HANDLE CreateService __attribute__((dllimport))(SC_HANDLE, LPCTSTR, LPCTSTR, DWORD, DWORD, DWORD, DWORD, LPCTSTR, LPCTSTR, LPDWORD, LPCTSTR, LPCTSTR, LPCTSTR);
|
|
|
|
|
WINAPI SC_HANDLE OpenService __attribute__((dllimport))(SC_HANDLE, LPCTSTR, DWORD);
|
|
|
|
|
WINAPI BOOL ChangeServiceConfig __attribute__((dllimport))(SC_HANDLE, DWORD, DWORD, DWORD, LPCTSTR, LPCTSTR, LPDWORD, LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR);
|
|
|
|
|
WINAPI BOOL DeleteService __attribute__((dllimport))(SC_HANDLE);
|
|
|
|
|
WINAPI BOOL EnumServicesStatus __attribute__((dllimport))(SC_HANDLE, DWORD, DWORD, LPENUM_SERVICE_STATUS, DWORD, LPDWORD, LPDWORD, LPDWORD);
|
|
|
|
|
WINAPI BOOL EnumServicesStatusEx __attribute__((dllimport))(SC_HANDLE, SC_ENUM_TYPE, DWORD, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD, LPDWORD, LPCTSTR);
|
|
|
|
|
WINAPI BOOL CloseServiceHandle __attribute__((dllimport))(SC_HANDLE);
|
|
|
|
|
WINAPI BOOL ControlService __attribute__((dllimport))(SC_HANDLE, DWORD, LPSERVICE_STATUS);
|
|
|
|
|
WINAPI BOOL GetServiceDisplayName __attribute__((dllimport))(SC_HANDLE, LPCTSTR, LPTSTR, LPDWORD);
|
|
|
|
|
WINAPI BOOL GetServiceKeyName __attribute__((dllimport))(SC_HANDLE, LPCTSTR, LPTSTR, LPDWORD);
|
|
|
|
|
WINAPI BOOL QueryServiceStatus __attribute__((dllimport))(SC_HANDLE, LPSERVICE_STATUS);
|
|
|
|
|
WINAPI BOOL OpenClipboard __attribute__((dllimport))(HWND);
|
|
|
|
|
WINAPI HANDLE SetClipboardData __attribute__((dllimport))(UINT, HANDLE);
|
|
|
|
|
WINAPI HANDLE GetClipboardData __attribute__((dllimport))(UINT);
|
|
|
|
|
WINAPI BOOL EmptyClipboard __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI BOOL CloseClipboard __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI LONG RegSetValueEx __attribute__((dllimport))(HKEY, LPCTSTR, DWORD, DWORD, const BYTE*, DWORD);
|
|
|
|
|
WINAPI LONG RegOpenCurrentUser __attribute__((dllimport))(REGSAM, PHKEY);
|
|
|
|
|
WINAPI LONG RegDeleteValue __attribute__((dllimport))(HKEY, LPCTSTR);
|
|
|
|
|
WINAPI LONG RegOpenKey __attribute__((dllimport))(HKEY, LPCTSTR, PHKEY);
|
|
|
|
|
WINAPI LONG RegQueryValueEx __attribute__((dllimport))(HKEY, LPCTSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD);
|
|
|
|
|
WINAPI LONG RegCloseKey __attribute__((dllimport))(HKEY);
|
|
|
|
|
WINAPI LONG RegCreateKeyEx __attribute__((dllimport))(HKEY, LPCTSTR, DWORD, LPTSTR, DWORD, REGSAM, LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD);
|
|
|
|
|
WINAPI HHOOK SetWindowHookEx __attribute__((dllimport))(int, HOOKPROC, HINSTANCE, DWORD);
|
|
|
|
|
WINAPI BOOL UnhookWindowsHookEx __attribute__((dllimport))(HHOOK);
|
|
|
|
|
WINAPI BOOL IsDebuggerPresent __attribute__((dllimport))(void);
|
|
|
|
|
WINAPI BOOL CheckRemoteDebuggerPresent __attribute__((dllimport))(HANDLE, PBOOL);
|
|
|
|
|
WINAPI NTSTATUS NtQueryInformationProcess __attribute__((dllimport))(HANDLE, PROCESSINFOCLASS, PVOID, ULONG, PULONG);
|
|
|
|
|
WINAPI void SetLastError __attribute__((dllimport))(DWORD);
|