如何对可执行文件进行签名以在WEC2013上执行

时间:2019-04-10 08:40:19

标签: certificate x509certificate windows-embedded-compact

对于带有enabled security loader的WEC2013平台,我创建了一个自签名证书。证书具有属性

Key Usage: Digital Signature (80)
Enhanced Key Usage: Code Signing (1.3.6.1.5.5.7.3.3)

证书已导出到文件ciroots.p7b和PFX文件。如here所述,ciroots.p7b已添加到WEC2013平台的FILES文件夹中。使用该平台构建的OS设计包括文件ciroots.p7b的副本。

PFX已用于使用命令对文件进行签名

signtool -f /path/to/PFX -p ThePassword example.exe

这与description相匹配。 signtool命令修改了.EXE。生成的文件比原始文件大1kB。

在目标上启动OS设计并将签名的.EXE复制到目标后,应该可以执行该程序。但是开始失败并显示以下消息:

  

无法执行example.EXE

在WEC2013文档中描述的步骤中我错过了什么?如何准备可执行文件以在启用LVMOD的OS设计上运行?

尽管在签名过程中没有错误消息,但我可能错过了一些重要的属性。使用LVMOD进行代码签名的证书有什么要求?

编辑: 对应于Daniels的评论,我使用signtool验证了签名文件。该证书已安装在“受信任”存储区中的PC上(系统询问我是否要信任该证书)。在Using SignTool to Verify a File Signature处运行signtool我得到了结果:

 C:\Test>signtool verify  example.exe 
 SignTool Error: A certificate chain processed, but terminated in a root
         certificate which is not trusted by the trust provider.

 Number of errors: 1

 C:\Test>signtool verify /pa example.exe
 Successfully verified: example.exe

 C:\Test>

第一次调用失败,如signtool文档中所述:

  

如果前面的示例失败,则可能是签名使用了代码签名证书。 SignTool默认使用Windows驱动程序策略进行验证。

0 个答案:

没有答案
相关问题