c++ - 如何读取 C++ 中的嵌入式代码签名?

标签 c++ digital-signature

我用我的数字签名签署了文件,我如何从这个文件中读取这个签名?

签名是可信的 (Globalsign)。加密 RSA/SHA1。签名文件为.exe

最佳答案

首先,您需要指定要处理的证书类型。如果您正在谈论 CLI 程序集,那么您可能正在处理 StrongName 签名,这是完全不同的野兽,旨在防止 CLR 的全局程序集缓存中的名称冲突。

这听起来更像是您想阅读用于 native 和 CLI 应用程序的 Authenticode 签名。如果您想阅读证书本身,那么您需要了解 PE/COFF 规范,并为 PE(可移植可执行文件)文件格式实现解析器,这是 Windows NT 及其衍生产品使用的格式。如果您希望能够真正验证该证书,您需要调用 WinVerifyTrust function ,它将为您执行 Authenticode 验证。

当然,如果您只是想检查您的证书是否有效而不需要编写您自己的应用程序来执行此操作,您可以右键单击该文件并在 Windows 资源管理器中选择属性...,它应该会向您显示文件的签名状态。否则,您可以使用命令行实用程序 SigCheck .

关于c++ - 如何读取 C++ 中的嵌入式代码签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888358/

相关文章:

c# - 捕获外部进程输出

c++ - 如何强制 32 位版本的远程桌面客户端在 64 位 Vista 上运行?

c++ - 在 C++ 中,我可以将一个集合插入一个集合作为值的映射中吗?

security - 数字签名与 HMAC 与通过 DH 的 key

java - java中如何获取数字证书的 key 使用情况

c++ - 有人对构建服务器的虚拟机性能进行了基准测试吗?

c++ - C++头文件中的函数定义

c# - 对 PDF 文件进行数字签名

asp.net - 一种在 ASP.NET 中生成图像签名或哈希值以进行重复检测的方法?

java - 创建随机签名