Windows file
msvcrt.dll: genuine Windows C runtime, or a copy that only borrows the name?
msvcrt.dll is the Windows NT CRT DLL, the C runtime library that Windows components and many older programs load for text, files, memory and time. The copies in System32 and SysWOW64 are genuine and safe. Windows never uses a msvcrt.dll from any other folder, so a copy elsewhere is a leftover from a program, or a file that hides behind a familiar name.
Prefer to do it yourself? The manual steps follow.
msvcrt.dll in C:\Windows\System32 (and C:\Windows\SysWOW64 on 64-bit Windows) is a genuine Microsoft file and is safe. Windows itself depends on it, and so do many programs. Do not delete, rename or replace it: Windows components and programs would stop working.
msvcrt.dll is a known DLL, which means Windows loads it only from its own folders. A msvcrt.dll in Downloads, Temp, AppData, ProgramData or a random program folder is not Windows' copy. Most such files are harmless leftovers, but a file that also runs at startup or is unsigned deserves a close look.
- Description in the file
- Windows NT CRT DLL
- What it is
- Windows' own C runtime: standard C functions such as printf, fopen, malloc and strcpy for Windows components and for programs built against it. It is not part of the Visual C++ Redistributable
- Genuine folders
- C:\Windows\System32\msvcrt.dll and, on 64-bit Windows, C:\Windows\SysWOW64\msvcrt.dll for 32-bit programs
- Not genuine by location
- Any msvcrt.dll in Downloads, Temp, AppData, ProgramData, a user folder or next to a program's .exe. Windows never takes its copy from there
- Size of the genuine file
- Windows 11 24H2 and 25H2: 716,104 bytes (64-bit). Windows 10 22H2: 654,392 bytes (64-bit). The 32-bit file in SysWOW64 is larger than the 64-bit one
- Version number
- Always 7.0 followed by the Windows build, for example 7.0.26100 on Windows 11 24H2 and 25H2 and 7.0.19041 on Windows 10 22H2
- Newest indexed build
- Windows 11 26H1: 7.0.28000.3231, delivered by KB5127646 on 13 October 2026
- Known Microsoft builds
- 130 builds across 20 Windows releases in Winbindex
- Is it a process
- No. It is a library loaded into programs and Windows components, so it never appears on its own in Task Manager
What msvcrt.dll is, and why other copies turn up
msvcrt.dll holds the standard C runtime: the functions a program written in C uses to print and format text, open and read files, allocate and free memory, compare strings and read the time. Its name comes from the Microsoft Visual C++ runtime of the 1990s. Microsoft later declared it an operating system DLL, to be used only by Windows components, and newer Visual C++ versions ship their own numbered runtimes instead. Windows still includes it and updates it with every release, because many older programs and some tools built with other compilers load it.
Because Windows lists msvcrt.dll among its known DLLs, every program gets the copy from System32, or from SysWOW64 for 32-bit programs, no matter what lies in the program's own folder. That makes the classic trick of placing a fake library next to a program much less useful with this name than with libraries such as version.dll or dinput8.dll. It also means a msvcrt.dll in any other folder has no job to do for Windows.
Such copies still appear. Old installers sometimes copied the runtime next to their program, portable tools carry it, and backup or unpacked driver folders can hold one. Those files are Microsoft's builds and simply unused. The ones that matter are different: a file named msvcrt.dll in AppData, Temp or ProgramData that is not signed by Microsoft, or that a scheduled task, a Run key or rundll32 starts. A familiar system name is an easy disguise, and a file that hides behind it is whatever its author made it.
So the question is not whether msvcrt.dll is a virus, but which file you are looking at. The two copies in the Windows folders are Microsoft's. For any other copy, the folder, the signature, the hash and what starts it decide.
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 Windows' msvcrt.dll from another copy
A DLL is not listed in Task Manager as a process, so use the folder, the file properties, PowerShell, Autoruns and the checker on this page.
- Where the file is. List every copy with the command below. C:\Windows\System32 and C:\Windows\SysWOW64 are Windows' copies; WinSxS and servicing folders also hold Microsoft's builds. Every other path is a copy Windows does not use, so find out which program it belongs to.
Get-ChildItem C:\ -Recurse -Filter msvcrt.dll -ErrorAction SilentlyContinue | Select-Object FullName, Length, @{n='Version';e={$_.VersionInfo.FileVersion}} - The Description, version and size. Right-click the file, Properties, Details. The genuine file says Windows NT CRT DLL, with Microsoft Corporation as the company and a version that starts with 7.0 and continues with a Windows build number. Compare the size with the facts table. A fake can copy these fields, so this check only rules files out.
- 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 a third-party file.
Get-AuthenticodeSignature 'C:\path\to\msvcrt.dll' | Format-List Status, SignatureType, SignerCertificate - 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 copy outside the Windows folders that matches is an unneeded Microsoft file; one that matches nothing and is unsigned is not Microsoft's.
- What starts it. Run Autoruns from Microsoft Sysinternals as administrator and search for msvcrt. Nothing in Windows starts msvcrt.dll on its own through a Run key, a scheduled task or rundll32. An entry that does, especially from AppData, Temp or ProgramData, points to the file that needs attention.
- Scan before you delete. Run Microsoft Defender's full scan, and the offline scan if a detection returns after removal. Never delete the copies in System32 or SysWOW64, whatever a tool says, before you have checked their hash and signature.
A match to a Microsoft build proves the file is Microsoft's. A copy outside the Windows folders that does not match is not automatically malicious: it can be an old runtime that a program installed. What decides is whether it is signed, what starts it and which program it belongs to.

