为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查已签名的 C# DLL 的完整性?

如何检查已签名的 C# DLL 的完整性?

C#
三国纷争 2021-07-01 14:00:34
我有一个签名的 C# Dll,我想测试它的真实性和文件完整性。到目前为止,我所做的是获取证书并调用该证书上的验证方法:public ValidatorResult CheckDll(){    X509Certificate cert = null;    try    {       cert = X509Certificate.CreateFromSignedFile(dllFilepath);    }    catch (CryptographicException)    {       return new ValidatorResult(ValidatorResult.DllStatus.INVALID_SIGNATURE);    }    if (cert == null || !ValidateCertificate(cert))    {       return new ValidatorResult(ValidatorResult.DllStatus.INVALID_SIGNATURE);    }}   private bool ValidateCertificate(X509Certificate cert){    var chain = new X509Chain();    /* Do a chain verification */    var primaryCert = new X509Certificate2(cert.GetRawCertData());    if (!chain.Build(primaryCert))       return false;    /* Call The Verify method on the newer X509Certificate2 class */    if (!primaryCert.Verify())       return false;    return true;}我可能是错的,所以请纠正我,但从我在互联网上看到的,Verify() 方法只检查证书的有效性。我还需要检查文件的完整性。我使用“Resource Hacker”工具做了一个小测试,我加载了 dll 并更改了公司名称。这个修改过的dll通过了上面的代码。我应该如何更改代码以便我可以检查文件是否被修改?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 401 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信