sign.bat: replace all Chinese with pure ASCII to fix GBK encoding issue
This commit is contained in:
+21
-41
@@ -1,9 +1,8 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM === WindowMsgBot 签名脚本 ===
|
||||
REM 使用自签名证书签名exe文件,降低360敏感度
|
||||
REM 用法: sign.bat [exe路径]
|
||||
REM === WindowMsgBot Code Signing Script ===
|
||||
REM Usage: sign.bat [exe_path]
|
||||
|
||||
set "SCRIPT_DIR=%~dp0"
|
||||
set "PROJECT_DIR=%SCRIPT_DIR%.."
|
||||
@@ -11,7 +10,6 @@ set "CERT_PFX=%SCRIPT_DIR%code_signing_cert.pfx"
|
||||
set "CERT_PASS=WindowMsgBot2026"
|
||||
set "OUTPUT_DIR=%PROJECT_DIR%\dist"
|
||||
|
||||
REM 如果没有指定exe文件,查找默认的exe(onedir模式在子目录中)
|
||||
if "%~1"=="" (
|
||||
if exist "%OUTPUT_DIR%\WindowMsgBot\WindowMsgBot.exe" (
|
||||
set "EXE_PATH=%OUTPUT_DIR%\WindowMsgBot\WindowMsgBot.exe"
|
||||
@@ -22,26 +20,21 @@ if "%~1"=="" (
|
||||
set "EXE_PATH=%~1"
|
||||
)
|
||||
|
||||
echo === WindowMsgBot 代码签名 ===
|
||||
echo === WindowMsgBot Code Signing ===
|
||||
echo.
|
||||
|
||||
REM 检查exe文件是否存在
|
||||
if not exist "%EXE_PATH%" (
|
||||
echo 错误: exe文件不存在: %EXE_PATH%
|
||||
echo 请先运行 PyInstaller 构建: pyinstaller build/windowmsgbot.spec
|
||||
echo [ERROR] EXE not found: %EXE_PATH%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 检查证书文件是否存在
|
||||
if not exist "%CERT_PFX%" (
|
||||
echo 错误: 证书文件不存在: %CERT_PFX%
|
||||
echo 请先运行证书生成脚本: powershell -ExecutionPolicy Bypass -File build\generate_cert.ps1
|
||||
echo [ERROR] Certificate not found: %CERT_PFX%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 查找signtool.exe
|
||||
set "SIGNTOOL="
|
||||
for %%i in (
|
||||
"%ProgramFiles%\Windows Kits\10\bin\x64\signtool.exe"
|
||||
@@ -56,64 +49,51 @@ for %%i in (
|
||||
)
|
||||
)
|
||||
|
||||
REM 尝试从PATH查找
|
||||
where signtool.exe >nul 2>&1
|
||||
if %errorlevel% equ 0 (
|
||||
set "SIGNTOOL=signtool.exe"
|
||||
goto :found_sign
|
||||
)
|
||||
|
||||
echo 错误: 未找到 signtool.exe
|
||||
echo 请安装 Windows SDK 或 Windows Kits
|
||||
echo 下载地址: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
|
||||
echo [ERROR] signtool.exe not found
|
||||
echo Install Windows SDK: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:found_sign
|
||||
echo 使用signtool: %SIGNTOOL%
|
||||
echo Using signtool: %SIGNTOOL%
|
||||
echo.
|
||||
|
||||
REM 1. 签名exe
|
||||
echo 1. 签名exe文件...
|
||||
echo 1. Signing exe...
|
||||
"%SIGNTOOL%" sign /f "%CERT_PFX%" /p "%CERT_PASS%" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "%EXE_PATH%"
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误: 签名失败!
|
||||
echo [ERROR] Signing failed!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ? 签名成功
|
||||
echo Signed OK
|
||||
|
||||
REM 2. 验证签名
|
||||
echo.
|
||||
echo 2. 验证签名...
|
||||
echo 2. Verifying signature...
|
||||
"%SIGNTOOL%" verify /pa "%EXE_PATH%"
|
||||
if %errorlevel% equ 0 (
|
||||
echo ? 签名验证通过
|
||||
echo Verification passed
|
||||
) else (
|
||||
echo ? 签名验证失败,但签名可能已应用
|
||||
echo Verification failed, signature may still be applied
|
||||
)
|
||||
|
||||
REM 3. 显示签名信息
|
||||
echo.
|
||||
echo 3. 签名信息...
|
||||
"%SIGNTOOL%" verify /v "%EXE_PATH%" 2>nul | findstr /i "Signing"
|
||||
echo.
|
||||
|
||||
REM 4. 复制签名后的exe到项目根目录
|
||||
echo 4. 复制签名后的exe...
|
||||
echo 3. Copying signed exe...
|
||||
copy "%EXE_PATH%" "%PROJECT_DIR%\WindowMsgBot_signed.exe" >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo ? 已复制到: %PROJECT_DIR%\WindowMsgBot_signed.exe
|
||||
echo Copied to: %PROJECT_DIR%\WindowMsgBot_signed.exe
|
||||
) else (
|
||||
echo ? 复制失败
|
||||
echo Copy failed
|
||||
)
|
||||
|
||||
echo.
|
||||
echo === 完成 ===
|
||||
echo 签名后的exe: %EXE_PATH%
|
||||
echo 备份副本: %PROJECT_DIR%\WindowMsgBot_signed.exe
|
||||
echo === Done ===
|
||||
echo Signed exe: %EXE_PATH%
|
||||
echo Backup: %PROJECT_DIR%\WindowMsgBot_signed.exe
|
||||
echo.
|
||||
echo 注意: 自签名证书需要在目标机器上安装证书才能验证签名
|
||||
echo 证书文件: %CERT_PFX%
|
||||
echo.
|
||||
pause
|
||||
pause
|
||||
|
||||
Reference in New Issue
Block a user