gpt4 book ai didi

c# - 从 .NET 验证 dll 具有有效签名并且未被修改

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:04 24 4
gpt4 key购买 nike

我的 C# .NET 程序访问 C++ 库。

库是用证书签名的,并且与程序位于同一文件夹中。

在运行时,在我加载 c++ 库之前,我想确保该库确实是我的并且没有被篡改。

我已经能够从我的 dll 中获取证书并验证证书:

X509Certificate2 cert = new X509Certificate2(X509Certificate.CreateFromSignedFile(filename));
Console.WriteLine(cert.Issuer);`
cert.Verify();`

这告诉我文件证书没问题,但如果我随后对我的文件进行十六进制编辑并再次运行我的程序,证书仍然有效。

我可以在证书中的什么位置找到我的库的哈希值(不是证书的哈希值),以及如何创建我的库的哈希值来比较它们,以便我可以检测到被篡改的文件?

我想应该很简单,也许我忽略了什么。

最佳答案

PInvoke native Windows API WinVerifyTrust,Microsoft 在 MSDN 中对其进行了记录用 C 编写的示例。

如果您使用搜索引擎,可能会有其他人管理的示例。

关于c# - 从 .NET 验证 dll 具有有效签名并且未被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50538700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com