所謂的程式碼簽章,就是一個指一個數位的簽章,在編譯好的軟體上簽章。軟體一旦被重新編譯、修改,上面的簽章就會自然消失。簽章,不代表你的軟體就是無毒無害的,只是說多一層保障而已。
網路上的教學都是建議使用自然人憑證或花錢購買的形式。。。
那有沒有辦法產生出測試用的簽章呢?
作法:
- 先下載Windows 10 SDK software Development kit並安裝
PS: 安裝後長這樣 ...
1-1 偷懶版的作法,直接下載signtool.exe
1-1-1 下載點 - 使用系統管理員打開powershell ISE
- 啟用ExecutionPolicy 為 Bypass
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 [options] <filename(s)>
使用 .pfx 檔案中的憑證簽署您的應用程式套件,使用語法:
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
- 使用virtustotal檢查是否還會被偵測成病毒
未使用簽章,偵測到六種木馬或後門
使用簽章後,偵測到四種木馬或後門
[筆記] 使用簽章後居然沒有被AV (防毒軟體)認定為病毒或後門了
結論:
使用數位簽章,只代表你的程式不容易被竄改,但不代表安全,但好像可以拿來繞過AV ,筆者使用來簽章的程式是使用pyinstaller 包出來的,正常情況下會被windows Defender 視為病毒或後門。
資料來源: https://ithelp.ithome.com.tw/articles/10281279
沒有留言:
張貼留言