Q: Win32 CryptAPI
lexa - 28/Окт/2017 13:46
Граждане программисты,
а ткните носом, как проверить валидность подписи EXE-файла (MS Authenticode) без WinVerifyTrust, а с использованием только CryptoAPI. Ведь должно же быть можно?
Граждане программисты,
а ткните носом, как проверить валидность подписи EXE-файла (MS Authenticode) без WinVerifyTrust, а с использованием только CryptoAPI. Ведь должно же быть можно?
(C)opyright 2006-2024, Alex Tutubalin, lexa@lexa.ru
Comments
Это?
Это?
https://support.microsoft.com/en-us/help/323809/how-to-get-information-f...
Это известное (мне) уже место
Это известное (мне) уже место, но оно не про то.
You can use the WinVerifyTrust() API to verify an Authenticode signed executable.
Although a signature is verified, a program may also have to do the following:
И таки этот код (уверенно) возвращает подробности про сертификат даже если целостность самого EXE была нарушена.
P.S. А спрашиваю я по той причине, что вот есть юзер (адын штук) у которого WinVerifyTrust похоже не работает (выясняем подробности), а проверка подписи "через свойства файла" - работает ок.
Но попробую, да, через
Но попробую, да, через CryptMsgControl c флагом verify, интересно ж
Закончилось чем?
Закончилось чем?
Я видел тут ещё была запись про антивирь(?).Я б копнул бы п посмотрел бы п, если этот самый антивирь какой хук на системколл или библиотечный ставит может.
Пока не закончилось (это у
Пока не закончилось (это у клиента).
Но. У этого клиента WinVerifyTrust возвращает 0x80096005, что означает "не могу проверить timestamp" (до вчера я не знал что там за код ошибки и предполагал что WinVerifyTrust не работает по каким-то другим причинам т.е. надо писать свой :)
Отчего моя научная мысль пока выдвинула гипотезу, что там очень старый Win7, который вообще никогда не обновлялся - и проблема решается просто через Dual Sign, SHA-256+SHA1.
Если это решение поможет (а оно хорошо тем, что программировать ничего не надо) - то и проблема снимется.
Закончилось вот чем: у
Закончилось вот чем: у клиента Win7, которая never connected to Internet, соответственно без обновлений вовсе.
Соответственно, SHA-256 валидируется даже, а вот RFC-3xxx (забыл номер) timestamp - уже нет.
Проблема решена через dual sign приложения (хотя казалось бы, оно Win7+, т.е. у вменяемых юзеров SHA256 достаточно, однако вот нашелся герой).