UACME/Source/Akagi/sup.h

137 lines
3.1 KiB
C

/*******************************************************************************
*
* (C) COPYRIGHT AUTHORS, 2014 - 2017
*
* TITLE: SUP.H
*
* VERSION: 2.72
*
* DATE: 26 May 2017
*
* Common header file for the program support routines.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#pragma once
typedef BOOL(CALLBACK *UCM_FIND_FILE_CALLBACK)(
WIN32_FIND_DATA *fdata,
LPWSTR lpDirectory);
typedef struct _SXS_SEARCH_CONTEXT {
LPWSTR DllName;
LPWSTR PartialPath;
LPWSTR FullDllPath;
} SXS_SEARCH_CONTEXT, *PSXS_SEARCH_CONTEXT;
BOOLEAN supIsProcess32bit(
_In_ HANDLE hProcess);
BOOL supGetElevationType(
TOKEN_ELEVATION_TYPE *lpType);
BOOL supWriteBufferToFile(
_In_ LPWSTR lpFileName,
_In_ PVOID Buffer,
_In_ DWORD BufferSize);
PBYTE supReadFileToBuffer(
_In_ LPWSTR lpFileName,
_Inout_opt_ LPDWORD lpBufferSize);
BOOL supRunProcess2(
_In_ LPWSTR lpszProcessName,
_In_opt_ LPWSTR lpszParameters,
_In_ BOOL fWait);
BOOL supRunProcess(
_In_ LPWSTR lpszProcessName,
_In_opt_ LPWSTR lpszParameters);
HANDLE NTAPI supRunProcessEx(
_In_ LPWSTR lpszParameters,
_In_opt_ LPWSTR lpCurrentDirectory,
_Out_opt_ HANDLE *PrimaryThread,
_Inout_opt_ LPWSTR lpApplicationName);
void supCopyMemory(
_Inout_ void *dest,
_In_ size_t cbdest,
_In_ const void *src,
_In_ size_t cbsrc);
DWORD supQueryEntryPointRVA(
_In_ LPWSTR lpImageFile);
LPWSTR supQueryEnvironmentVariableOffset(
_In_ PUNICODE_STRING Value);
BOOL supSetParameter(
LPWSTR lpParameter,
DWORD cbParameter);
DWORD supCalculateCheckSumForMappedFile(
_In_ PVOID BaseAddress,
_In_ ULONG FileLength);
BOOLEAN supVerifyMappedImageMatchesChecksum(
_In_ PVOID BaseAddress,
_In_ ULONG FileLength);
BOOLEAN supSetCheckSumForMappedFile(
_In_ PVOID BaseAddress,
_In_ ULONG CheckSum);
VOID ucmShowMessage(
LPWSTR lpszMsg);
INT ucmShowQuestion(
LPWSTR lpszMsg);
PBYTE supLdrQueryResourceData(
_In_ ULONG_PTR ResourceId,
_In_ PVOID DllHandle,
_In_ PULONG DataSize);
VOID supMasqueradeProcess(
VOID);
DWORD supExpandEnvironmentStrings(
LPCWSTR lpSrc,
LPWSTR lpDst,
DWORD nSize);
VOID NTAPI sxsFindDllCallback(
_In_ PCLDR_DATA_TABLE_ENTRY DataTableEntry,
_In_ PVOID Context,
_In_ OUT BOOLEAN *StopEnumeration);
PVOID supNativeGetProcAddress(
WCHAR *Module,
CHAR *Routine);
VOID supDebugPrint(
LPWSTR ApiName,
DWORD status);
PVOID FORCEINLINE supHeapAlloc(
_In_ SIZE_T Size);
BOOL FORCEINLINE supHeapFree(
_In_ PVOID Memory);
BOOL supDeleteKeyRecursive(
_In_ HKEY hKeyRoot,
_In_ LPWSTR lpSubKey);
BOOL supSetEnvVariable(
_In_ BOOL fRemove,
_In_ LPWSTR lpVariableName,
_In_opt_ LPWSTR lpVariableData);
#define PathFileExists(lpszPath) (GetFileAttributes(lpszPath) != (DWORD)-1)