簡體   English   中英

從.NET驗證一個DLL具有有效的簽名並且沒有被修改

[英]From .NET verify a dll has valid signature and has not been modified

我的c#.NET程序訪問一個c ++庫。

該庫使用證書簽名,並且與程序位於同一文件夾中。

在運行時,在我加載c ++庫之前,我想確保該庫確實是我的並且未被篡改。

我已經能夠從dll中獲取證書並驗證證書:

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

這告訴我文件證書是可以的,但是如果我隨后對文件進行hexedit並再次運行程序,則證書仍然可以確定。

我在證書的哪里可以找到我的庫的哈希值(而不是證書的哈希值),如何創建庫的哈希值以進行比較,以便可以檢測到文件被篡改?

我懷疑這應該很簡單,也許我忽略了一些東西。

P調用本機Windows API WinVerifyTrust ,Microsoft MSDNMSDN上對其進行了記錄,並提供了C語言示例。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM