Program file
msvcp140.dll: genuine Microsoft library or a malware loader using its name?
msvcp140.dll is Microsoft's C++ runtime library, installed by the Visual C++ Redistributable and by many programs. The copies in System32, SysWOW64 and known program folders are normal. Attackers have shipped files with this name next to a trusted program so that the program loads their code, so a copy in Temp, Downloads or AppData needs checking.
Prefer to check it yourself? The manual checks follow.
A msvcp140.dll signed by Microsoft, in C:\Windows\System32, C:\Windows\SysWOW64 or the folder of a program you installed, is a normal runtime library. It is not a process and uses no CPU by itself. Programs, games, Microsoft Teams and Edge WebView carry their own copies, so finding several is expected.
The name is a favourite for DLL side-loading: a program looks for msvcp140.dll in its own folder first, so a file with that name dropped next to it runs inside that program. Reports from 2024 and 2025 describe exactly this. A copy beside an unfamiliar program in a user folder is the case to check.
- Publisher
- Microsoft Corporation
- Description in the file
- Microsoft® C Runtime Library
- Installed by
- Microsoft Visual C++ 2015-2022 Redistributable (version 14), and by programs that carry their own copy
- Current official version
- 14.51.36247.0, read from Microsoft's x64, x86 and ARM64 installers on 3 October 2026
- Genuine folders
- C:\Windows\System32 (64-bit copy), C:\Windows\SysWOW64 (32-bit copy on 64-bit Windows), and the installation folders of programs that bring their own
- Signed by
- Microsoft: the signer reads Microsoft Corporation or Microsoft Windows Software Compatibility Publisher, depending on the build
- Runs as a process
- No. It is a library loaded into the programs that need it
- Seen in attacks as
- A side-loaded loader next to a legitimate program (NetSupport RAT in 2025, Cobalt Strike in 2024) and as a genuine dependency inside malware packages
What msvcp140.dll does
msvcp140.dll holds the C++ Standard Library for programs built with Visual Studio 2015 and later: strings, containers, streams, threads. Instead of carrying that code, a program loads this file when it starts. The 140 in the name is the toolset version, 14.0, which every Visual Studio release from 2015 to 2022 still uses.
Windows does not ship the file in System32 by itself. The Visual C++ Redistributable puts it there, and many programs also keep a private copy next to their .exe. That habit is what attackers rely on: Windows searches a program's own folder before System32, so whatever file named msvcp140.dll sits there is the one that gets loaded.
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 check a copy of msvcp140.dll
The questions are where the file is, who signed it and which program loads it. A library never shows in Task Manager under its own name, so use these checks instead.
- List every copy and where it sits. Run this in PowerShell. Copies in Windows, Program Files and a game's folder are normal. Look hard at copies under AppData, Temp, Downloads or ProgramData, especially recent ones.
Get-ChildItem -Path C:\ -Filter msvcp140.dll -Recurse -ErrorAction SilentlyContinue | Select-Object FullName, Length, LastWriteTime - Check the signature of a copy you are unsure about. Status must be Valid and the signer must be Microsoft. NotSigned, HashMismatch or another company's name means the file is not a genuine Microsoft build. The 2024 Cobalt Strike case used a Microsoft file whose code had been changed, which breaks the signature exactly like this.
Get-AuthenticodeSignature "C:\path\to\msvcp140.dll" | Format-List Status, SignerCertificate - See which program loads it. In Process Explorer (Microsoft Sysinternals) open Find, Find Handle or DLL, and type msvcp140.dll. Each result shows the process and the full path of the copy it loaded. A program running from a Temp or AppData folder that loads its own msvcp140.dll is the side-loading pattern.
- Look at what sits next to it. Side-loading needs a legitimate .exe in the same folder: in the reported cases a Java launcher (jp2launcher.exe) and a Cisco Webex service module (ptService.exe). An .exe you never installed, in a folder with a random or misleading name, together with msvcp140.dll, is a strong sign.
- Compare the checksum. Use the file check on this page. A match tells you which version you have; the signature check above tells you whether it is genuine. Neither clears the folder: one reported package shipped the genuine, signed msvcp140.dll as a dependency of the program it abused.
A valid Microsoft signature proves the file is genuine. It says nothing about the program sitting next to it, which is the part an attacker controls.

