Есть программа processhacker в ней есть такой раздел. В этом разделе выводит инфу о процессе есть сертификат или нету его. Доступ к этому разделу выдает независимо от прав (админ/ не админ). Как бы так на c# эту строчку с инфой о сертификате тоже получить???
Для файла проще всего, наверное, подключить nuget-пакет System.Management.Automation, и воспользоваться PowerShell-командой:
using System.Management.Automation;
static bool VerifyAuthenticodeSignature(string path)
{
string fullPath = Path.GetFullPath(path);
if (!File.Exists(fullPath))
throw new FileNotFoundException("Cannot find target file", fullPath);
using (var ps = PowerShell.Create())
{
ps.AddCommand("Get-AuthenticodeSignature", true);
ps.AddParameter("LiteralPath", fullPath);
var results = ps.Invoke();
var signature = (Signature)results.Single().BaseObject;
return (signature.Status == SignatureStatus.Valid);
}
}
(код одолжен здесь и переработан).
Для получения организации, подписавшей файл, можно подсмотреть в свойства сертификата.
var issuer = signature.SignerCertificate.IssuerName;
var properties = issuer.Format(multiLine: true)
.Split(new[] {"\r\n" }, StringSplitOptions.RemoveEmptyEntries)
.Select(line => line.Split(new[] {'=' }, 2))
.ToDictionary(parts => parts[0], parts => parts[1]);
properties.TryGetValue("O", out var organization);
К сожалению, я не нашёл код, который разбирает X500DistinguishedName
в объектную структуру, но можно данный велосипед вроде бы работает. В моём примере organization
выдало "Microsoft Corporation"
.
Для процессов, вам нужно найти файл, из которого процесс был запущен, и проверить его точно так же.
(Впрочем, я не эксперт в вопросах безопасности, так что могу и ошибиться.)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Появилась необходимость передать в поток параметрКак правильно это сделать?
как написать на javascript функцию которая с помощью onclick для кнопки в html,будет выдавать какое то сообщение
Мне нужно отправить на сервер структуру данных вида: