Windows file

version.dll: genuine Windows file, or a copy planted next to a program?

version.dll is the Windows library that programs use to read the version information of files. The copies in System32 and SysWOW64 are genuine and safe. A version.dll next to a program's .exe is never Windows' copy: a mod, patch or other tool placed it there, or malware did, and it runs inside that program.

Prefer to do it yourself? The manual steps follow.

Genuine Windows file

version.dll in C:\Windows\System32 (and C:\Windows\SysWOW64 on 64-bit Windows) is a genuine Microsoft file and is safe. Its file description reads Version Checking and File Installation Libraries. Installers, Windows tools and many programs load it. Do not delete or replace it.

Programs look for version.dll in their own folder before System32, so any file with this name next to an .exe is loaded and run by that program. Mod loaders use this on purpose; malware uses it to run inside a trusted, signed program. Check the folder, the signature and the hash.

Description in the file
Version Checking and File Installation Libraries
What it is
The Windows version information library: functions such as GetFileVersionInfo and VerQueryValue that read a file's version, product name and company
Genuine folders
C:\Windows\System32\version.dll and, on 64-bit Windows, C:\Windows\SysWOW64\version.dll for 32-bit programs; Windows also keeps one in C:\Windows\System32\forwarders
Not genuine by location
Any version.dll next to a program's .exe, in a game folder, in Downloads, Temp or AppData. Windows never puts it there
Size of the genuine file
Windows 11 24H2 and 25H2: 55,192 bytes (64-bit), 28,976 bytes (32-bit). Windows 10 22H2: 32,584 bytes (64-bit), 28,424 bytes (32-bit)
Newest indexed build
Windows 11 26H1: 10.0.28000.1251, delivered by KB5127646 on 13 October 2026
Known Microsoft builds
341 builds across 20 Windows releases in Winbindex
Signature
Signed by Microsoft Windows through a catalog, so the file's Properties window may show no Digital Signatures tab
Is it a process
No. It is a library loaded into the programs that read file versions, so it never appears on its own in Task Manager

What version.dll does, and why programs load other copies of it

version.dll holds the Windows functions that read the version resource of a file: GetFileVersionInfo, GetFileVersionInfoSize, VerQueryValue and a few more. Installers use them to decide whether a file on the PC is older or newer than the one they carry, and programs use them to show their own version or to check another file's. Windows ships the library in every release and updates it together with Windows.

Because so many programs load version.dll at start, and because it is not on the short list of libraries Windows always takes from System32, a program looks for it in its own folder first. A tool author builds a library with the same name and the same exported functions, puts it next to the .exe, and the program loads it. The copy forwards the real calls to the Windows file, so the program works normally, and in the same moment runs the tool's own code inside it.

Mod loaders, plugin loaders, frame rate and resolution patches and overlays use this on purpose. Attackers use the same technique, called DLL side-loading: they ship a legitimate, signed program together with a malicious version.dll in one folder, so their code runs inside a process that looks trusted. HijackLibs, a public list of DLL hijacking cases, names 42 programs that load version.dll this way, among them 37 Windows programs such as certutil.exe, mstsc.exe and msconfig.exe when they are copied out of System32.

So the question is never whether version.dll is a virus, but which version.dll you are looking at. The copies in the Windows folders are Microsoft's. A copy next to a program is whatever the person who made it put into it.

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 a version.dll placed next to a program's .exe loads before the Windows copy in System32 and runs its own code
The program takes version.dll from its own folder first; a planted copy runs its code, then passes the calls to Windows.

How to tell a version.dll in a program folder from Windows' 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, C:\Windows\System32\forwarders and the WinSxS store are Windows' copies. Every other path is a copy that something installed. If you did not install a mod or patch for that program, find out what did.
    Get-ChildItem C:\ -Recurse -Filter version.dll -ErrorAction SilentlyContinue | Select-Object FullName, Length, @{n='Description';e={$_.VersionInfo.FileDescription}}
  2. What sits next to it. Look at the .exe files in the same folder. A Windows program such as certutil.exe, mstsc.exe or msconfig.exe outside C:\Windows, next to a version.dll, is a classic side-loading pair. So is a signed program from another company in Temp, AppData or Downloads with an unsigned version.dll beside it.
  3. The Description field and the size. Right-click the file, Properties, Details. The genuine file says Version Checking and File Installation Libraries, with Microsoft Corporation as the company and a Windows version number such as 10.0.26100. A tool's copy usually shows another description and a size that matches no Windows release in the facts table. These fields can be copied, so this check only rules files out.
  4. The digital signature. Windows' copy is signed by Microsoft 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 on a program folder copy means a third-party file.
    Get-AuthenticodeSignature 'C:\path\to\program\version.dll' | Format-List Status, SignatureType, SignerCertificate
  5. What the program loads. Start the program, then open Process Explorer from Microsoft Sysinternals, choose Find, Find Handle or DLL, type version.dll and press Search. The path column shows which copy each process really loaded. A path outside the Windows folders means the copy is running inside that process.
  6. 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 known Microsoft builds. A program folder copy that matches is an unneeded Windows copy; one that does not match is a third-party file.

