Windows file

ntdll.dll: the genuine NT Layer DLL, and how malware abuses it without replacing it

ntdll.dll is the NT Layer DLL, the core Windows library that sits between every program and the Windows kernel. The copies in System32 and SysWOW64 are genuine and must stay. Malware does not replace this file on disk: it calls it, patches it in memory or injects code through it. A file named ntdll.dll anywhere else is suspicious.

Prefer to do it yourself? The manual steps follow.

Genuine Windows file

ntdll.dll in C:\Windows\System32 (and C:\Windows\SysWOW64 on 64-bit Windows) is a genuine Microsoft file and is safe. Every process on the PC, Windows included, loads it at start. Do not delete, rename or replace it: Windows cannot run a single program without it.

Because every process loads ntdll.dll, malware works with it rather than against it: it calls its functions directly to inject code, or overwrites security hooks in the copy loaded in memory. Neither changes the file on disk. A file named ntdll.dll outside the Windows folders, or one without a valid Microsoft signature, is not Windows' copy.

Description in the file
NT Layer DLL
What it is
The lowest user-mode layer of Windows: the system call interface to the kernel, the process and DLL loader, the heap manager and exception dispatch
Genuine folders
C:\Windows\System32\ntdll.dll and, on 64-bit Windows, C:\Windows\SysWOW64\ntdll.dll for 32-bit programs
Not genuine by location
Any ntdll.dll in Downloads, Temp, AppData, ProgramData, a program folder or the root of a drive. Windows never puts it there and never loads it from there
Size of the genuine file
Windows 11 24H2: 2,558,392 bytes (64-bit). Windows 10 21H2: 2,063,408 bytes (64-bit). The size changes with almost every monthly update
Newest indexed build
Windows 11 24H2: 10.0.26100.9711, delivered by KB5127648 on 13 October 2026
Known Microsoft builds
823 builds across 20 Windows releases in Winbindex
Is it a process
No. It is a library loaded into every process, so it never appears on its own in Task Manager

What ntdll.dll does, and why attackers care about it

ntdll.dll is the NT Layer DLL. When a program opens a file, reserves memory, creates a thread or starts another process, the request goes through the familiar Windows libraries such as kernel32.dll and ends in ntdll.dll, whose Nt and Zw functions make the actual system call into the kernel. The file also contains the loader that sets up every new process and loads its DLLs, the heap manager and the code that dispatches exceptions. Windows maps it into each process from System32 (or SysWOW64 for 32-bit programs) before the program's own code runs.

That position makes ntdll.dll the last stop before the kernel, and so the place where security software watches. Many endpoint protection products place hooks on ntdll.dll functions inside each process, so they see when a program writes into another process's memory or starts a thread in it. Attackers know this, which is why ntdll.dll appears in so many malware reports.

Malware uses it in three ways, none of which touches the file on disk. It calls the native functions directly, for example NtAllocateVirtualMemory, NtWriteVirtualMemory and NtCreateThreadEx, to inject code into another process. It removes the security hooks by loading a clean copy of ntdll.dll from disk and overwriting the hooked code in its own memory, or skips the library entirely with direct system calls. And it reads function addresses straight from the loaded ntdll.dll to hide which functions it uses.

Replacing ntdll.dll on disk would gain an attacker nothing and would risk an unbootable PC: the file is protected by Windows, signed by Microsoft and checked by System File Checker. So a genuine ntdll.dll on your PC is the normal case even when the PC is infected, and a second file with this name somewhere else is the real warning sign.

About .dll files. A .dll file is a library: it cannot run on its own and is loaded into a program's process. It does not appear in Task Manager under its own name; Process Explorer shows which process loaded it.

How malware uses ntdll.dll in memory: direct calls for injection, unhooking security hooks and direct system calls, while the file on disk stays genuine
Malware works with the ntdll.dll loaded in memory; the file in System32 stays Microsoft's.

How to tell Windows' ntdll.dll from a fake copy

