The alert hit Elias’s monitor at 2:14 AM. A process named UnhookingNtdll_disk.exe had just executed on a developer's workstation. On the surface, the name sounded like a system utility, but Elias knew better. In the world of Windows internals, "unhooking" is often a polite way of saying "blinding the guards." The "Hook" Problem
Elias watched the sandbox logs. Without the hooks to stop it, the malware began injecting a ransomware payload into a legitimate system process. To the EDR, the system calls now looked perfectly normal because the "interceptor" had been erased. The Lesson
: It read the clean, un-hooked code from the disk into a new section of memory. UnhookingNtdll_disk.exe
: Instead of trying to fight the EDR hooks already present in the memory-loaded version of ntdll.dll , the malware opened the original ntdll.dll file directly from the C:\Windows\System32\ folder on the disk.
: It then identified the .text section (the executable code) of the "dirty" ntdll.dll already running in its process memory and overwrote it with the "clean" code from the disk. The Result: Silent Execution The alert hit Elias’s monitor at 2:14 AM
Most modern EDR (Endpoint Detection and Response) tools work by placing "hooks" in ntdll.dll . This DLL is the lowest-level gateway to the Windows kernel. When a program wants to open a file or connect to the internet, it calls a function in ntdll.dll . The EDR’s hooks intercept that call, check if it’s malicious, and then let it pass—or kill it.
With the "clean" code back in place, the EDR’s hooks were gone. The security software was still running, but it was now effectively "blind" to what UnhookingNtdll_disk.exe did next. In the world of Windows internals, "unhooking" is
Elias pulled the file into his sandbox. He watched as the malware performed a classic evasion maneuver: