본문 바로가기
IT(Tip)

[파이썬] pyinstaller로 만든 exe 실행 파일의 바이러스 오탐지

by good4me 2021. 12. 1.

goodthings4me.tistory.com

pyinstaller로 만든 exe 실행 파일의 바이러스

파이썬으로 코딩한 간단한 프로그램을 pyinstaller 라이브러리를 활용하여 하나의 실행파일(.exe)로 만들어서 실행하면 알약에서 바이러스로 인식하고, 파일 실행이 안 되는 증상이 발생한다.

pyinstaller 바이러스 인식 문제

 

구글링을 해보니,
파일 인증서 문제라는 글도 있고, PyInstaller 소스를 가지고 Bootloader를 만들어서 해보라는 말도 있었으나, 다른 한쪽에서는 그렇게 해도 계속 바이러스로 인식이 된다는 글도 있었다.

 

PyInstaller로 만든 실행파일을 Trojan 바이러스로 인식하는 문제 해결

 

 

또한, Pyinstaller로 안되면 cx-freeze 라이브러리를 써보라는 글도 있었고, 3.6 버전으로 만들면 문제가 없다는 글도 있었다.

 

문제는, 이런 바이러스 인식 증상들이 pyinstaller로 만든 실행파일을 오탐지해서 나오는 증상이라는 점이다.

모 브로그 글에서 아래와 같은 글을 보았다.

[문제해결] V3의 오진(Pyinstaller)에 대한 안랩측(2018.10.18) 답변

 

[문제해결] V3의 오진(Pyinstaller)에 대한 안랩측 답변이 왔네요 ^^ - Study For Us

제 데스크탑의 V3 365 Clinic가 Pyinstaller를 오진하는 문제로 며칠 고생을 했네요.pip install pyinstaller로 Pyinstaller를 설치하기만하면 V3가 바로 멀웨어로 진단해서 삭제해버리고,심지어 압축파일 형태로

studyforus.com

 

 

위 블로그 글 내용 중에서 3.6 버전으로 만드는 방법으로 테스트를 해보니 바이러스 인식 문제가 현저히 줄었다.

 

※ pyinstaller 환경 : python 3.9.7

(venv) D:\pythonTkinterPkg\pip freeze
altgraph==0.17.2
colorama==0.4.4
future==0.18.2
pefile==2021.9.3
Pillow==8.4.0
PyInstaller==3.6
pyinstaller-hooks-contrib==2021.4
pywin32-ctypes==0.2.0
qrcode==7.3.1

 

 

☞ Pyinstaller 4.7 버전으로 실행파일 만들고 바이러스 인식문제 테스트 - https://www.virustotal.com

 

 

Ad

 

 

☞ Pyinstaller 3.6 버전으로 실행파일 만들고 바이러스 인식문제 테스트 - https://www.virustotal.com

 

 

 

※ 참고사항 - cx-Freeze로 실행파일 만들기

- setup.py

from cx_Freeze import setup, Executable
 
buildOptions = dict(packages=['tkinter'], excludes = ['pyinstaller'])
exe = [Executable('my_qrcode.py')]
setup(
    name='my_qrcode',
    version='0.1',
    author='borame',
    description = 'make_qrcode',
    options = dict(build_exe = buildOptions),
    executables = exe
)

 

 

댓글