A DLL is not listed in Task Manager as a process, so use the folder, the file properties, PowerShell and Process Explorer.

  1. Where the file is. List every copy with the command below. C:\Windows\System32 and C:\Windows\SysWOW64 are Windows' copies. Copies in C:\Windows\WinSxS belong to Windows' own component store and are also normal. Every other path is not Windows' ntdll.dll.
    Get-ChildItem C:\ -Recurse -Filter ntdll.dll -ErrorAction SilentlyContinue | Select-Object FullName, Length, @{n='Description';e={$_.VersionInfo.FileDescription}}
  2. The Description field and the size. Right-click the file, Properties, Details. The genuine file says NT Layer DLL, Microsoft Corporation, and a Windows version such as 10.0.26100. It is about 2 MB; a much smaller or larger file with this name is not Windows' copy. A fake can copy these fields, so this check only rules files out.
  3. The digital signature. Windows' copy is signed by Microsoft, often through a catalog rather than inside the file, so the Properties window may show no Digital Signatures tab. PowerShell reads both kinds. Valid with a Microsoft signer means genuine; NotSigned or another signer means it is not Microsoft's file.
    Get-AuthenticodeSignature 'C:\path\to\ntdll.dll' | Format-List Status, SignatureType, SignerCertificate
  4. Which copy a process loaded. Open Process Explorer from Microsoft Sysinternals, choose Find > Find Handle or DLL, type ntdll.dll and press Search. Every process lists it, and every path should be System32 or SysWOW64. A process that shows another path deserves a close look.
  5. Compare the hash with Microsoft's builds. Use the checker on this page: it computes the SHA-256 in your browser and compares it with the 823 known Microsoft builds. A match proves the file is Microsoft's, wherever it was found.
  6. Scan and repair. Run Microsoft Defender's full scan, then the offline scan if a detection comes back. If the copy in System32 or SysWOW64 does not match a Microsoft build, run sfc /scannow from an administrator Command Prompt to restore it.

These checks look at the file on disk. Malware that patches ntdll.dll in memory leaves the file untouched, so a genuine file does not prove the PC is clean. For that, rely on Microsoft Defender's full and offline scans, and on the warning signs below.

Genuine ntdll.dll compared with a fake copy: folder, Description field, size, version and Microsoft signature
Folder, Description, size and signature tell Windows' ntdll.dll from a file that only borrows its name.

Check your ntdll.dll

Choose the ntdll.dll you are unsure about. Its SHA-256 checksum is calculated in your browser and compared with the 823 Microsoft builds indexed from Windows releases and updates.

or drop the file here

The file stays on your computer. Nothing is uploaded: the checksum is computed locally.

Warning signs and what they mean

What you seeWhat it means
A file named ntdll.dll in Downloads, Temp, AppData, ProgramData or next to a program's .exeWindows never puts ntdll.dll there and never loads it from there. Malware droppers sometimes use system file names to look harmless. Check the signature and scan.
A look-alike name such as ntdl.dll, or ntdII.dll with capital I letters instead of l, in a Windows folderWindows has no file with such a name. A look-alike name in System32 is a common disguise; scan with the offline scan.
An ntdll.dll that claims Microsoft Corporation but has no valid Microsoft signatureA file that imitates Windows' copy. A genuine ntdll.dll always verifies as Valid with a Microsoft signer.
Microsoft Defender or another security product reports unhooking, direct system calls or process injectionSomething tried to blind security software or inject code through ntdll.dll's functions. The file is not the problem; the program that did it is. Run the offline scan.
Microsoft Defender names ntdll.dll in System32 or SysWOW64Very rare. Compare the hash with the checker on this page and run the offline scan; if the file does not match a Microsoft build, repair it with sfc /scannow.
sfc /scannow reports that it found and could not repair ntdll.dllThe protected copy was damaged or changed. Run DISM /Online /Cleanup-Image /RestoreHealth, then sfc again, and scan the PC offline.

Documented malware that used ntdll.dll

MITRE ATT&CK lists ntdll.dll's native functions under Native API (T1106). The reports below describe malware that called them or read them directly. In each case the genuine file stayed in place; the malware used the copy loaded in memory.

MalwareHow it used the fileSource
LODEINFO (APT10)Used NtAllocateVirtualMemory, NtWriteVirtualMemory and RtlCreateUserThread, among other functions, to inject shellcode into memoryKaspersky report, 31 October 2022, cited in MITRE ATT&CK T1106
PikabotUsed NtQueryInformationProcess to detect debuggers; some variants built their own list of function addresses from ntdll.dll and kernel32.dll to hide which functions they calledZscaler report, 24 May 2023, cited in MITRE ATT&CK T1106
NOOPLDR (Earth Kasha)Used NtProtectVirtualMemory, NtWriteVirtualMemory and NtCreateThreadEx to inject code into other processesTrend Micro report, 19 November 2024, cited in MITRE ATT&CK T1106

None of these replaced ntdll.dll on disk. Checking the file tells you it is genuine; finding the program that misused it is a job for Microsoft Defender's full and offline scans.

Everyday problems with ntdll.dll

Programs crash and Event Viewer names ntdll.dll as the faulting module

This is the reason most people look the file up, and it is not a sign of infection. ntdll.dll manages memory and exceptions for every program, so a failure caused by the program, a plugin, an overlay, a driver or faulty RAM is often recorded there.