A match to a Microsoft build proves the file is Microsoft's. A file that does not match is not automatically malicious: many program folder copies are mod loaders that do exactly what their authors say. What decides is whether you chose to install that tool, from where, and whether the file is the one its author published.

Genuine version.dll compared with a planted copy: folder, neighbouring program, Description field, signature and hash
Folder, neighbour, Description, signature and hash tell Windows' version.dll from a copy that only borrows its name.

Check your version.dll

Choose the version.dll you are unsure about. Its SHA-256 checksum is calculated in your browser and compared with the 357 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
version.dll in a program or game folder although you never installed a mod, patch or tool for itSomething else put it there: a repackaged or cracked program, a bundled installer, or malware that uses the program as a launcher. Treat it as not genuine and scan.
A Windows program such as certutil.exe, mstsc.exe or whoami.exe outside C:\Windows, with a version.dll next to itWindows never copies its own programs into other folders with a DLL. This is a side-loading pair: the program is genuine, the version.dll is the payload.
version.dll in Downloads, Temp or AppData, next to a signed program you did not install thereSide-loading packages are often unpacked into these folders. A genuine signature on the .exe does not make the DLL beside it safe.
The Description says Microsoft, but the file has no valid Microsoft signatureA file that pretends to be Windows' copy. Legitimate loaders do not need to hide; one that imitates Microsoft's details deserves a close look.
Accounts logged out, new sign-in alerts or password resets after running a new program or modPossible theft of browser sessions or saved passwords. Remove the files, scan, and change passwords from another device.
Microsoft Defender names version.dll in System32 or SysWOW64Rare. Check the hash with the checker on this page and run the offline scan before anything else; repair the file with sfc /scannow if it does not match.

How attackers have used the name version.dll

Published research names malicious version.dll files. In these cases the genuine Microsoft file was not involved: the attackers shipped their own DLL under this name for a legitimate program to load.

MalwareHow it used the fileSource
FudCrypt crypting service (2026)A crypting service that wraps malware so security tools miss it packed payloads as side-load packages: a legitimate executable plus a malicious version.dll. HijackLibs records 68 such packages built around CCleanerBugReport.exe, 21 around OneDrive's Microsoft.SharePoint.exe, and others around CiscoCollabHost.exe from the Webex App, each with its own version.dll payload.Ctrl-Alt-Intel, April 2026

MITRE ATT&CK lists this as Hijack Execution Flow: DLL Side-Loading (T1574.002). The useful test on a home PC is the folder and the signer, not the name: a malicious version.dll keeps the genuine file name, and the program that loads it is often genuine and signed.

Programs that have been made to load a fake version.dll

Each program below is genuine and signed, and security researchers have documented that it can be made to load a planted version.dll. Usually the attacker copies the program into another folder and puts a fake version.dll next to it: Windows looks in the program's own folder first. A version.dll next to one of these programs, outside the folders below, is the copy to check.

Where the genuine version.dll belongs: C:\Windows\System32C:\Windows\SysWOW64

The genuine version.dll is signed by: Microsoft Windows, a Windows catalog signature (Properties shows no Digital Signatures tab; check it with Get-AuthenticodeSignature)

ProgramHow
C:\Users\<you>\AppData\Roaming\Zoom\bin\Zoom.exe
Zoom for Windows <= 5.11.1 (6602)
Side-loading
C:\Users\<you>\AppData\Local\Microsoft\OneDrive\<version>\Microsoft.SharePoint.exe
Microsoft SharePoint · signed by Microsoft Corporation · Microsoft.SharePoint.exe statically imports version.dll. Observed in 21 FUDCrypt side-load packages with unique malicious version.dll payloads.
SHA-256 of the genuine program: a382e94c77e0c29a1e36b816d68030966446ea154026731d576a93c80caa0420
Side-loading
C:\Program Files\CCleaner\CCleanerBugReport.exe
CCleaner Bug Report · signed by PIRIFORM SOFTWARE LIMITED · Executable metadata identifies OriginalFilename as CCleanerBugReport.exe and it statically imports version.dll. Observed in 68 FUDCrypt side-load packages with unique malicious version.dll payloads.
SHA-256 of the genuine program: f1db698c68543c49d9a19e5725e72a96535a06e787915076d55dfe960a770f8a
Side-loading
C:\Program Files\Cisco Spark\CiscoCollabHost.exe
CiscoCollabHost.exe (Webex App) statically imports version.dll. Observed in FUDCrypt side-load packaging.
Side-loading
C:\Program Files\IObit\IObit Unlocker\IObitUnlocker.exe
IObit Unlocker · signed by IObit CO. · IObitUnlocker.exe statically imports version.dll VerQueryValueA, VerQueryValueW, GetFileVersionInfoSizeA, GetFileVersionInfoSizeW, GetFileVersionInfoA, and GetFileVersionInfoW.
SHA-256 of the genuine program: eaa9dc1c9dc8620549fee54d81399488292349d2c8767b58b7d0396564fb43e7
Side-loading
C:\Windows\System32\agentservice.exe
signed by Microsoft Windows
Side-loading
C:\Windows\System32\certutil.exe
signed by Microsoft Windows
Side-loading
C:\Windows\System32\choice.exe
signed by Microsoft Windows
Side-loading
C:\Windows\System32\clip.exe
signed by Microsoft Windows
Side-loading
C:\Windows\System32\cmstp.exe
signed by Microsoft Windows
Side-loading