Check your msvcp140.dll
Choose the msvcp140.dll you are unsure about. Its SHA-256 and SHA-1 checksums are calculated in your browser and compared with the 54 versions of the file known from a public DLL catalogue.
The file stays on your computer. Nothing is uploaded: the checksum is computed locally.
Do you need msvcp140.dll?
Keep the copies in Windows and in programs you installed: without them those programs stop starting. Remove only a copy that failed the checks above, and remove what came with it.
- Leave System32, SysWOW64 and program folders alone. These copies belong to the Visual C++ Redistributable or to the program itself. If one of them is damaged, repair the redistributable or reinstall the program instead of deleting the file.
- Run a Microsoft Defender full scan. Open Windows Security, Virus and threat protection, Scan options, Full scan. Quarantine what it finds before deleting anything by hand.
- Run the offline scan. Malware that is loaded into a running program can hide while Windows runs. The offline scan restarts the PC and scans before Windows starts. It takes about 15 minutes.
Start-MpWDOScan - Delete the suspicious folder, not only the DLL. If a copy failed the signature check and sits next to an unknown .exe in Temp, AppData, Downloads or ProgramData, delete the whole folder. Deleting the DLL alone leaves the launcher that loads it.
- Remove what starts it again. Open Task Scheduler and look for tasks that run a program from ProgramData, AppData or Temp, and check Settings, Apps, Startup. In the 2025 NetSupport RAT case the loader created a scheduled task that started the remote access tool at every sign-in.
- Change passwords if a remote access tool or a stealer was involved. Both reported 2024 and 2025 cases ended in a remote access tool or an information stealer. Change passwords from a clean device, starting with e-mail and banking, and sign out of other sessions.
Warning signs
| What you see | What it means |
|---|---|
| msvcp140.dll in Temp, Downloads, AppData or ProgramData next to an .exe you did not install | The side-loading pattern described in the 2024 and 2025 reports. Check the signature and scan. |
| The signature check shows NotSigned or HashMismatch | The file is not an unmodified Microsoft build. Treat it as malicious. |
| You ran a command from a web page that told you to paste it to fix or verify something | That is the ClickFix lure that delivered the 2025 msvcp140.dll loader. Scan at once. |
| A new scheduled task runs a program from ProgramData or AppData at sign-in | A loader making its payload start again. Note the program path, then remove the task after the scan. |
| A site offers msvcp140.dll as a single download with no source or checksum | You cannot know what such a file contains. Take it from Microsoft's installer, or as the verified copy unpacked from it (linked on this page), and compare the checksum. |
| Several copies in Program Files, Teams or Edge WebView folders | Normal. Programs carry private copies of the runtime. |
How attackers have used msvcp140.dll
Three published cases, each with the report it comes from. Two used a fake or altered msvcp140.dll to run their code; one shipped the genuine file because the abused program needed it.
| Malware | How it used the file | Source |
|---|---|---|
| NetSupport RAT loader (2025) | A ClickFix web page got the victim to run a command. It downloaded a ZIP into the user's Temp folder and started jp2launcher.exe, a legitimate Java component, which loaded a malicious msvcp140.dll from the same folder. The DLL downloaded NetSupport RAT into C:\ProgramData\SecurityCheck_v1\ and added a scheduled task that started it at every sign-in. | Unit 42, July 2025 |
| REF0657 intrusion, Cobalt Strike (2024) | In an intrusion at a financial services organisation in South Asia, the attackers took Microsoft's msvcp140.dll and replaced its entry point with loader code from a public repository. The program next to it loaded the altered DLL from its own folder, and the DLL read a Cobalt Strike beacon from a config.ini file. | Elastic Security Labs, January 2024 |
| HijackLoader and Vidar Stealer (2024) | A password-protected archive with a Setup.exe used a legitimate Cisco Webex module, ptService.exe, to side-load the HijackLoader loader, which ran the Vidar information stealer. The archive also carried the genuine msvcp140.dll signed by Microsoft (437,448 bytes), because the Webex module needs it. | Trellix, June 2024 |
MITRE ATT&CK lists this as Hijack Execution Flow: DLL (T1574.001). The lesson for a home PC is the folder, not the name: a genuine msvcp140.dll can be part of an attack, and a fake one keeps the same name.

