為 Pyinstaller 產生的程式簽章 – 使用自然人憑証

最近在寫 影片自動產生字幕,並使用字幕軟體Aegisub修改編輯 (1) 這篇文章時,想說也把 Python 的檔案弄成執行檔,方便非技術底的人使用。結果發現一直被防毒軟體判定成病毒…

上網一查,發現這是普遍的問題…Python 轉執行檔被判成有病毒的歷史也有點久了,Py2exe, Pyinstaller 都有這現象。有可能是 “Python 病毒” 很難判斷,都是文字檔,很容易亂搞。與其這樣,打包成執行檔的全部判成病毒簡單一點。

也試過另一個套件 nuitka ,這個套件做的比較全面。是把 Python 都轉成 C,再從新用 Visual C++ 編譯,這樣的確就跟 native 的 C 程式一樣了。但缺點就速度慢,還要安裝 Visual Studio,另外相容性也不若 Pyinstaller 這類的程式。

獲取防毒軟體的信任

經過幾翻搜尋,發現要得到防毒軟體的 “獲免”,就是要利用應用程式簽章的方式。一個有簽章的程式,代表找的到這個程式的來源。一般的應用程式簽章,都要是公司才能申請,而且要繳一筆費用才能使用,所以也代表一定的可信度。詳細可參考這裡

難道不開公司就不能簽章了嗎!?

自然人憑証簽章程式

在沒辦法要放棄前,突然搜到這篇文章。原來,自然人憑証除了拿來繳錢,也可以拿來簽章程式。缺點就是你的大名會被列在程式裡面,算是個人為你的程式背書吧。如果你真的很需要有個簽章的話,就這麼幹吧~~ 反正同名同姓的人也很多…下面就摘要上面文章的內容,簡單描述必要步驟。

SignTool – 安裝 Visual Studio 2012

Signtool 是簽章 Windows 程式的工具,在安裝 Visual Studio 時會一併安裝 (其實是 Windows Kit 裡的一支程式)。這邊我們可以下載 Visual Studio 2012 的試用版,裡面就含有這個工具了(在微軟的這個頁面,找【[Trial] Visual Studio Professional 2012】,下載 EXE 進行線上安裝)。

當然你也可以使用較新的 Visual Studio 版本,在相應的位置應該也有 signtool.exe 這支程式。為了簡化流程,這邊建議都打勾全選來安裝。過程要花點時間,就耐心等候吧~

當完成安裝後,程式就會在 “C:\Program Files (x86)\Windows Kits\8.0\bin\x64” 的位置裡了。

signtool.exe 所在位置

 

安裝HICOS卡片管理工具

內政部憑証管理中心下載 HICOS 卡片管理工具,才可以把憑証安裝到電腦去 (但簽章時還是要插卡)。解壓縮後,一直下一步,安裝完後重新開機。

下載HICOS卡片管理工具

重開後,應該會看到如下圖示就代表已安裝完成。此時,將自然人憑証插入讀卡機,並連接到電腦,就會開始安裝驅動程式,稍候既可完成。

簽署執行檔

終於到了最後一步,簽署執行檔。這邊我們假設要簽署的檔案是位於 D:\autosub_app.exe。進入 Windows Command Prompt,下達以下指令

正常情況下,會跳出一個詢問自然憑証密碼的視窗,輸入正確後即可成功將檔案簽署。

詢問自然人憑証密碼

成功簽署的畫面

成功簽署後,你的名字會全都露…不 Care 的用自然人憑証來簽檔案,其實就還蠻方便的了。

數位簽章內容

詳細資料

Leave a Reply