Сокращение времени жизни подписанного кода EXE

Когда код подписывает исполняемый файл, он будет считаться из доверенного источника, если сертификат действителен (если не помечен как метка времени). Мне интересно, могу ли я сократить этот промежуток времени.

Я прошел через параметры командной строки Signtool, но не смог найти вариант, чтобы сократить время действия. Однако это может означать, что Microsoft не поддерживает это.

Мои предполагаемые использования:

  • в целях тестирования

  • для демонстрационных целей (тренинги для разработчиков)

  • просто идея: так как я подписываю исполняемые файлы в любом случае, это было бы хорошим вариантом для предоставления ограниченных по времени демонстрационных лицензий. Приложение просто проверит себя на срок действия.

1 ответ

Что ж, вам нужно выдать новый сертификат (с новым диапазоном дат) для каждой сборки вашего приложения. Это просто не практично.

Однако вы можете проверить, какова дата / время (отметка времени), когда исполняемый файл был подписан. Затем вы можете сравнить эту временную метку с максимально "допустимой" датой для вашего приложения. Если "отметка времени + максимальное количество пробных дней" больше, чем текущая дата - хорошо, запустите как обычно. Если нет - отмените с помощью "Trial Expired".

Вы можете увидеть примеры кода здесь и здесь. По сути, вы заинтересованы в GetDateOfTimeStamp/GetTimeStampSignerInfo.

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