番外1-封裝執行檔被偵測有木馬程式
在VBA / Excel VBA將檔案另存成PDF再使用自訂python程式加密PDF 系列文章
都是用pyinstaller將程式碼封裝成執行檔
不過在執行檔產生之後不久,Microsoft Defender 會顯示偵測到木馬程式
在網路上爬文之後,發現這其實是很普遍發生的情況
有的說是因為用到os操作檔案資料
因此建議改用pathlib來替代
但是這個方式會在封裝的過程就會被中止
不曉得是Microsoft Defender 還是 pyinstaller中止
有的說程式碼加密就可以避免被掃毒程式判定為木馬程式
但是我覺得很麻煩,只是繞過偵測,而且也不是都有效果
有的說換其他封裝套件,但是測試之後,沒有一個好用的
後來想說是不是因為在pyinstaller設定了-w ,不出現命令行的關係
於是嘗試將程式碼重新封裝之後,確實就沒有偵測到木馬程式了
如果要隱藏執行過程,可以將Wscript的視窗參數設為0
(Wscript因為版本不同,視窗參數的數量也不同,不過最後的版本應該有0-10共11種)
番外2-在VBA執行python檔案
如果電腦有安裝python,並且設定環境參數
也就是在cmd或者powershell可以執行python檔案
其實也就可以在VBA直接執行python檔案
換言之,就是在VBA執行cmd或powershell的命令列
例如: python “D:\Google 雲端硬碟\莊生的箱子\網站_程式練習\python練習\創建PDF\0426_42.py” “D:\Google 雲端硬碟\莊生的箱子\網站_程式練習\python練習\創建PDF\output\臺北市.pdf” “123456”
這邊要留意:python檔案要用完整檔案路徑,參數跟參數之間用空格隔開
這樣其實也不用封裝成執行檔了