visual studio编译的可执行文件,复制到别的机器执行时报找不到MSVCP140D.dll、VCRUNTIME140D.dll、VCRUNTIME140_1D.dll、ucrtbased.dll
我安装visual studio 2022编译了以下项目,这个项目本身就是一个检测程序,安全方面的,红蓝对抗中红方工具,红方的目的是检测和评估目标组织的安全防御能力,发现潜在的漏洞和风险,从而帮助组织加强其安全防护措施。该工具主要检测一些安全隐患和是否虚拟机环境。
下面都是那个工具的简单介绍,可以忽略,题目问题的解决方案在文档结尾。
红队安全项目:https://github.com/LordNoteworthy/al-khaser
视频介绍:https://v.douyin.com/idNQv2K5/
其中的检测虚拟机模块的代码:
https://github.com/LordNoteworthy/al-khaser/tree/master/al-khaser/AntiVM
如果你的机器没有相关虚拟机的蛛丝马迹,都是绿色
但凡有一点虚拟机的蛛丝马迹,比如你物理机安装了vmware软件,就会有红色提示
步入正题,
编译的可执行文件复制到别的机器执行时报找不到MSVCP140D.dll、VCRUNTIME140D.dll、VCRUNTIME140_1D.dll、ucrtbased.dll,看我如何解决的
1、针对这种报错,我首先就经验主义了,按平时的经验,这种小儿科的问题很好解决,从微软官网下载最新版VC库(https://learn.microsoft.com/zh-CN/cpp/windows/latest-supported-vc-redist)安装文件安装一下就行了,谁知打脸了。
2、此外,还搜到一些乱七八糟的各种.dll文件修复工具(也不知道工具能不能解决问题,只让你试用修一个.dll文件,其余的得付费,就那1个,是否修好了,不得而知,它只是给你显示绿色了而已),这种软件风险较高,我没用。
3、浪费了不少时间,快要放弃的时候,想起之前有2个case,当时也是费事不少,找到文档,按当时的办法也不行。
https://cloud.tencent.com/developer/article/2043666
https://cloud.tencent.com/developer/article/2196794
4、后来我就在我原本编译环境里用everything搜,搜到后跟编译后的可执行文件放在一起就可以了
everything的搜索表达式如下
MSVCP140D.dll "C:\Program Files\Microsoft Visual Studio\2022"
VCRUNTIME140D.dll "C:\Program Files\Microsoft Visual Studio\2022"
VCRUNTIME140_1D.dll "C:\Program Files\Microsoft Visual Studio\2022"
ucrtbased.dll "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.UniversalCRT.Debug\"|"C:\Program Files\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.UniversalCRT.Debug\"|"C:\Windows"|"C:\Program Files (x86)\Windows Kits\"|"C:\Program Files\Windows Kits\" !"\arm"
一句表达式过滤出所有
msvcp*.dll|VCRUNTIME*.dll|ucrtbased.dll "\debug_nonredist\"|"\Microsoft.UniversalCRT.Debug\"|"\Windows Kits\" !"\arm" !"D:\" !"\x86" !"\onecore"
搜出的结果,我们只取x64版本的文件复制放到可执行文件的同目录即可
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。