所謂的程式碼簽章,就是一個指一個數位的簽章,在編譯好的軟體上簽章。軟體一旦被重新編譯、修改,上面的簽章就會自然消失。簽章,不代表你的軟體就是無毒無害的,只是說多一層保障而已。
網路上的教學都是建議使用自然人憑證或花錢購買的形式。。。
那有沒有辦法產生出測試用的簽章呢?
作法:
Set-ExecutionPolicy Bypass -Scope Process
[筆記] 如果沒有做這個動作,憑證會產生失敗
4. 撰寫憑證腳本並執行
[筆記] 請參考 產生憑證的powershell腳本
5. 執行後會看到有一個mycert.pfx的憑證檔被產生
6. signtool 的位置如下
[筆記] 如果是直接下載,就不需要去找位置了
7. 向程式做簽章的動作
signtool.exe sign /f mycert.pfx /p helloworld demo.exe
SignTool 套件簽署的一般命令列語法是:
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
結論:
使用數位簽章,只代表你的程式不容易被竄改,但不代表安全,但好像可以拿來繞過AV ,筆者使用來簽章的程式是使用pyinstaller 包出來的,正常情況下會被windows Defender 視為病毒或後門。
@echo off
echo 正在簽名: %~nx1
pause
signtool.exe sign /f mycert.pfx /p helloworld %~nx1 > singlog.txt
將以上程式碼複製到新BAT檔案,並產生證書,就可以透過拖放來新增數位證書囉。