Check your msvcrt.dll
Choose the msvcrt.dll you are unsure about. Its SHA-256 checksum is calculated in your browser and compared with the 152 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 |
|---|---|
| msvcrt.dll in AppData, Temp, ProgramData or a user folder, with no program around it | No Windows component and no normal installer needs it there. Check its signature and hash before anything else. |
| The file claims to be Windows NT CRT DLL from Microsoft but has no valid Microsoft signature | A file that imitates Windows' details without Microsoft's signature is not Windows' file. Treat it as suspicious and scan. |
| A Run key, scheduled task or rundll32 command starts a msvcrt.dll | Windows never starts this library on its own. An autostart entry that loads it is the strongest sign of a disguised file. |
| A lookalike name next to the real one, with letters swapped or a number added | Names that only resemble msvcrt.dll are not Windows files at all. Windows ships no such variants in its folders. |
| The version does not start with 7.0, or the size matches no Windows release | In the Windows folders that means a damaged or replaced file: repair it with sfc /scannow. Elsewhere it is an old runtime or a third-party file. |
| Microsoft Defender names msvcrt.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. |
Everyday problems with msvcrt.dll
Two msvcrt.dll files are in the Windows folders
That is normal on 64-bit Windows: System32 holds the 64-bit library and SysWOW64 the 32-bit one. Both are genuine Microsoft files with different sizes and hashes, and the 32-bit one is the larger of the two.
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 /RestoreHealthAn old program folder has its own msvcrt.dll
Some older installers copied the runtime next to their program. Windows ignores that copy and gives the program the one from System32 or SysWOW64, so the file is unused.
If the hash matches a Microsoft build, it is harmless and you can leave it. If it matches nothing and is not signed, and you do not know the program, remove the folder's program from Settings, Apps and scan the PC.
A security tool flagged a msvcrt.dll outside the Windows folders
Do not restore it from quarantine before you know what it is. Windows does not need a copy outside System32 and SysWOW64, so leaving a flagged copy in quarantine never harms Windows.
Check which program was in the same folder and whether an autostart entry pointed to the file. Remove that program, then run a full scan and the offline scan.
msvcrt.dll versions by Windows release
The newest build indexed for each release, and the update that delivered it. 130 Microsoft builds in total are known.
| Windows release | File version | Delivered by | Size, 64-bit |
|---|---|---|---|
| Windows 11 26H1 | 7.0.28000.3231 | KB5127646, Oct 13, 2026 | 716,144 bytes |
| Windows 11 25H2 | 7.0.26100.9711 | KB5127648, Oct 13, 2026 | 716,104 bytes |
| Windows 11 24H2 | 7.0.26100.9711 | KB5127648, Oct 13, 2026 | 716,104 bytes |
| Windows 11 23H2 | 7.0.22621.7649 | KB5126653, Oct 13, 2026 | |
| Windows 11 22H2 | 7.0.22621.7649 | KB5126653, Oct 13, 2026 | |
| Windows 11 21H2 | 7.0.22000.1 | original release | 673,896 bytes |
| Windows 10 22H2 | 7.0.19041.7802 | KB5126657, Oct 13, 2026 | 654,392 bytes |
| Windows 10 21H2 | 7.0.19041.7802 | KB5126657, Oct 13, 2026 | 654,392 bytes |
| Windows 10 21H1 | 7.0.19041.7802 | KB5126657, Oct 13, 2026 | 654,392 bytes |
| Windows 10 20H2 | 7.0.19041.7802 | KB5126657, Oct 13, 2026 | 654,392 bytes |
Known versions of msvcrt.dll
A public DLL catalogue lists 22 versions of msvcrt.dll, from 6.0.8397.0 to 7.0.19041.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 msvcrt.dll errors on uGetFix
Questions people ask
Is msvcrt.dll a virus?
No, not the Windows copy. msvcrt.dll is the Windows NT CRT DLL, and the files in System32 and SysWOW64 are genuine Windows libraries that Windows needs. A file with the same name in AppData, Temp or another folder is a different file. Most are old runtime copies left by programs, but a familiar name is also an easy disguise, so check the signature and hash.
Can I delete msvcrt.dll?
Not the copies in System32 or SysWOW64: Windows components and many programs need them, and Windows protects them as system files. A copy in another folder is never used by Windows, so you can remove it once you know which program it belongs to and that the program does not need it, or let a security scan quarantine it.
Why is there a msvcrt.dll outside System32?
Usually because an old installer or a portable tool copied it next to its program, or because a backup, driver package or unpacked archive holds one. Windows ignores those copies. If the file sits in AppData, Temp or ProgramData with no program around it, or something starts it at sign-in, treat it as suspicious and scan.
Can malware replace msvcrt.dll in System32?
Windows protects the file: only Windows updates and the servicing stack replace it, and System File Checker restores it if it changes. Malware rarely tries, because it can call the genuine library like any other program. If the copy in System32 or SysWOW64 does not match a Microsoft build or is unsigned, run sfc /scannow, DISM and an offline scan.
How do I check if my msvcrt.dll is genuine?
Check three things. The folder: only System32 and SysWOW64 hold Windows' copy. 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 130 known Microsoft builds. A file that fails these checks is not Windows' msvcrt.dll.
Is msvcrt.dll part of the Visual C++ Redistributable?
No. Its name suggests it, but msvcrt.dll belongs to Windows and changes only with Windows updates. The Visual C++ packages install numbered runtimes such as msvcr100.dll, msvcp140.dll and vcruntime140.dll instead. So a msvcrt.dll that an installer offers to put in System32 is not a normal part of any Visual C++ setup.
Why do so many crash reports name msvcrt.dll?
Because Windows components and many programs use it for everyday work such as copying text and handling memory. When a program damages its own memory, the crash is often noticed inside a C runtime function, so the report names msvcrt.dll. That points to the program, not to a virus or a broken Windows file.
Sources
- The Old New Thing (Microsoft): Windows is not a Microsoft Visual C/C++ Run-Time delivery channel
- Microsoft Learn: Dynamic-link library search order
- Microsoft Sysinternals: Autoruns
- 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.
…