Update or reinstall the program that crashes, remove overlays and mods, update drivers and test memory with Windows Memory Diagnostic. If many programs crash, repair Windows:

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

Several ntdll.dll files are on the PC

On 64-bit Windows, System32 holds the 64-bit library and SysWOW64 the 32-bit one, and Windows keeps further copies in WinSxS for updates. All of them are genuine and have different sizes and hashes.

A copy anywhere else, in a user folder, a program folder or a temporary folder, is not used by Windows. Check its signature and hash, and remove it after a scan if it is not Microsoft's.

Security software warns about ntdll.dll unhooking

The warning is about a program, not about the file. It means a process loaded a clean copy of ntdll.dll or used direct system calls to get around the hooks the security product placed in memory.

Some legitimate low-level tools can trigger similar alerts. If the alert names a program you do not know, quarantine it and run Microsoft Defender's offline scan.

ntdll.dll versions by Windows release

The newest build indexed for each release, and the update that delivered it. 823 Microsoft builds in total are known.

Windows releaseFile versionDelivered bySize, 64-bit
Windows 11 26H110.0.28000.2952KB5129194, Sep 14, 20262,513,848 bytes
Windows 11 25H210.0.26100.9711KB5127648, Oct 13, 20262,558,392 bytes
Windows 11 24H210.0.26100.9711KB5127648, Oct 13, 20262,558,392 bytes
Windows 11 23H210.0.22621.7376KB5120240, Aug 11, 20262,195,648 bytes
Windows 11 22H210.0.22621.7376KB5120240, Aug 11, 20262,195,648 bytes
Windows 11 21H210.0.22000.3260KB5044280, Oct 8, 20242,133,664 bytes
Windows 10 22H210.0.19041.7802KB5126657, Oct 13, 20262,063,408 bytes
Windows 10 21H210.0.19041.7802KB5126657, Oct 13, 20262,063,408 bytes
Windows 10 21H110.0.19041.7802KB5126657, Oct 13, 20262,063,408 bytes
Windows 10 20H210.0.19041.7802KB5126657, Oct 13, 20262,063,408 bytes

Questions people ask

Is ntdll.dll a virus?

No. ntdll.dll is the NT Layer DLL, a core Windows file in System32 and SysWOW64 that every program needs. Malware uses its functions and sometimes patches the loaded copy in memory, but it does not replace the file on disk. A file named ntdll.dll in another folder, or one without a valid Microsoft signature, is not Windows' file and should be scanned.

Can I delete ntdll.dll?

No, not the copies in System32 or SysWOW64. Every process on the PC loads them, so Windows protects them and cannot start without them. A copy outside the Windows folders is not used by Windows: check its signature, scan it, and remove it if it is not a genuine Microsoft file you put there yourself.

Can malware replace ntdll.dll?

It is very unusual. The file is protected by Windows, signed by Microsoft and restored by System File Checker, and a wrong build stops Windows from starting. Malware gains far more by using the copy already loaded in memory: calling its functions directly, overwriting security hooks in it, or bypassing it with direct system calls. That is why a genuine file on disk does not prove a clean PC.

What is ntdll.dll unhooking?

It is a way to blind security software. Many security products place hooks on ntdll.dll functions inside each process to watch for injection. Malware reads a clean copy of ntdll.dll from disk and copies its code over the hooked version in its own memory, so the hooks disappear. The file on disk stays genuine; only the malicious process changes.

Why is ntdll.dll in every process in Process Explorer?

Because Windows loads it into every process when the process is created. It is the layer that connects programs to the kernel, so even the simplest program needs it. Seeing it in every process is normal. What matters is the path: it should always be C:\Windows\System32 or, for 32-bit programs on 64-bit Windows, C:\Windows\SysWOW64.

How do I check if my ntdll.dll is genuine?

Check three things. The folder: System32 and SysWOW64 hold Windows' copies. The signature: Get-AuthenticodeSignature in PowerShell shows Valid with a Microsoft signer for the genuine file. The hash: the checker on this page compares the SHA-256 with 823 known Microsoft builds. A file that fails these checks is not Windows' ntdll.dll.

Does a crash in ntdll.dll mean my PC is infected?

Usually not. ntdll.dll appears as the faulting module in many crash reports because it handles memory and exceptions for every program, so failures caused by the program, a driver or faulty memory surface there. Fix the program, drivers and memory first. Scan with Microsoft Defender if crashes come with other warning signs, such as unknown programs or security alerts.

Sources

Version data read on Oct 14, 2026.

Questions and experiences

Ask about this page: members and our editors answer. Reading is open; writing needs a free account.

0 comments

…

5,565 members already hereReading, writing, commenting and voting. 0 verified · 290 joined this year