![]() |
Цифровая подпись программ
как подписать программу?
на самом деле, в общем-то, не сложно. вам нужны только несколько утилит от Microsoft: Cert2Spc.Exe makecert.exe PVKIMPRT.EXE signtool.exe распространяющихся бесплатно, длл-ка capicom.dll прилагающаяся к signtool.exe, ну и.. батник следующего содержания: Код:
makecert -n "CN=Корпорация Майкрософт" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv sert.pvk sert.cer -ss Root -sr localMachine1. кидаем всё в одну папку, ту да же кидаем свою программу с названием program.exe (именно таким! оно у нас дальше прописано в батнике). 2. запускаем батник 3. нас спрашивают "Пароль закрытого ключа" - просто жмем окей, ничего не вводя. "Не использовать пароль? - Да" 4. Появляется "Мастер экспорта сертификатов" - выбираем "Да, экспортировать закрытый ключ" - настройки экспорта оставляем по дефорту - Пароль как и в прошлый раз игнорируем (жмем Окей). Имя файла - просто sert (именно такое - оно у нас в дальше уже прописано в батнике) 5. готово. то, что вы увидите в консоли будет выглядеть примерно так: Код:
с:\цифровая подпись>makecert -n "CN=╩юЁяюЁрЎш* ╠рщъЁюёюЇЄ" -a sha1 -ekuerrorneo.com/files/sign.zip или www.sendspace.com/file/dlfaxt (батник тоже в архиве) После того, как вы подпишете программу - можете посмотреть её "свойства" - там появится вкладка "цифровые подписи", и будут вызывающие улыбку строчки о том, что программа подписана Корпорацией Майкрософт. (а её ключ, как и положено, будет подписан компанией "Verisign") Для чего вам это? исключительно для красоты, т.к. Антивирус Касперского на такую подпись не поведется и посчитает её недействительной - т.е. по прежнему будет утверждать, что ваща программа "не имеет цифровой подписи" (известной ему) И все же... так солиднее ;) :cool: Ну а чтобы Касперский не ругался на вашу программу - подписывать надо не свежесгенеренным сертификатом на "Корпорацию Майкрософт", а сертификатом, выданным вам кем-либо, уже имеющим такой зарегистрированный сертификат. ps. благодарю slesh за то, что когда-то помогал мне с этим разобраться. |
Кстати цифровые подписи довольно удобны в некоторых моментах.
А именно: 1) дополнительная инфа о проге или её авторстве которое должны проверять другие проги 2) Часто юзаю ЭЦП для защиты какойнить мощной проги. т.е. прога состоит из монитора и основной части. Основная часть подписана, а монитор при запуске основной части проверяет её подпись и если она не совпадает то отказывает работать с ней. С одной стороны это даёт защиту от поражения проги вредоносными программа или другими изменениями. Ну и отчасти удобно идентифицировать клиентов кому была продана она. |
а есть ли какие нибудь еще методы подписки?
|
перезалей плиз набор. а вообще что-то плохо верится, что удастся так подписать. Я когда некоторое время назад смотрел, понял так, что нужно где-то платно заявляться, просить сертификат у всяких VeriSign'ов... короче проще wintrust.dll пропатчить :)
|
Цитата:
|
ну проверка подлинности - это функа WinVerifyTrust из wintrust.dll
>>If the trust provider verifies that the subject is trusted for the specified action, the return value is zero. патчим её на xor eax, eax; ret 14... или не 14... и пусть всё принимается |
я юзал подписание и нормально всё идет. Фишка в том, что создать ключ для цифровой подписи может любой чел. И он может спокойно подписывать им что хочет, другое дело состоит в том, что проверить подлинность ключа можно тока через инет, через спец конторы. А так как мы туда ключ не добавляли, то и проверку эту он завалит.
Так что можно ключ юзать чисто для контроля целостности. |
Я юзаю вот такой вот код для проверки:
Код:
BOOL VerifySignature(wchar_t* pwszSourceFile) |
малацы оба 8)
|
Цитата:
Для того, чтобы тебя подписали _нормальным_ сертификатом - да, нужно изголяться, что-то кому-то платить, регистрироваться.. (не связывался) Но и проверку такой серт сможет пройти. Ну а тот способ, что приведен тут - просто позволяет сгенерировать серт "в домашних условиях". "Проверки" никакой этот серт не пройдет... но все же это - серт:) |
| Время: 06:45 |