Tamper DLL Export Names & GetProcAddress Spoofing

Created the Thursday 11 August 2022. Updated 1 year, 2 months ago.

When a process is running, it is possible to change the results of the call to GetProcAddress API, for the exported functions of a module along with modifying the export's offsets and name at runtime.

For example, the offset of kernel32.dll's function VirtualAlloc can be change to the offset of another function. When VirtualAlloc is called (after getting its address from GetProcAddress), the second function will be called instead.

To achieve this, it is possible to use the WINAPI MapAndLoad from ImageHlp.h, then use ImageDirectoryEntryToData to get the list of exports. Then the ImageRvaToVa API can be used to retrieve each exported functions names offset; if desired the export name can be overwritten, resulting in calls to GetProcAddress with that export name to fail or be directed to another function.

Technique Identifier


Featured Windows API's

Below, you will find a list of the most commonly used Windows API's that are currently utilized by malware authors for current evasion technique. This list is meant to provide an overview of the API's that are commonly used for this purpose. If there are any API's that you feel should be included on this list, please do not hesitate to contact us. We will be happy to update the list and provide any additional information or documentation that may be helpful.

Code Snippets

Detection Rules

Subscribe to our Newsletter

Don't miss out on the latest and greatest updates from us! Subscribe to our newsletter and be the first to know about exciting content and future updates.