在 C# 中,如何获取已签名 .exe 文件的经过验证的发布者?我正在开发程序阻止应用程序,并希望能够检测程序的发布者(如果有)。
问问题
985 次
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 回答