0
在C#中,我如何獲得已簽名的.exe文件的已驗證發佈者?我正在研究一個阻止程序的應用程序,並希望能夠檢測程序的發佈者(如果有的話)。如何獲得簽名程序的已驗證發佈者?
在C#中,我如何獲得已簽名的.exe文件的已驗證發佈者?我正在研究一個阻止程序的應用程序,並希望能夠檢測程序的發佈者(如果有的話)。如何獲得簽名程序的已驗證發佈者?
我認爲你可以使用
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."); }
}
}
}