Windows file
kernel32.dll: genuine core Windows file, or a fake copy outside System32?
kernel32.dll is the Windows NT BASE API Client DLL, the core library nearly every Windows program uses for files, memory, processes and threads. The copies in System32 and SysWOW64 are genuine and essential. Malware calls its functions like any program does, but a kernel32.dll in any other folder is not Windows' copy and deserves a check.
Prefer to do it yourself? The manual steps follow.
kernel32.dll in C:\Windows\System32 (and C:\Windows\SysWOW64 on 64-bit Windows) is a genuine Microsoft file and is safe. Windows cannot start without it, so never delete, quarantine or replace it. Some Windows 10 and 11 builds also keep a small kernel32.dll in C:\Windows\System32\forwarders, which belongs to Windows as well.
Windows always loads its own kernel32.dll, so malware has no reason to replace it and simply calls its functions. A file with this name in Downloads, Temp, AppData, ProgramData or a program folder is not Windows' copy: it is either a stray file someone copied there to fix an error, or a file that uses a trusted name to hide.
- Description in the file
- Windows NT BASE API Client DLL
- What it is
- The core Windows API library: files, memory, processes, threads, loading other DLLs, error handling and time, much of it forwarded to KernelBase.dll since Windows 7
- Genuine folders
- C:\Windows\System32\kernel32.dll, C:\Windows\SysWOW64\kernel32.dll for 32-bit programs on 64-bit Windows, and on some builds C:\Windows\System32\forwarders\kernel32.dll
- Not genuine by location
- Any kernel32.dll in Downloads, Temp, AppData, ProgramData, a program or game folder, or on a USB drive. Windows never puts it there
- Size of the genuine file
- Windows 11 24H2 and 25H2: 861,992 bytes (64-bit), 707,744 bytes (32-bit). Windows 10 22H2: 784,792 bytes (64-bit), 650,272 bytes (32-bit). The forwarders copy is much smaller, about 100 to 200 KB
- Newest indexed build
- Windows 11 24H2: 10.0.26100.9711, delivered by KB5127648 on 13 October 2026
- Known Microsoft builds
- 975 builds across 20 Windows releases in Winbindex
- Is it a process
- No. It is a library loaded into almost every process on the PC, so it never appears on its own in Task Manager
What kernel32.dll does, and why malware uses it without replacing it
kernel32.dll is one of the oldest Windows libraries and is loaded into practically every program that runs on Windows. Programs call it to create, read and write files, reserve memory, start processes and threads, load other DLLs, wait for events and read the system time. Since Windows 7, Microsoft has moved much of that code into KernelBase.dll: kernel32.dll keeps the same function names and forwards many calls to it, so older programs keep working unchanged.
Windows treats kernel32.dll as a known DLL. Its name is listed in the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs, and for every DLL on that list Windows uses its own copy instead of searching the program's folder. That is the difference from files such as dinput8.dll, which tools can replace with a proxy in a game or program folder. A kernel32.dll dropped next to an .exe is simply not loaded from there by Windows.
Malware therefore does not need a fake kernel32.dll. It uses the genuine one, the same way every program does: functions such as VirtualAllocEx, WriteProcessMemory and CreateRemoteThread let it write code into another process and run it there, and LoadLibrary loads its own DLLs. Seeing kernel32.dll in a list of loaded modules or in a crash report says nothing about infection, because every process has it.
Where a file named kernel32.dll does matter is outside the Windows folders. Malware authors give their files the names of system files so that a quick look in a folder or a process list does not stand out. Such a file is not Windows' library, whatever its name, and its real nature only shows in its folder, its signature and its hash.
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 to tell the genuine kernel32.dll from a copy
A DLL is not listed in Task Manager as a process, so use the folder, the file properties, PowerShell or Process Explorer.
- Where the file is. List every copy with the command below. C:\Windows\System32, C:\Windows\SysWOW64 and C:\Windows\System32\forwarders are Windows' copies. Copies inside C:\Windows\WinSxS belong to Windows updates and are also genuine. Every other path deserves a closer look.
Get-ChildItem C:\ -Recurse -Filter kernel32.dll -ErrorAction SilentlyContinue | Where-Object FullName -notlike 'C:\Windows\WinSxS\*' | Select-Object FullName, Length, @{n='Description';e={$_.VersionInfo.FileDescription}} - The Description field and the version. Right-click the file, Properties, Details. The genuine file says Windows NT BASE API Client DLL, with Microsoft Corporation as the company and a Windows version number such as 10.0.26100 or 10.0.19041. A copy can imitate these fields, so this check only rules files out.
- The digital signature. The genuine copies in System32 and SysWOW64 are 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. Winbindex lists the small forwarders copy as unsigned, so judge that one by its folder and hash.
Get-AuthenticodeSignature 'C:\path\to\kernel32.dll' | Format-List Status, SignatureType, SignerCertificate - Which copy processes really load. Open Process Explorer from Microsoft Sysinternals, choose Find > Find Handle or DLL, type kernel32.dll and press Search. Every process should show C:\Windows\System32\kernel32.dll, or C:\Windows\SysWOW64\kernel32.dll for 32-bit programs. A loaded kernel32.dll from any other path is a serious warning sign.
- 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 975 known Microsoft builds. A copy outside the Windows folders that matches is a genuine file someone copied there; one that does not match is not Microsoft's file.
- Scan before you delete anything. Run Microsoft Defender's full scan, and the offline scan if a detection keeps coming back. Never delete or quarantine the copies in the Windows folders yourself; if they look wrong, repair them with System File Checker.
A match to a Microsoft build proves the file is Microsoft's, but not that it belongs where you found it: a genuine kernel32.dll in Downloads is still a stray copy. A copy that matches nothing and sits outside the Windows folders is not a Windows file, whatever it is called. The genuine copies themselves cannot tell you whether malware is running, because every process loads them.

