mieki256's diary



2024/05/30(木) [n年前の日記]

#1 [python] PyInstallerがウイルスとして誤検出される問題を調べてた

Pythonスクリプトを、Windowsの実行形式ファイル(exeファイル)に変換できる、PyInstaller というプログラムがあるのだけど。

2024/05/30現在、Windows10 x64 22H2 + Python 3.10.10 64bit で PyInstaller を使おうとすると、Windows Defender からウイルスとして誤検出されて、変換処理途中でエラーが発生してしまう。

なんでも、PyInstaller がウイルス作成に使われてしまうことが多くなったせいで、PyInstaller を使ってexe化されたファイルはウイルスに違いないと決めつけられがちな状況になっているのだとか…。

PyInstaller に同梱されてる bootloader なる部分を再作成してインストールし直すと改善する可能性がある、という話を見かけたので試してみた。

_Pyinstallerで実行ファイルがマルウェアに分類されてしまったときの対策 - はまたんく
_【Pyinstaller】Windows Defenderに引っかからないようにする - Qiita
_PyInstallerで作ったexeがウィルス判定される|こいでみず

Cコンパイラが使える状態にする :

作業には何かしらのCコンパイラが必要らしい。MinGW64 も使えるらしいけれど、今回は、Microsodt Visual Studio 2022 の Visual C++ (cl.exe) を利用してみた。

Windwos10のスタートメニューの中に、「x64 Native Tools Command Prompt for VS 2022」というショートカットファイルがあるので、それを起動すればDOS窓が開いて cl.exe が使えるようになる。

cl.exe と打ってバージョンが表示されるなら使える状態になっている。

> cl.exe
Microsoft(R) C/C++ Optimizing Compiler Version 19.38.33133 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

使い方: cl [ オプション... ] ファイル名... [ /link リンク オプション... ]

bootloader再作成 :

bootloader の再作成には、githubで公開されている PyInstaller のリポジトリが必要だそうで。

_pyinstaller/pyinstaller: Freeze (package) Python programs into stand-alone executables

以下では git clone で入手しているけれど、上記のページからリポジトリを zip で入手することもできるので *1 、git を持ってない場合は zip を入手して解凍しても作業ができるのではないかと。

また、Python の wheel モジュールも必要らしいので、pip を使ってインストールしておく。

そんなわけで、以下を打った。
python -m pip install wheel
git clone https://github.com/pyinstaller/pyinstaller.git
cd pyinstaller
cd bootloader
python ./waf distclean all
cd ..
pip install .

巷の解説ページでは、作成された PyInstaller のインストール操作として、python setup.py install を紹介してる事例が多かったけれど、自分の環境でソレをすると何故かエラーになってしまった。エラーメッセージの中に、「"pip install ." を使え」と書いてあったので試してみたところインストールができた。

PyInstaller のインストール時、依存してるモジュールもいくつかインストールされる。以下のような状態になった。

(venv310) D:\...> pip list
Package                   Version
------------------------- --------
altgraph                  0.17.4
packaging                 24.0
pefile                    2023.2.7
pip                       24.0
pyinstaller               6.7.0
pyinstaller-hooks-contrib 2024.6
pywin32-ctypes            0.2.2
setuptools                70.0.0

こうして再作成してインストールした PyInstaller を使ってみたところ、ウイルスとして誤検出されなかった。たしかに改善されたっぽい。

もっとも、そのうちまた誤検出されるようになってしまうかもしれない…。

*1: 「Code」と書かれた緑色のボタンをクリックすると、「Download ZIP」と言う項目がある。

以上です。

過去ログ表示

Prev - 2024/05 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project