如何检查可执行代码签名签名?

信息安全 电子签名 代码签名
2021-08-28 05:12:07

如何查看可执行文件具有的所有代码签名签名?我知道对工具的请求通常被认为是基于意见的,但我真的找不到一个,我也不希望有很多答案。

背景:

我有一个由供应商签名的可执行文件(用于 UAC 目的)。然后我测试了该应用程序,并使用 Windows SDK 8 signtool /as(附加签名)应用我的签名。

我在 Windows 资源管理器中看不到证书,尽管它显示“证书列表”。

Signtool /verify不显示证书(可能是因为它之前报告了一个不受信任的证书的错误)。

我无法使用 C# 获得证书,因为该类仅支持一个证书(第一个)。对于 C# 解决方案,我在 StackOverflow 上发布了一个问题

谷歌搜索免费软件,我找不到任何可以显示所有证书的工具。甚至商业PE Explorer的演示版本也没有显示它。

2015-06-01 更新

SysInternals Sigcheck(如答案中所提议)仅显示第一个签名加上证书链。

与此同时,微软 Windows 肯定有更新。Windows 资源管理器现在显示证书列表。

数字签名 Windows 资源管理器

1个回答

您可以为此使用免费osslsigncode工具: https ://github.com/SummitRoute/osslsigncode-fork

osslsigncode 验证 my.exe

更新:使用以下命令通过MSYS2安装的二进制文件是更好的选择(更新和非 Cygwin 依赖项):

pacman -S mingw-w64-{i686,x86_64}-osslsigncode