问题标签 [signtool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10027 浏览

code-signing - 使用 signtool 创建密钥并签署可执行文件

我将如何签署 Visual C# 可执行文件?

SignTool.exe 找不到证书。

我将如何创建自签名密钥和证书,并让 signtool 能够查看并使用证书?

已安装 OpenSSL 和 Visual Studio 2010 Express。运行 Windows 7 Ultimate x64。

使用 Windows Driver Kit 中的 SignTool.exe。

0 投票
1 回答
720 浏览

wdk - Signtool 停止添加会签 - 怎么了?

我最近遇到了一个非常奇怪的问题。我们产品的编译包括签署内核模式驱动程序和添加会签。这是通过调用 DDK(现为 WDK)中包含的 signtool 来完成的:

"%DDKBASE%\6001.18000\bin\SelfSign\signtool.exe" 签名 /T http://timestamp.globalsign.com/scripts/timstamp.dll /ac "path-to-countercert\MSCV-GlobalSign.cer" /s SPC /n "EldoS 公司" %1

直到最近,当我们发现反证书没有添加到签名的驱动程序时,一切都运行良好。signtool 不报告任何错误并默默地忽略证书。签名本身和主证书链已正确应用,并且仅缺少反证书。

来自更高版本 WDK(版本 7600.16385.0)的 SignTool 使用相同的命令行可以正常工作。

我尝试重新注册 capicom.dll,附带有问题的 signtool(它位于同一个文件夹中),但这没有帮助。

我不确定我们是否可以使用来自 7600.16385.0 的 signtool,因为我觉得它可能会破坏与 Windows 2000 的兼容性。

所以问题是,是否有人知道可能出了什么问题?

Upd:嗯,看起来 7600 signtool 工作正常(即使用该版本签名的驱动程序在 XP 和 Windows 7 上工作正常),所以我们现在就走这条路,将来会用我们自己的自制工具替换 signtool 以避免这种情况惊喜。

0 投票
2 回答
8319 浏览

windows - UAC提示为msi显示一个临时随机的Program Name,能显示正确的名称吗?

我正在为 Windows 构建一个 MSI 安装程序并使用 signtool 对安装程序进行签名。当我运行 .msi 对其进行测试时,会出现 UAC(用户帐户控制)提示,询问我是否要允许安装继续进行。这很好,但提示显示了许多字段,并且对于程序名称字段,它显示类似“403b3.msi”的内容。这不是我正在运行的 msi 的名称。

如何获得要显示的正确程序名称?

0 投票
4 回答
7058 浏览

c# - 验证可执行文件是否已签名(用于签署该 exe 的signtool)

在我的应用程序中,我需要验证它是否已签名。如果已签名,则继续执行,否则退出应用程序。signtool 将用于对应用程序进行签名。是否有任何 C# 代码可以做到这一点?

0 投票
1 回答
1316 浏览

certificate - 如何更新代码签名证书

我有一个来自 Thawte 的代码签名证书,该证书将在几周后到期。

我已经支付了续订费用,并且收到了续订 .cer 文件。

我已经成功创建了一个更新的 .pfx 文件,该文件允许我签署 Firefox 插件,并且签名在“未来”时间生效。

但是,当我尝试使用相同的 .pfx 文件对 Internet Explorer 插件进行签名时,我收到一个 signtool 错误 0x80880253(“证书不再有效”)。

我尝试使用 mmc.exe 和 certmgr.exe 在我的证书管理器控制台中更新证书,但无论我做什么 - 到期日期仍然是 2010 年。

我能够在 certmgr 向导中看到“续订”证书,但它位于“其他人”选项卡下,而不是“个人”选项卡下。

有谁知道我做错了什么?

谢谢

0 投票
1 回答
864 浏览

installation - signtool 结果损坏 setup.exe

我尝试像这样对我的 setup.exe 进行签名:signtool sign /a setup.exe 签名成功,验证正常,但是当我开始安装时,它识别出内容已更改,并显示:“安装程序已损坏。 ……”。我用两个不同的安装程序(智能安装程序,实际安装程序)尝试了这个。

编辑:使用实际安装程序,有一个解决方案:“为避免此问题,请转到通用图形页面并取消选中“自定义图标”复选框。”

0 投票
5 回答
8240 浏览

authenticode - SignTool 意外的内部错误

我正在使用以下命令运行 SignTool:signtool sign /f keyfile.pfx /p mypassword pathToMsiFile.msi,我收到以下错误:

SignTool 错误:发生了意外的内部错误。错误信息:“错误:Store::ImportCertObject() 失败。” (-2146893792/0x80090020)

它直到一天前才起作用,我不知道可能发生了什么变化......

任何想法都会很棒,谢谢!


我设法修复它。显然用户已损坏。

在使用微软的这个 KB修复用户之后,一切都恢复正常了。

0 投票
1 回答
5267 浏览

code-signing - PVK2PFX 错误 0x80070490 - 找不到与密钥匹配的证书

我们从 Thawte 获得了新的证书 (*.cer) 文件,并且我通过了我们的标准程序以允许它与代码签名一起使用。

如果我使用我们的旧(工作)证书:

  1. 将证书 ( .cer) 转换为软件发布证书 ( .spc)

    /li>
  2. 将我们的私钥文件 (*.pvk) 与 SPC 组合成一个 PFX:

    提示输入私钥文件密码,输入,点击确定

    在此处输入图像描述

我们很高兴;准备使用signtool


我们现在有了证书,我遵循相同的程序:

  1. 将证书 ( .cer) 转换为软件发布证书 ( .spc)

    /li>
  2. 将我们的私钥文件 (*.pvk) 与 SPC 组合成一个 PFX:

    提示输入私钥文件密码,输入,点击确定

    在此处输入图像描述

    /li>

怎么了?


笔记:

  • 十年来我们一直使用相同的私钥文件 (*.pvk)
  • 今年Thawte给了我们2年的证书;而不是通常的 1 年
  • 今年 Thawte 将他们的签名证书Thawte Code Signing CAThawte Code Signing CA - G2
  • 谷歌表示没有人收到错误找不到与密钥匹配的证书。
  • Windows SDK 仅包含对错误代码的两个引用0x80070490

    • Visual Foxpro for Windows 头文件 ( vfwmsgs.h):

      这几乎可以肯定是一条红鲱鱼;福克斯专业版?

    • 注释掉 RSS 屏幕保护程序示例中的代码 ( RssItem.cs)

      也几乎可以肯定是红鲱鱼;XML?

  • 十进制版本0x80070490-2147023728
0 投票
1 回答
1940 浏览

python - 输出的 py2exe exe 仅在签名时不会运行:ImportError

所以,我有一个我在 python 2.6 中制作的程序,它像普通 python 一样运行良好,并且在通过 py2exe v0.6.9 制作成 exe 时运行良好。我使用 signtool 对其进行签名,没有改变任何其他内容,并且它停止工作。

当我运行签名的 exe 时,我从脚本的第 1 行收到“ImportError:没有名为 os 的模块”。我做了一些挖掘,发现了这个: http: //osdir.com/ml/python.py2exe/2008-04/msg00031.html,这似乎是对我的问题的非常接近的描述。我手动将链接到 py2exe 网站的补丁应用到我的 build_exe.py 文件中,尽管我运行的是 py2exe 0.6.9 而不是 0.6.6,所以我尝试考虑到这一点。还是没有爱。

根据链接,这似乎是一个 py2exe 问题。不过我不知道。任何帮助将非常感激。当然,我会回答您对此提出的任何其他问题。谢谢您的帮助!

0 投票
2 回答
4942 浏览

c# - C#:如何检测验证码签名文件的篡改

我正在尝试编写一个 C# 程序来验证 exe 的数字签名。exe 是用验证码证书签名的,我想检测篡改。

我已经能够创建一个 SignedCms 实例,如下所述:Get timestamp from Authenticode Signed files in .NET

我认为 SignedCms.CheckSignature 可以解决问题,但这种方法永远不会引发异常......即使在我修改 exe 的某些位时也不会......