![如何验证 Visual C++ Redistributable 安装的数字签名](https://linux22.com/image/1496017/%E5%A6%82%E4%BD%95%E9%AA%8C%E8%AF%81%20Visual%20C%2B%2B%20Redistributable%20%E5%AE%89%E8%A3%85%E7%9A%84%E6%95%B0%E5%AD%97%E7%AD%BE%E5%90%8D.png)
我最近安装了一个经过数字签名的程序,安装程序在安装到一半时启动了一个内部打包的 Microsoft Visual C++ 可再发行安装程序。
在运行该程序并授予其管理员权限之前,我扫描了该程序并检查了它的数字签名(我的计算机上的标准程序 - 扫描所有程序和安装程序,管理员权限需要来自信誉良好来源的有效数字签名)。
主要问题:数字签名是针对安装程序的,没有针对任何内部软件包的特定验证。我在控制面板 -> 程序和功能中检查了可再发行软件包,右键单击选项为卸载和更改。
单击“更改”将打开一个带有修复/卸载/关闭按钮的窗口。
有没有什么方便的方法来验证 Visual C++ 可再发行安装的数字签名?(特别是验证可再发行软件包是否真实且未被篡改?)
安装程序仅具有其发布者的数字签名。
答案1
我能想到的有两种方法:
您的安装程序必须在安装前将 Visual C++ Redistributable 包提取到某个位置。通常它放在 下的某个位置
%temp%
。您可以在安装前清理该文件夹,或者在 Sandboxie 上运行安装程序,然后浏览沙盒文件以找到它并检查其数字签名。安装 HIPS(主机入侵防御)软件,正确设置,然后系统将提示您单独安装每个软件包。
如果您想检查系统中已安装的 VC++ Redistributable DLL,请浏览%windir%\System32
并检查msvcpX.dll
文件(其中 X 是版本号(例如,VC++ 版本 14.0.23918 的 msvcp140.dll)。
在授予完全权利之前检查数字签名的良好做法值得称赞。