IT/python

윈도우 디펜더에서 바이러스라며 pyinstaller 로 생성한 exe 막는 문제

심량 2024. 5. 27. 09:36

윈도우에는 기본적으로 윈도우 디펜더라는 백신이 설치되어 있습니다.

pyinstaller 로 생성한 exe 실행파일이 디펜더에게 바이러스라며 실행이 차단 당하는 문제를 겪었습니다.

os 는 윈도우 11 이었습니다.

pyinstaller 에는 bootloader 라는 개념이 있습니다.

bootloader 는 os 의 그것과는 다르게 미리 컴파일된 특정 플랫폼 전용 라이브러리를 포함시킨 바이너리입니다.

bootloader 가 지정되지 않은 pyinstaller 는 관련한 패키지나 소스를 내려받아 이를 빌드하는 구조입니다.

pip 로 설치한 pyinstaller 로 생성된 exe 는 특정 플랫폼 전용이 아닌 범용이고 다운로드를 높은 확률로 시도할텐데 이를 백신이 바이러스로 판단하는 것으로 추정됩니다.

 

이것을 어떻게 구축해볼까요?

 

먼저 pywin32 가 설치되야 합니다.

python3 -m pip install pywin32

위 명령이 제대로 실행되지 않는다면 https://github.com/mhammond/pywin32/releases 를 방문해서 본인의 파이썬 버전과 아키텍처에 맞는 설치본을 골라 설치하시면 됩니다.

 

아래는 제가 시도한 내용입니다.

python3 -m pip uninstall pyinstaller

git clone https://github.com/pyinstaller/pyinstaller.git

cd pyinstaller

cd bootloader

python3 waf all

cd ..

python3 -m pip install .

 

이제 원래 파이썬 프로젝트 vscode 창을 닫고 다시 열어서 pyinstaller 명령을 실행하시고 생성된 바이너리를 테스트해보시면 됩니다.

성공!!