Python で作成したプログラムがある日を境にセキュリティソフトに引っかかるようになってしまった。
いろいろ回避策を模索しているがうまくいかず。。。
とりあえずこれまでの対応をいったんメモ。。。
状況
Windows 環境で PyInstaller を用いて exe を作成すると、ウィルス対策ソフトが誤検知して実行ファイルが削除されてしまう。
エラーメッセージ
exe ファイルを実行すると、以下のようなメッセージが表示されファイルが削除されてしまう。
CrowdStrike Falcon Sensor a process was blocked because malicious behavior was detected .
検証内容
- Windows 10 の環境で以下の組み合わせで pyinstaller でビルドしたファイルを実行
- --noconsole(あってもなくても)
- プログラムは print("TEST") のみ
- 結果はセキュリティソフトにファイルを削除されるかどうか
- PyInstaller の bootloader をリビルド
python version | pyinstaller version | --onefile オプション | 結果 |
---|---|---|---|
3.8.0 | 4.3 | 有 | × |
3.8.0 | 4.3 | 無 | × |
3.8.0 | 5.0.dev0 | 有 | × |
3.8.0 | 5.0.dev0 | 無 | × |
3.10.0 | 4.3 | 有 | × |
3.10.0 | 4.3 | 無 | × |
3.10.0 | 5.0.dev0 | 有 | × |
3.10.0 | 5.0.dev0 | 無 | × |
ウィルスチェックツール
オンラインのファイルチェックサイト
www.virustotal.com
PyInstaller の bootloader リビルド方法
pyinstaller をクローンして bootloader フォルダに移動し以下のコマンドを実行する。
pyinstaller を取得する。
> git clone https://github.com/pyinstaller/pyinstaller
pyinstaller に移動して以下のコマンドを実行する。
> cd bootloader > python ./waf distclean all
bootloader のビルドには、Cコンパイラが必要になるのでなければ visual studio をインストールするともれなくついてきます。