Here are some hooked functions you may use that will indirectly allocate memory using LocalAlloc or GlobalAlloc
 
Functions using LocalAlloc
 
These functions use LocalAlloc() to allocate memory which must be freed with LocalFree():
 
 
•GetExplicitEntriesFromAclA  •GetExplicitEntriesFromAclW •SetEntriesInAclA •SetEntriesInAclW   
•BuildSecurityDescriptorA •BuildSecurityDescriptorW •LookupSecurityDescriptorPartsA •LookupSecurityDescriptorPartsW 
  •GetSecurityInfo  •GetNamedSecurityInfo 
   | 
  
•ConvertStringSidToSidA  •ConvertStringSidToSidW  •ConvertSidToStringSidA  •ConvertSidToStringSidW  
    
•ConvertStringSecurityDescriptorToSecurityDescriptorA  •ConvertStringSecurityDescriptorToSecurityDescriptorW •ConvertSecurityDescriptorToStringSecurityDescriptorA •ConvertSecurityDescriptorToStringSecurityDescriptorW  | 
 
 
 
 | 
 
 
 
•FormatMessageA  •FormatMessageW 
  •GetQueuedCompletionStatus  | 
  
  
  
 | 
  
 | 
 
 
 
 | 
 
 
 
•CryptDecodeObjectEx  •CryptEncodeObjectEx 
  •CryptGetKeyIdentifierProperty 
  •CryptUnprotectData  | 
  
  
 | 
  
 | 
 
 
 
 | 
 
 
 
•SetupGetFileCompressionInfoA  •SetupGetFileCompressionInfoW  | 
  
  
 | 
  
  
 | 
 
 
 
 | 
 
 
 
 
•ResUtilDupString  
  •ResUtilExpandEnvironmentStrings 
  •ResUtilFindBinaryProperty  •ResUtilFindMultiSzProperty •ResUtilFindSzProperty •ResUtilFindExpandSzProperty •ResUtilFindExpandedSzProperty  | 
  
•ResUtilGetBinaryValue  •ResUtilGetMultiSzValue •ResUtilGetSzValue •ResUtilGetExpandSzValue 
  •ResUtilSetBinaryValue  •ResUtilSetMultiSzValue •ResUtilSetSzValue •ResUtilSetExpandSzValue  | 
 
 
 
 | 
 
 
 
Functions using GlobalAlloc
 
These functions use GlobalAlloc() to allocate memory which must be freed with GlobalFree().
 
 
•CMCreateDeviceLinkProfile  
  •CMCreateProfileA •CMCreateProfileW  | 
  
  
  
 | 
  
 | 
 
 
 
 | 
 
 
 
•CreateDeviceLinkProfile  
  •CreateProfileFromLogColorSpace  | 
  
  
  
 | 
  
 | 
 
 
 
 |