Проверка Authenticode с самозаверяющим сертификатом

Если у меня есть самозаверяющий сертификат, которого нет в хранилище доверенных корневых сертификатов компьютера, как я могу проверить, что PE-файл подписан Authenticode, используя этот сертификат, не добавляя этот сертификат в доверенное корневое хранилище?

C# предпочтительнее, но ответ на C++ тоже подойдет.

В Stackru уже есть много похожих вопросов, но ни один из них пока не имеет приемлемого ответа. Это должен быть Authenticode, и я не могу добавить его в хранилище сертификатов. Он также не может быть купленным сертификатом, поскольку ему требуется более длительное время действия (независимо от отметки времени).

Помимо копирования огромного фрагмента кода проверки подписи Mono, я не знаю решения в Win32 или.NET.

1 ответ

Вы можете начать со звонка Get-AuthenticodeSignatureПроверка командлета PowerShell.StatusявляетсяValidилиNotTrustedи проверяя это.SignerCertificateна самом деле это ваш сертификат. Если вам нужно более индивидуальное решение, рассмотрите возможность проверки соответствующих источников DLL Authenticode.cs . См. также аналогичный вопрос .

Другие вопросы по тегам