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.

Genuine Windows file

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 programs and malware both call the genuine kernel32.dll in System32, and why a copy in another folder is not loaded by Windows
Malware calls the genuine kernel32.dll like any program; a file with that name elsewhere is a disguise, not a replacement.

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.

  1. 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}}
  2. 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.
  3. 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
  4. 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.
  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 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.
  6. 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.

Genuine kernel32.dll compared with a copy outside the Windows folders: folder, Description field, size, signature and hash
Folder, Description, size, signature and hash tell Windows' kernel32.dll from a file that only uses its name.

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.

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
kernel32.dll in Downloads, Temp, AppData, ProgramData or on a USB driveWindows 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 .exeUsually 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 foldersNot 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.dllA 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 fileWindows 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 SysWOW64Rare. 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 itA 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 /scannow
DISM /Online /Cleanup-Image /RestoreHealth

Several 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 releaseFile versionDelivered bySize, 64-bit
Windows 11 26H110.0.28000.3086KB5124006, Sep 22, 2026862,104 bytes
Windows 11 25H210.0.26100.9711KB5127648, Oct 13, 2026861,992 bytes
Windows 11 24H210.0.26100.9711KB5127648, Oct 13, 2026861,992 bytes
Windows 11 23H210.0.22621.7582KB5129242, Sep 14, 2026815,560 bytes
Windows 11 22H210.0.22621.7582KB5129242, Sep 14, 2026815,560 bytes
Windows 11 21H210.0.22000.2836KB5044280, Oct 8, 2024786,528 bytes
Windows 10 22H210.0.19041.7725KB5129236, Sep 14, 2026784,792 bytes
Windows 10 21H210.0.19041.7725KB5129236, Sep 14, 2026784,792 bytes
Windows 10 21H110.0.19041.7725KB5129236, Sep 14, 2026784,792 bytes
Windows 10 20H210.0.19041.7725KB5129236, Sep 14, 2026784,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

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