and 32 more programs. Source: the HijackLibs entry for version.dll, 10 public reports.

Everyday problems with version.dll

My security software flagged version.dll in a program folder

A detection on a mod loader is common, because a DLL that runs code inside another program behaves the way malware does. It is not automatically a false alarm either: side-loading malware uses exactly this file name.

Decide by origin. If you installed a known loader from its author's own release page and the file matches what was published there, the detection is about the technique. If you do not know where the file came from, or it sits next to a Windows program outside C:\Windows, leave it quarantined.

Removing a program folder copy never harms Windows: the program falls back to the genuine copy in System32 and only the tool stops loading.

I want to remove a mod or patch that uses version.dll

Delete or rename version.dll in the program folder, together with the files that came with it: usually an .ini file, .asi files, and a plugins or mods folder. A launcher's verify option does not remove extra files, so do this by hand.

If the tool had an installer, uninstall it from Settings, Apps first. Then scan with Microsoft Defender.

There are several version.dll files in the Windows folders

That is normal on 64-bit Windows: System32 holds the 64-bit library, SysWOW64 the 32-bit one, and Windows keeps further copies in System32\forwarders and in the WinSxS store. All are Microsoft files, with different sizes and hashes.

If one of them is damaged or replaced, repair it with Windows' own tools, run as administrator one after the other:

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

version.dll versions by Windows release

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

Windows releaseFile versionDelivered bySize, 64-bit
Windows 11 26H110.0.28000.1251KB5127646, Oct 13, 202655,224 bytes
Windows 11 25H210.0.26100.1150original release55,192 bytes
Windows 11 24H210.0.26100.1150original release55,192 bytes
Windows 11 23H210.0.22621.1original release50,976 bytes
Windows 11 22H210.0.22621.1original release50,976 bytes
Windows 11 21H210.0.22000.1original release49,936 bytes
Windows 10 22H210.0.19041.3636KB5126657, Oct 13, 202632,584 bytes
Windows 10 21H210.0.19041.3636KB5126657, Oct 13, 202632,584 bytes
Windows 10 21H110.0.19041.3636KB5126657, Oct 13, 202632,584 bytes
Windows 10 20H210.0.19041.3636KB5126657, Oct 13, 202632,584 bytes

Known versions of version.dll

A public DLL catalogue lists 16 versions of version.dll, from 5.1.2600.2180 to 10.0.18362.1, 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 version.dll errors on uGetFix

Questions people ask

Is version.dll a virus?

No, not the Windows copy. version.dll is Microsoft's Version Checking and File Installation Libraries, and the files in System32 and SysWOW64 are genuine Windows libraries. A version.dll next to a program's .exe is a different file with the same name. Most are mod loaders, but side-loading malware uses this name too, so check where it came from and compare its hash.

Why is there a version.dll in my program or game folder?

Because a mod loader, patch, overlay or other tool put it there, or malware did. Programs load version.dll from their own folder before the Windows copy, so tools use the name to get their code running inside the program. Programs do not need their own copy of this Windows file. If you did not install anything like that, treat the file as suspicious and scan the PC.

Can I delete version.dll?

Delete or rename a copy in a program folder whenever you like: the program falls back to Windows' own copy, and only the tool that needs it stops working. Do not delete the copies in System32 or SysWOW64. Installers, Windows tools and many programs need them, and Windows treats them as protected system files.

What can a malicious version.dll do?

Anything the program that loads it can do. The copy runs inside that process with your user account's rights, so it can read and write your files, read browser data and saved passwords, open network connections and start other programs, while still passing the version calls to Windows so the program looks normal. When the host is a signed program, security tools may trust the process more, which is why attackers pick this route.

Why do attackers like the name version.dll?

Because so many programs load it, Windows ones included, and because Windows looks for it in the program's own folder first. An attacker only needs one legitimate program that loads version.dll, a copy of that program, and their own DLL beside it. HijackLibs lists 42 programs that can be used this way.

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

Check three things. The folder: only System32, SysWOW64, System32\forwarders and WinSxS 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 341 known Microsoft builds. A program folder file that fails these checks is a third-party file, not Windows' own.

Sources

Version data read on Oct 17, 2026.

Questions and experiences

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

0 comments

…

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