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.
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 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.
- 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}} - 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.
- 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.
- 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 - 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.
- 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.

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.
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 |
|---|---|
| version.dll in a program or game folder although you never installed a mod, patch or tool for it | Something 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 it | Windows 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 there | Side-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 signature | A 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 mod | Possible 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 SysWOW64 | Rare. 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.
| Malware | How it used the file | Source |
|---|---|---|
| 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)
| Program | How |
|---|---|
C:\Users\<you>\AppData\Roaming\Zoom\bin\Zoom.exeZoom for Windows <= 5.11.1 (6602) | Side-loading |
C:\Users\<you>\AppData\Local\Microsoft\OneDrive\<version>\Microsoft.SharePoint.exeMicrosoft 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.exeCCleaner 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.exeCiscoCollabHost.exe (Webex App) statically imports version.dll. Observed in FUDCrypt side-load packaging. | Side-loading |
C:\Program Files\IObit\IObit Unlocker\IObitUnlocker.exeIObit 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.exesigned by Microsoft Windows | Side-loading |
C:\Windows\System32\certutil.exesigned by Microsoft Windows | Side-loading |
C:\Windows\System32\choice.exesigned by Microsoft Windows | Side-loading |
C:\Windows\System32\clip.exesigned by Microsoft Windows | Side-loading |
C:\Windows\System32\cmstp.exesigned 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 /scannowDISM /Online /Cleanup-Image /RestoreHealthversion.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 release | File version | Delivered by | Size, 64-bit |
|---|---|---|---|
| Windows 11 26H1 | 10.0.28000.1251 | KB5127646, Oct 13, 2026 | 55,224 bytes |
| Windows 11 25H2 | 10.0.26100.1150 | original release | 55,192 bytes |
| Windows 11 24H2 | 10.0.26100.1150 | original release | 55,192 bytes |
| Windows 11 23H2 | 10.0.22621.1 | original release | 50,976 bytes |
| Windows 11 22H2 | 10.0.22621.1 | original release | 50,976 bytes |
| Windows 11 21H2 | 10.0.22000.1 | original release | 49,936 bytes |
| Windows 10 22H2 | 10.0.19041.3636 | KB5126657, Oct 13, 2026 | 32,584 bytes |
| Windows 10 21H2 | 10.0.19041.3636 | KB5126657, Oct 13, 2026 | 32,584 bytes |
| Windows 10 21H1 | 10.0.19041.3636 | KB5126657, Oct 13, 2026 | 32,584 bytes |
| Windows 10 20H2 | 10.0.19041.3636 | KB5126657, Oct 13, 2026 | 32,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
- Microsoft Learn: Dynamic-link library search order
- Microsoft Learn: GetFileVersionInfoW function (winver.h)
- HijackLibs: version.dll
- Ctrl-Alt-Intel: Dissecting FudCrypt, a real-world malware crypting service analysis (April 2026)
- MITRE ATT&CK T1574.002: DLL Side-Loading
- Microsoft Sysinternals: Process Explorer
- Winbindex, the Windows binaries index (m417z)
- Winbindex, the Windows binaries index (m417z)
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.
…