如何获得已签名程序的经过验证的发布者?

时间:2013-10-22 22:29:00

标签: c# windows code-signing

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

enter image description here

1 个答案:

答案 0 :(得分: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."); }
        }
    }
}