Tamper DLL Export Names & GetProcAddress Spoofing
Created the Thursday 11 August 2022. Updated 2 years 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.