最近在寫 影片自動產生字幕,並使用字幕軟體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” 的位置裡了。
安裝HICOS卡片管理工具
到內政部憑証管理中心下載 HICOS 卡片管理工具,才可以把憑証安裝到電腦去 (但簽章時還是要插卡)。解壓縮後,一直下一步,安裝完後重新開機。
重開後,應該會看到如下圖示就代表已安裝完成。此時,將自然人憑証插入讀卡機,並連接到電腦,就會開始安裝驅動程式,稍候既可完成。
簽署執行檔
終於到了最後一步,簽署執行檔。這邊我們假設要簽署的檔案是位於 D:\autosub_app.exe。進入 Windows Command Prompt,下達以下指令
1 |
"c:\Program Files (x86)\Windows Kits\8.0\bin\x64\signtool.exe" sign /a /tr http://timestamp.comodoca.com d:\autosub_app.exe |
正常情況下,會跳出一個詢問自然憑証密碼的視窗,輸入正確後即可成功將檔案簽署。
成功簽署後,你的名字會全都露…不 Care 的用自然人憑証來簽檔案,其實就還蠻方便的了。
感謝你的教學,因為你的文章讓我找到其他可行性的方法~!
可以不用自然人憑證就可以簽章唷,我是使用以下兩個網頁的教學/工具來使用的
https://www.itread01.com/content/1547000860.html
http://www.briggsoft.com/signgui.htm
股票下單的所需要的PFX檔案也可以進行認證唷,再用SignGUI的小工具,可以大幅簡化認證困難度
感謝你的回饋,有需要的人可以參考看看喔~
我使用您的方式 SHA1 可用,但SHA256 會出現錯誤,目前仍無解。
SignTool Error: An unexpected internal error has occurred.
Error information: “Error: SignerSign() failed.” (-1073741275/0xc0000225)
sorry, 只有當時用一次,後續沒在用了,所以也幫不上忙,現在連自然人憑証過期了也沒在申請了,現在報稅用手機就可以了 XD