在C#中,如何获得已验证的签名.exe文件的发布者?我正在开发程序阻止应用程序,并且希望能够检测程序的发布者(如果有的话)。
答案 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."); }
}
}
}