#/******************************************************************************* * * (C) COPYRIGHT AUTHORS, 2014 - 2021 * * TITLE: SUP.H * * VERSION: 1.52 * * DATE: 23 Nov 2021 * * 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 /* * supHeapAlloc * * Purpose: * * Wrapper for RtlAllocateHeap. * */ PVOID FORCEINLINE supHeapAlloc( _In_ SIZE_T Size) { return RtlAllocateHeap(NtCurrentPeb()->ProcessHeap, HEAP_ZERO_MEMORY, Size); } /* * supHeapFree * * Purpose: * * Wrapper for RtlFreeHeap. * */ BOOL FORCEINLINE supHeapFree( _In_ PVOID Memory) { return RtlFreeHeap(NtCurrentPeb()->ProcessHeap, 0, Memory); } BOOL supIsCorImageFile( _In_ PVOID ImageBase); LPWSTR supReadKeyString( _In_ HKEY hKey, _In_ LPWSTR KeyValue, _In_ PDWORD pdwDataSize); PVOID supQueryKeyName( _In_ HKEY hKey, _Out_opt_ PSIZE_T ReturnedLength); BOOLEAN supIsProcess32bit( _In_ HANDLE hProcess); PVOID supFindPattern( _In_ CONST PBYTE Buffer, _In_ SIZE_T BufferSize, _In_ CONST PBYTE Pattern, _In_ SIZE_T PatternSize); LRESULT supRegReadDword( _In_ HKEY hKey, _In_ LPWSTR lpValueName, _In_ LPDWORD Value); PVOID supLookupImageSectionByName( _In_ CHAR* SectionName, _In_ ULONG SectionNameLength, _In_ PVOID DllBase, _Out_ PULONG SectionSize); BOOL supConcatenatePaths( _Inout_ LPWSTR Target, _In_ LPCWSTR Path, _In_ SIZE_T TargetBufferSize);