使用 Visual Studio 對exe檔案進行數位簽章

來源:互聯網
上載者:User

標籤:class   blog   code   ext   com   get   

使用“VS2013 開發人員命令提示字元”運行簽名工具。轉到要簽名的檔案目錄運行命令:

signtool sign /a 要簽名的程式.exe

signtool 的相關命令

```csharpUsage: signtool [options]

    Valid commands:            sign       --  Sign files using an embedded signature.            timestamp  --  Timestamp previously-signed files.            verify     --  Verify embedded or catalog signatures.            catdb      --  Modify a catalog database.            remove     --  Reduce the size of an embedded signed file.

For help on a specific command, enter "signtool /?"```

把簽名程式存放到一個bat檔案中,為了省事,我直接把“VS2013 開發人員命令提示字元”中的檔案合并到一塊了,全文如下。

```csharp

@call :GetVSCommonToolsDir@if "%VS120COMNTOOLS%"=="" goto errornoVS120COMNTOOLSDIR

@call "%VS120COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit

@if "%VSINSTALLDIR%"=="" goto errornoVSINSTALLDIR@if "%FrameworkDir32%"=="" goto errornoFrameworkDIR32@if "%FrameworkVersion32%"=="" goto errornoFrameworkVer32@if "%Framework40Version%"=="" goto errornoFramework40Version

@set FrameworkDir=%FrameworkDir32%@set FrameworkVersion=%FrameworkVersion32%

@if not "%WindowsSDKExecutablePathx86%" == "" ( @set "PATH=%WindowsSDKExecutablePathx86%;%PATH%")

@if not "%WindowsSdkDir%" == "" ( @set "PATH=%WindowsSdkDir%bin\x86;%PATH%" @set "INCLUDE=%WindowsSdkDir%include\shared;%WindowsSdkDir%include\um;%WindowsSdkDir%include\winrt;%INCLUDE%" @set "LIB=%WindowsSdkDir%lib\winv6.3\um\x86;%LIB%" @set "LIBPATH=%WindowsSdkDir%References\CommonConfiguration\Neutral;%ExtensionSDKDir%\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral;%LIBPATH%")

@rem@rem Root of Visual Studio IDE installed files.@rem@set DevEnvDir=%VSINSTALLDIR%Common7\IDE\

@rem PATH@rem ----@if exist "%VSINSTALLDIR%Team Tools\Performance Tools" ( @set "PATH=%VSINSTALLDIR%Team Tools\Performance Tools;%PATH%")@if exist "%ProgramFiles%\HTML Help Workshop" set PATH=%ProgramFiles%\HTML Help Workshop;%PATH%@if exist "%ProgramFiles(x86)%\HTML Help Workshop" set PATH=%ProgramFiles(x86)%\HTML Help Workshop;%PATH%@if exist "%VCINSTALLDIR%VCPackages" set PATH=%VCINSTALLDIR%VCPackages;%PATH%

@if exist "%FrameworkDir%%Framework40Version%" set PATH=%FrameworkDir%%Framework40Version%;%PATH%@if exist "%FrameworkDir%%FrameworkVersion%" set PATH=%FrameworkDir%%FrameworkVersion%;%PATH%@if exist "%VSINSTALLDIR%Common7\Tools" set PATH=%VSINSTALLDIR%Common7\Tools;%PATH%@if exist "%VCINSTALLDIR%BIN" set PATH=%VCINSTALLDIR%BIN;%PATH%@set PATH=%DevEnvDir%;%PATH%

@rem Add path to MSBuild Binaries@if exist "%ProgramFiles%\MSBuild\12.0\bin" set PATH=%ProgramFiles%\MSBuild\12.0\bin;%PATH%@if exist "%ProgramFiles(x86)%\MSBuild\12.0\bin" set PATH=%ProgramFiles(x86)%\MSBuild\12.0\bin;%PATH%

@rem Add path to TypeScript Compiler@if exist "%ProgramFiles%\Microsoft SDKs\TypeScript\1.0" set PATH=%ProgramFiles%\Microsoft SDKs\TypeScript\1.0;%PATH%@if exist "%ProgramFiles(x86)%\Microsoft SDKs\TypeScript\1.0" set PATH=%ProgramFiles(x86)%\Microsoft SDKs\TypeScript\1.0;%PATH%

@if exist "%VSINSTALLDIR%VSTSDB\Deploy" ( @set "PATH=%VSINSTALLDIR%VSTSDB\Deploy;%PATH%")

@if not "%FSHARPINSTALLDIR%" == "" ( @set "PATH=%FSHARPINSTALLDIR%;%PATH%")

@if exist "%DevEnvDir%CommonExtensions\Microsoft\TestWindow" ( @set "PATH=%DevEnvDir%CommonExtensions\Microsoft\TestWindow;%PATH%")

@rem INCLUDE@rem -------@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%@if exist "%VCINSTALLDIR%INCLUDE" set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE%

@rem LIB@rem ---@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIB=%VCINSTALLDIR%ATLMFC\LIB;%LIB%@if exist "%VCINSTALLDIR%LIB" set LIB=%VCINSTALLDIR%LIB;%LIB%

@rem LIBPATH@rem -------@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIBPATH=%VCINSTALLDIR%ATLMFC\LIB;%LIBPATH%@if exist "%VCINSTALLDIR%LIB" set LIBPATH=%VCINSTALLDIR%LIB;%LIBPATH%@if exist "%FrameworkDir%%Framework40Version%" set LIBPATH=%FrameworkDir%%Framework40Version%;%LIBPATH%@if exist "%FrameworkDir%%FrameworkVersion%" set LIBPATH=%FrameworkDir%%FrameworkVersion%;%LIBPATH%

@rem VisualStudioVersion@rem -------------------@set VisualStudioVersion=12.0

@goto end

@REM -----------------------------------------------------------------------:GetVSCommonToolsDir@set VS120COMNTOOLS=@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1@if errorlevel 1 call :GetVSCommonToolsDirHelper32 HKCU > nul 2>&1@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKLM > nul 2>&1@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKCU > nul 2>&1@exit /B 0

:GetVSCommonToolsDirHelper32@for /F "tokens=1,2*" %%i in (‘reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "12.0"‘) DO ( @if "%%i"=="12.0" ( @SET "VS120COMNTOOLS=%%k" ))@if "%VS120COMNTOOLS%"=="" exit /B 1@SET "VS120COMNTOOLS=%VS120COMNTOOLS%Common7\Tools\"@exit /B 0

:GetVSCommonToolsDirHelper64@for /F "tokens=1,2*" %%i in (‘reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /v "12.0"‘) DO ( @if "%%i"=="12.0" ( @SET "VS120COMNTOOLS=%%k" ))@if "%VS120COMNTOOLS%"=="" exit /B 1@SET "VS120COMNTOOLS=%VS120COMNTOOLS%Common7\Tools\"@exit /B 0

@REM -----------------------------------------------------------------------:errornoVS120COMNTOOLSDIR@echo ERROR: Cannot determine the location of the VS Common Tools folder.@goto end

:errornoVSINSTALLDIR@echo ERROR: Cannot determine the location of the VS installation.@goto end

:errornoFrameworkDIR32@echo ERROR: Cannot determine the location of the .NET Framework 32bit installation.@goto end

:errornoFrameworkVer32@echo ERROR: Cannot determine the version of the .NET Framework 32bit installation.@goto end

:errornoFramework40Version@echo ERROR: Cannot determine the .NET Framework 4.0 version.@goto end

:end

@echo off

cd %~dp0

signtool sign /a 要簽名的程式.exe```

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.