Check your kernel32.dll
Choose the kernel32.dll you are unsure about. Its SHA-256 checksum is calculated in your browser and compared with the 1013 Microsoft builds indexed from Windows releases and updates.
The file stays on your computer. Nothing is uploaded: the checksum is computed locally.
Warning signs and what they mean
| What you see | What it means |
|---|---|
| kernel32.dll in Downloads, Temp, AppData, ProgramData or on a USB drive | Windows never stores it there. Either it was copied by hand to fix an error, or a file uses the name to hide. Check the hash and scan. |
| kernel32.dll next to a program's or game's .exe | Usually a leftover from a download site or an old fix guide; Windows ignores it because it always uses its own copy. If you did not put it there, scan the PC. |
| A running process shows kernel32.dll loaded from a path outside the Windows folders | Not normal on any Windows release. Note the process, run Microsoft Defender's offline scan, and check the file with the hash checker. |
| A file named kernel32.exe, kernel32.dll.exe or a misspelling such as kernal32.dll | A name built to look like the system file. Windows has no such files. Treat it as suspicious. |
| A scheduled task, startup entry or service points to a kernel32.dll file | Windows does not start kernel32.dll through tasks or startup entries. An entry that runs it, for example through rundll32, is a persistence method; remove it and scan. |
| Microsoft Defender names kernel32.dll in System32 or SysWOW64 | Rare. Check 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 and DISM. |
| A website or pop-up says kernel32.dll is infected and offers a download to fix it | A scare page. The genuine file is protected by Windows, and a downloaded kernel32.dll or cleaner from such a page is the real risk. |
Everyday problems with kernel32.dll
A program says the procedure entry point could not be located in KERNEL32.dll
This is a compatibility error, not a damaged or infected file. The program asks for a function that the kernel32.dll of your Windows version does not contain, because it was built for a newer Windows. The message names the function; its page on Microsoft Learn lists the minimum Windows version that has it.
Install a version of the program that supports your Windows, or update Windows. Copying a kernel32.dll from another PC does not add the function and can stop Windows from starting.
Event Viewer shows Faulting module name: KERNEL32.dll after a crash
kernel32.dll appears in many crash reports because programs call it all the time and it is where an unhandled error inside a program surfaces. The program named in Faulting application name is the one to update or reinstall.
If many unrelated programs crash with the same module, check the Windows files, run as administrator one after the other:
sfc /scannowDISM /Online /Cleanup-Image /RestoreHealthSeveral kernel32.dll files are on the PC
That is normal on 64-bit Windows: System32 holds the 64-bit library, SysWOW64 the 32-bit one, and some builds add the small copy in System32\forwarders. The WinSxS folder keeps further copies for Windows updates. All of them are Microsoft files with different sizes and hashes.
Copies anywhere else are not needed by Windows. Check them with the hash checker, then delete the ones you or a fix guide put there.
kernel32.dll versions by Windows release
The newest build indexed for each release, and the update that delivered it. 975 Microsoft builds in total are known.
| Windows release | File version | Delivered by | Size, 64-bit |
|---|---|---|---|
| Windows 11 26H1 | 10.0.28000.3086 | KB5124006, Sep 22, 2026 | 862,104 bytes |
| Windows 11 25H2 | 10.0.26100.9711 | KB5127648, Oct 13, 2026 | 861,992 bytes |
| Windows 11 24H2 | 10.0.26100.9711 | KB5127648, Oct 13, 2026 | 861,992 bytes |
| Windows 11 23H2 | 10.0.22621.7582 | KB5129242, Sep 14, 2026 | 815,560 bytes |
| Windows 11 22H2 | 10.0.22621.7582 | KB5129242, Sep 14, 2026 | 815,560 bytes |
| Windows 11 21H2 | 10.0.22000.2836 | KB5044280, Oct 8, 2024 | 786,528 bytes |
| Windows 10 22H2 | 10.0.19041.7725 | KB5129236, Sep 14, 2026 | 784,792 bytes |
| Windows 10 21H2 | 10.0.19041.7725 | KB5129236, Sep 14, 2026 | 784,792 bytes |
| Windows 10 21H1 | 10.0.19041.7725 | KB5129236, Sep 14, 2026 | 784,792 bytes |
| Windows 10 20H2 | 10.0.19041.7725 | KB5129236, Sep 14, 2026 | 784,792 bytes |
Known versions of kernel32.dll
A public DLL catalogue lists 38 versions of kernel32.dll, from 4.10.0.2222 to 10.0.19041.292, by Microsoft Corporation. Its copies are uploaded by users and not verified, so a checksum match identifies the version, while the digital signature tells you whether the file is genuine. Even a genuine file clears only the file, not the folder: attackers ship genuine libraries next to a program they abuse, so where the copy sits still decides whether it is safe.
Every version with its checksums, and how to fix kernel32.dll errors on uGetFix
Questions people ask
Is kernel32.dll a virus?
No, not the Windows copy. kernel32.dll is the Windows NT BASE API Client DLL, and the files in System32 and SysWOW64 are genuine Windows libraries that every program uses. Malware calls their functions too, but does not need to replace them. A kernel32.dll in another folder is not Windows' copy: check its signature and hash before you trust it.
Can malware replace kernel32.dll?
Replacing the real file is hard and rarely useful to an attacker. Windows protects it, loads it from its own folder as a known DLL, and System File Checker and Windows updates restore it. Malware instead uses its functions to inject code into other processes, and gives its own files system names in other folders so they look harmless in a quick check.
Can I delete kernel32.dll?
Never delete the copies in System32, SysWOW64 or System32\forwarders: Windows does not start without them, and they are protected system files. A copy in Downloads, a program folder or another place outside Windows can be removed after you check it, because Windows never uses it. Scan the PC first if you do not know how it got there.
Why do I see kernel32.dll in every process?
Because nearly every Windows program loads it. Process Explorer and similar tools list it inside browsers, games, services and Windows itself. That is normal and says nothing about malware. What matters is the path: it should always be C:\Windows\System32 or C:\Windows\SysWOW64 for 32-bit programs.
How do I check if my kernel32.dll is genuine?
Check three things. The folder: System32, SysWOW64 and System32\forwarders hold Windows' copies. The signature: Get-AuthenticodeSignature in PowerShell shows Valid with a Microsoft signer for the main files. The hash: the checker on this page compares the SHA-256 with 975 known Microsoft builds. A copy elsewhere that fails these checks is not Windows' file.
What is the difference between kernel32.dll and KernelBase.dll?
Both are genuine Windows libraries. Since Windows 7, Microsoft has moved much of the code of kernel32.dll into KernelBase.dll, and kernel32.dll forwards many calls to it so that programs keep working. Both live in System32 and SysWOW64, both are protected, and neither should be replaced or deleted by hand.
A site says my kernel32.dll is missing or corrupt. Should I download it?
No. A working Windows always has kernel32.dll, and Windows uses only its own copy. Downloaded copies match the wrong build at best and carry unknown code at worst. If Windows files are damaged, sfc /scannow and DISM repair them from Microsoft's originals, and Windows Update replaces kernel32.dll with every monthly update.
Sources
- Microsoft Learn: New Low-Level Binaries (kernel32.dll and KernelBase.dll)
- Microsoft Learn: Dynamic-link library search order (known DLLs)
- Microsoft Learn: GetSystemTimePreciseAsFileTime requirements
- MITRE ATT&CK T1055.001: Process Injection, Dynamic-link Library Injection
- MITRE ATT&CK T1036.005: Masquerading, Match Legitimate Name or Location
- Microsoft Sysinternals: Process Explorer
- Winbindex, the Windows binaries index (m417z)
- Winbindex, the Windows binaries index (m417z)
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.
…