/******************************************************************************* * * (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)