[pyinstaller] 바이러스, 트로이 목마 문제 해결

2024. 2. 2. 20:00개발로그/기타

반응형

pyinstaller를 사용하여 패키징 할 때, 멀웨어로 인식되는 문제를 해결한 방법을 정리 하였습니다.

문제

pyinstaller를 사용하여 python 프로그램을 패키징 할 때 아래와 같은 에러가 발생 하고 Windows Depender에서는 트로이목마 파일이 있다면서 에러를 출력 하였다.

  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\build_main.py", line 1071, in main
    build(specfile, distpath, workpath, clean_build)
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\build_main.py", line 1011, in build
    exec(code, spec_namespace)
  File "makeExeScript\0_pyinstaller.spec", line 21, in <module>
    exe = EXE(pyz,
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\api.py", line 628, in __init__
    self.__postinit__()
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\datastruct.py", line 184, in __postinit__
    self.assemble()
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\api.py", line 741, in assemble
    self._retry_operation(icon.CopyIcons, build_name, self.icon)
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\building\api.py", line 1003, in _retry_operation
    return func(*args)
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\utils\win32\icon.py", line 209, in CopyIcons
    return CopyIcons_FromIco(dstpath, [srcpath])
  File "c:\Workspace\venv_phoenixon\lib\site-packages\PyInstaller\utils\win32\icon.py", line 143, in CopyIcons_FromIco
    hdst = win32api.BeginUpdateResource(dstpath, 0)
  File "c:\Workspace\venv_phoenixon\lib\site-packages\win32ctypes\pywin32\win32api.py", line 208, in BeginUpdateResource
    with _pywin32error():
  File "C:\Python310\lib\contextlib.py", line 153, in __exit__
    self.gen.throw(typ, value, traceback)
  File "c:\Workspace\venv_phoenixon\lib\site-packages\win32ctypes\pywin32\pywintypes.py", line 37, in pywin32error
    raise error(exception.winerror, exception.function, exception.strerror)
win32ctypes.pywin32.pywintypes.error: (225, 'BeginUpdateResourceW', '파일에 바이러스 또는 기타 사용자 동의 없이 설치된 소프트웨어가 있기 때문에 작업이 완료되지 않았습니다.')

 

현재 환경

현재 사용 중인 Python 버전과 Pyinstaller 버전은 아래와 같다.

  • python 3.10.11
  • pyinstaller 6.3.0 사용

해결 방법

아래 참고 자료에 나온 글을 읽어 보니, PyInstaller가 생성한 파일을 Windows에서 말웨어로 잘못 보고 되는 문제가 있다고 한다. 스택오버플로우에서 글 처럼 pyinstaller 버전을 5.13.2로 다운그레이드 하니 문제가 해결 되었다.

 

아래 내용은 PyInstaller의 공식 입장이다.

이슈 #6062에서 PyInstaller 팀은 안티바이러스(AV) 보고서와 관련하여 공식 입장을 밝혔습니다. 이들은 PyInstaller가 생성한 파일을 말웨어로 잘못 보고하는 문제에 대해, AV 소프트웨어 제조사에게 직접 거짓 긍정(false positive)을 보고할 것을 권장합니다. 이 문제는 PyInstaller 도구 자체의 문제가 아니라, 안티바이러스 소프트웨어의 휴리스틱(heuristics) 방식 때문에 발생하는 것으로, PyInstaller는 이에 대해 직접적인 해결책을 제공하지 않습니다. 또한, 사용자들에게 자신의 컴파일러 체인이 감염되지 않았다는 것을 보증할 수 있는 방법도 제시합니다. 이러한 내용은 PyInstaller 커뮤니티와 사용자들에게 중요한 지침을 제공합니다.

 

 

참고 자료

 

https://stackoverflow.com/questions/77239487/win32ctypes-pywin32-pywintypes-error-when-using-pyinstaller-in-vs-code-possib

 

*win32ctypes.pywin32.pywintypes.error when using pyinstaller in VS Code - Possible Virus/Trojan?

I am using pyinstaller to generate an executable code for my python.py file. However, I am getting this error: File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\

stackoverflow.com

 

반응형