Programs that have been made to load a fake msvcp140.dll
Each program below is genuine and signed, and security researchers have documented that it can be made to load a planted msvcp140.dll. Usually the attacker copies the program into another folder and puts a fake msvcp140.dll next to it: Windows looks in the program's own folder first. A msvcp140.dll next to one of these programs, outside the folders below, is the copy to check.
Where the genuine msvcp140.dll belongs: C:\Windows\System32C:\Windows\SysWOW64C:\Program Files
| Program | How |
|---|---|
C:\Program Files\Common Files\Microsoft Shared\OFFICE16\LICLUA.exeOffice Licensing Admin Access Provider SHA-256 of the genuine program: aa07502bc2118083b057996bdc8a026c3b2f0757fac326fc7d13b05b80504246 | Side-loading |
C:\Program Files\Java\<version>\bin\jp2launcher.exeJava(TM) Platform SE 8 U451 SHA-256 of the genuine program: 1fc684c5adf02b5a96cc407932429f1c2d3d2e78e3104cfbcf535a9de1ee4921 | Side-loading |
Source: the HijackLibs entry for msvcp140.dll, 3 public reports.
Known versions of msvcp140.dll
A public DLL catalogue lists 54 versions of msvcp140.dll, from 14.0.22816.0 to 14.26.28804.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 msvcp140.dll errors on uGetFix
Questions people ask
Is msvcp140.dll a virus?
No, the genuine msvcp140.dll is Microsoft's C++ runtime library and is harmless. It is in System32, SysWOW64 and the folders of programs that use it. Malware has used the same name: in 2025 a NetSupport RAT loader and in 2024 a Cobalt Strike loader were both called msvcp140.dll. The name proves nothing, so check the folder and the digital signature of the copy you are worried about.
Why is there a msvcp140.dll in my Temp or AppData folder?
Some installers unpack a program with its runtime into Temp while they run and remove it afterwards, so a short-lived copy can be harmless. A copy that stays, next to an .exe you do not recognise, is how side-loading attacks are set up. Check its signature with Get-AuthenticodeSignature, see in Process Explorer which program loads it, and run a Microsoft Defender full scan.
Can a genuine, Microsoft-signed msvcp140.dll be part of malware?
Yes. In a 2024 campaign the malicious archive contained the genuine signed msvcp140.dll simply because the legitimate program the attackers abused needed it to start. The malicious code was in another DLL in the same folder. A clean signature on msvcp140.dll clears that one file, not the folder it sits in or the program next to it.
Can I delete msvcp140.dll?
Not the copies in System32, SysWOW64 or the folders of programs you installed: every program built with Visual Studio 2015 or later that uses them would stop starting. Delete only a copy that fails the signature check or sits next to an unknown program in a user folder, and delete that whole folder after a Microsoft Defender scan.
Does Microsoft Defender detect a fake msvcp140.dll?
Defender recognises known malicious files by their content, whatever they are called, so renaming a loader to msvcp140.dll does not hide a known one. A new or freshly altered variant can go unrecognised for a while. That is why the folder and signature checks on this page matter: they catch a suspicious copy even before any scanner knows the file.
How did a malicious msvcp140.dll get onto my PC?
In the reported cases it came with a program the victim was tricked into running: a command pasted from a fake verification page in 2025, and a password-protected archive posing as a setup file in 2024. Both put a legitimate program and the DLL into the same folder. Cracked software and DLL files downloaded one by one carry the same risk.
My copy matches a known version. Is it safe?
A match tells you which version you have. The list comes from copies users uploaded, so confirm the Microsoft signature as well. Then look at where it was: in System32, SysWOW64 or a program you installed, it is safe. In Temp, Downloads, AppData or ProgramData, beside a program you do not know, check that program, because an attacker can bring the genuine library along with the program they abuse.
Sources
- Microsoft Learn: Latest supported Visual C++ Redistributable downloads
- MITRE ATT&CK T1574.001: Hijack Execution Flow: DLL
- Unit 42 (Palo Alto Networks): Fix the Click, preventing the ClickFix attack vector (10 July 2025)
- Elastic Security Labs: Unmasking a financial services intrusion, REF0657 (30 January 2024)
- Trellix: Info stealing campaign uses DLL sideloading through legitimate Cisco Webex binaries (17 June 2024)
- Microsoft Learn: Get-AuthenticodeSignature
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.
…