pythonファイルをexe化したらWindows Defenderにウィルス認定された件
何回か前の記事でPythonで無音カメラアプリを作ったのですが、そのアプリがWindowsDefenderにウイルス認定されました。カメラを静かに起動させてコッソリ撮影するので仕方ないのかな?と思ってましたら別で作っていたアプリもウイルス認定されてしまいました??
pyinstallerコマンド(pyinstaller hoge.py -onfile)でexe化したときウイルス認定されるのはよくあるみたいで検索すると解決策がすぐ見つかりました。
pyinstallerの中のbootloaderを自分のパソコンでコンパイルすればいいようです。
さっそくやってみると、、やってみると、、
やってみると、、
下の記事を見てやってみましたが、出来ませんでした!!しばくぞ!
2つとも今年の記事なんですけどダメでした。
でもちょっと手順を変えたらできたのでそれを記事にします。
条件
windows11または10
python インストール済み
解決方法手順
1.PowerShellのターミナル画面を管理者権限で立ち上げ
スタートアイコンを右クリックして「ターミナル(管理者)」または「PowerShell(管理者)」を選んで黒画面を表示させます。
黒画面の中で、Cドライブ直下へ移動します。
cd c:\
2.Pythonのバージョンを確認
PS C:> python --version
Python 3.8.10
バージョン3.8系だったらOK。違っていたらPythonをアンインストールして、再インストールします。私の場合、3.13だったので次のコマンドを使いました。(3.8系じゃないと後の処理のpyinstallerインストールで失敗しました)
winget uninstall Python.Python.3.13 #アンインストール
winget install Python.Python.3.8 #インストール
$env:path.split(";") #環境変数を確認する
このとき環境変数に3.13のパスが残っていたら手動で消します。
3.Cコンパイラの入手
下のリンクへ行きます。
https://github.com/niXman/mingw-builds-binaries/releases
「x86_64-13.2-.release-win32-seh-msvrt-rt_v11-rev0.7z」を手に入れます。
「x86_64-13.2-.release-win32-seh-msvrt-rt_v11-rev0.7z」を解凍して中身をフォルダ名mingw64の中へ入れて、
cドライブへコピーします。→C:\mingw64
4.Cコンパイラを使うためにmingw64のパスを環境変数に設定する
Set-Item Env:Path $ENV:path+=C:\mingw64\bin
5.pyinstallerのプログラムコードを入手
git clone https://github.com/pyinstaller/pyinstaller.git
※gitのコマンドが動作しない場合はgithubのアカウントを作って直接、 「https://github.com/pyinstaller/pyinstaller.git」へ進んで緑色ボタンのCodeを押し、DounloadZIPを選択してプログラムを入手してください。中身をフォルダ名pyinstallerの中へ入れて、Cドライブ直下にコピー→c:\pyinstaller
6.bootloaderをコンパイル
cd pyinstaller/bootloader
python ./waf distclean all
メッセージがたくさん出て、最後に
Waf: Leaving directory `C:\pyinstaller\bootloader\build\releasew'
'install_releasew' finished successfully (0.060s)
こうでればOK
こうならないときは、mingw64が入っていないか、パスが通てません。
mingw64は「x86_64-??.?-.release-win32-seh-msvrt-rt_v??-rev?.7z」みたいなやつを手に入れてください。
7.pyinstallerを再インストール
cd ..
pip install wheel
pip install .
これでpyinstallerを使ってもウイルス認定されなくなります。
#つくってみた #Pyhon #PowerShell #コンパイラ #pyinstaller #exe化 #WindowsDefender