Можно ли подписать приложение VB6 цифровой подписью? - PullRequest
0 голосов
/ 01 июня 2018

Я написал приложение VB6 в 2001 году для компании, и оно, очевидно, все еще используется сегодня.Компания просит, чтобы я подписал его цифровой подписью, чтобы они могли избегать диалогового окна «Windows защитил ваш компьютер»:

enter image description here

Возможно ли даже цифровоеподписать заявку VB6?Если так, может кто-то указать мне учебник или что-то в этом роде.

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

Прежде всего, общий ответ «да» - VB6 созданные EXE и DLL файлы могут иметь цифровую подпись.

Насколько я понимаю, процесс подписи в конечном итоге добавляет некоторые «метаданные» в подписанный двоичный файл, который можетосмотреть позже.Похоже, что это функция Windows общего назначения, а не специфичная для VB6 или любого другого конкретного компилятора (насколько я знаю).

Специальный метод, который я использую для подписи, - это шаг сборки в Visual BuildPro .Это подписывает двоичный файл, используя файл сертификата PFX, а также отмечает его время.(Есть также другие параметры конфигурации ).

Обратите внимание, что я использую этот инструмент, потому что он также используется для автоматизации сборки VB6 (и он работает хорошо!) Но я уверенвместо этого можно использовать другие инструменты подписи.

0 голосов
/ 14 июня 2018

Мы использовали signtool.exe из Platform SDK до тех пор, пока он не прекратил производить сигнатуры sha-1 (для совместимости с XP), поэтому пришлось перейти на osslsigncode реализацию с открытым исходным кодом (с уродливой зависимостью cygwin).

Вот наш codesign.bat, который мы используем для подписи исполняемых файлов одновременно с sha-1 и более новыми сигнатурами sha-256.Можно также подписывать распространяемые файлы .msi.

@echo off
setlocal
set CYGWIN=nodosfilewarning
set tmpfile=%TEMP%\~$intermediate.tmp

:: set code-signing certficate .pfx file and password here
set osslsigncode="%~dp0osslsigncode.exe" sign -pkcs12 "%~dp0ucs_code_sign_current.pfx" -pass #########
set signtool="%~dp0signtool.exe" sign /f "%~dp0ucs_code_sign_current.pfx" /p ########

:: set default description and URL here (both options skipped if left empty)
set desc=
set durl=

:parse_params
if [%~1]==[] goto :parse_complete
if [%~1]==[/d] set desc="%~2"& shift /1 & shift /1 & goto :parse_params
if [%~1]==[/du] set durl="%~2"& shift /1 & shift /1 & goto :parse_params
set infile=%~1
set intype=%~x1
shift /1 & goto :parse_params
:parse_complete
if [%infile%]==[] goto :usage

if not [%desc%]==[] (
    set osslsigncode=%osslsigncode% -n %desc%
    set signtool=%signtool% /d %desc%
)
if not [%durl%]==[] (
    set osslsigncode=%osslsigncode% -i %durl%
    set signtool=%signtool% /du %durl%
)

if [%intype%]==[.msi] goto :msi_sign

%osslsigncode% -h sha1 -t http://timestamp.comodoca.com -in "%infile%" -out "%tmpfile%" > nul
if errorlevel 1 %osslsigncode% -h sha1 -t http://timestamp.globalsign.com/scripts/timestamp.dll -in "%infile%" -out "%tmpfile%" > nul
if errorlevel 1 exit /b 1
%osslsigncode% -nest -h sha2 -ts http://timestamp.comodoca.com -in "%tmpfile%" -out "%infile%" > nul
if errorlevel 1 %osslsigncode% -nest -h sha2 -ts http://timestamp.globalsign.com/?signature=sha2 -in "%tmpfile%" -out "%infile%" > nul
if errorlevel 1 exit /b 1
goto :cleanup

:msi_sign
::%signtool% /t "http://timestamp.comodoca.com" "%infile%"
::if errorlevel 1 %signtool% /t "http://timestamp.globalsign.com/scripts/timestamp.dll" "%infile%"
%osslsigncode% -h sha1 -t http://timestamp.comodoca.com -add-msi-dse -in "%infile%" -out "%tmpfile%" > nul
if errorlevel 1 %osslsigncode% -h sha1 -t http://timestamp.globalsign.com/scripts/timestamp.dll -add-msi-dse -in "%infile%" -out "%tmpfile%" > nul
if errorlevel 1 exit /b 1
copy "%tmpfile%" "%infile%" /y > nul

:cleanup
del "%tmpfile%" /q
goto :eof

:usage
echo usage: %~nx0 [options] ^<infile^>
echo.
echo where options:
echo     /d  ^<desc^>    Optional file description
echo     /du ^<url^>     Optional company URL
echo.
goto :eof

Вам понадобится коммерческий сертификат для подписи кода в формате PFX.Вы можете настроить эту партию под свои нужды или просто использовать ее как источник вдохновения.

0 голосов
/ 04 июня 2018

Я думаю, это поможет вам:

https://msdn.microsoft.com/en-us/library/ms995332.aspx

Краткое описание: CAPICOM - это новая технология безопасности от Microsoft, которая позволяет Microsoft Программисты Visual Basic , Visual Basic Script, ASP и C ++ легко включают в свои приложения цифровую подпись и шифрование .(5 печатных страниц)

...