0

在 C# 中,如何获取已签名 .exe 文件的经过验证的发布者?我正在开发程序阻止应用程序,并希望能够检测程序的发布者(如果有)。

在此处输入图像描述

4

1 回答 1

0

我认为你可以使用

X509Certificate.CreateFromSignedFile()

如果您将 .exe 或 .msi 或任何签名文件的名称传递给此方法,它将创建一个X509Certificate对象。然后,您可以使用 GetName() 方法获取认证发布者信息。如果您还没有发现它,下面的代码应该可以帮助您入门。

using System;
using System.Security.Cryptography.X509Certificates;

namespace ConsoleApplication1
{
    public class ConsoleApplication1
    {
        [STAThread]
        static void Main(string[] args)
        {
            X509Certificate xcert = null;
            try
            {
                 xcert = X509Certificate.CreateFromSignedFile(args[0]);
                 Console.WriteLine(args[0] + "\t" + xcert.GetName() + "\t" + xcert.GetPublicKeyString());
          }
            catch (Exception e) { Console.WriteLine(args[0] + ": Unable to readDER-encoded signature."); }
        }
    }
}
于 2013-10-25T08:44:33.753 回答