Unloading Module with FreeLibrary
Created the Sunday 19 March 2023. Updated 1 year, 2 months ago.
Malware authors often use various techniques to evade detection by AV/EDR solutions. One such technique involves checking for the presence of AV/EDR DLLs that may be loaded in the malware's address space and attempting to unload them before executing their malicious code.
To do this, the malware first uses the GetModuleHandleA
function to retrieve a handle to the DLL, if it's already loaded. Once it has a valid handle, the malware then calls the FreeLibrary
function to free and unload the DLL from memory.
By unloading the AV/EDR DLL, the malware can avoid detection and carry out its malicious activities without being monitored or blocked by the security software. However, it is important to note that this technique only affects user-mode components of an EDR and not kernel components. Additionally, modern EDR systems have evolved to detect such evasive techniques and prevent malware from disabling them.
Technique Identifier
Technique Tags
Malware AV/EDR detection DLL address space unload GetModuleHandleA FreeLibrary
Code Snippets
Detection Rules
Additional Resources
External Links
The resources provided below are associated links that will give you even more detailed information and research on current evasion technique. It is important to note that, while these resources may be helpful, it is important to exercise caution when following external links. As always, be careful when clicking on links from unknown sources, as they may lead to malicious content.
- MalwareJake: Beating up on poor antivirus...
- Make Your Dynamic Module Unfreeable (Anti-FreeLibrary) - Reverse engineering & exploit development - Romanian Security Team
- Investigating .NET CLR Usage Log Tampering Techniques For EDR Evasion – bohops