[Python] pyinstaller 로 만든 exe파일 Anti-Virus 오탐 문제 해결

파이썬으로 만든 코드를 EXE 로 만드는데 pyinstaller 를 애용합니다.
(물론 동일한 것을 py2exe로 변환하면 다른 결과가 나오기도 합니다)

처음에는 코드 사이닝 문제인가 싶기도 했지만, 그것은 아니었고
virustotal.com 에 exe 파일을 올려 검사를 해 보았습니다.

그 결과 다음의 바이러스토탈 사이트에서,

총 68개의 바이러스 검출 엔진 중 10개에서 바이러스로 탐지를 했다는 결과입니다.

이것을 어떻게 줄일까 찾아보았는데, 
위의 사이트에 잘 설명된 해결책이 있었습니다.
제가 위의 사이트를 참고하되 나름 시행착오를 공유해 봅니다.


1) C++ 컴파일러 설치

다음 사이트에서 Community 2019 무료 버전의 C/C++ 개발 환경을 다운받아 설치합니다.


2) 새로운 VirtualEnv 구축

처음에는 Python 3.6 에서 테스트 했으나 pyinstaller 를 재구축할 때 setuptools 모듈이 너무 오래되어 오류가 발생했습니다.
3.7 이후 버전을 이용해야 합니다.

파이썬 3.7 버전으로 다음과 같이 pyinst 라는 가상환경을 만들었습니다.

C:work> C:\Python37-32\python -m venv pyinst
C:work> pyinst\Scripts\Activate
(pyinst) C:work>

그 이후에는 이 가상환경에서 계속 작업합니다.


3) pyinstaller 재 구축

다음 사이트에서 최신의 pyinstaller 소스를 다운받아 C:\work 에 풀었습니다.


그 다음 해당 소스의 bootloader 라는 폴더로 이동하여,

python ./waf all --target-arch=64bit

명령을 CMD 에서 실행했습니다.

위와 같이 종료되면 잘 된 겁니다.
미리 검파일된 bootloader를 이용하면 아마도 많은 바이러스 탐지 엔진에서 무조건 악성이라고 
판단하는 것 같습니다.

이제는 해당 부트로더를 이용한 pyinstaller 모듈을 설치합니다. 
실제 실행해 보니 wheel 모듈을 필요로 하므로 

pip install wheel 
명령을 내린 다음,

pyinstaller 해제한 폴더에서
python setup.py install
명령으로 pyinstaller를 설치합니다.

설치가 잘 되었는지,

pip list
로 확인해 보면, 위와 같이 pyinstaller 가 잘 설치된 것을 확인할 수 있었습니다.


4) EXE 빌드


이제는 원래 build 하듯이 필요 모듈을 설치하고,
pyinstaller 로 exe를 만들면 됩니다.


마지막으로 다시 virustotal 로 확인을 해 보았더니,

이제는 66개 중 3개만 탐지가 되었습니다. 혹시라도 이 EXE가 실행되는 환경에서
해당 ANTI 바이러스를 실행시키는 고객이 있다면 이 EXE를 보내 탐지하지 말아달라고
부탁을 해야 되겠네요.


어느 분께는 도움이 되셨기를 ..

[Guacamole] 를 이용한 브라우저에서 RDP, VNC, SSH 통합관리하기

M1 MacBook Air를 사용하고나서 부터는 패러렐즈와 같은 VM 대신ESXi 서버를 따로 꾸며서 작업환경으로 이용하고 있습니다.문제는 윈도우, 리눅스, 맥 등의 연결하여 작업할 환경이원격 데스크탑 (RPD), 화면 공유 (VNC), 터미널 연결 (SSH) 등으로각각 다를 뿐더러 외부에서 접속을 하려면 해당 연결을 위하여개별 포트 포워딩을 해 줘야 ... » 내용보기

httpie curl 로 file upload 해 보기

파이썬으로 curl 과 같은 유틸리티 작업을 하려면 httpie 라는 것을 이용합니다.그런데 httpie를 이용하여 파일을 업로드하고 싶을 때 어떻게 하는지 살펴보겠습니다.우선 파일 업로드를 위한 웹서버를 찾아보았는데 적당한 것을 찾을 수 없었습니다.그래서 파이썬 샘플 업로드용 모듈이 있나 찾아보았더니 역시 uploadserver 라고 있었습니다.테스트... » 내용보기

[Photon OS] ssfhs 로 MAC 파일 마운트 하기

집에 별도 공유 시스템을 꾸미는데 기존 가지고 있던 2019 MacBookPro 를 공유 폴더를 관리하도록 했습니다.맥의 자체 기능 중 파일공유를 하고 samba 공유도 하도록 해 놓았습니다.수년 이상 이런 방식으로 파일을 공유하고, 이를 다른 윈도우 VM이나 Linux VM에서 공유 폴더를 소스 등으로 잘 이용하여 왔었습니다.이 SMB 방식은... » 내용보기

[Proxmox] VMWare ESXi 서버 대신 Proxmox 사용해 보기

불과 5년 전만 해도 클라우드다 컨테이너다 하는 것들이 대세는 아니었었고대세가 될 것이 분명하다 생각을 해 왔었는데 이제는 그 대세를 거스를 수 없는상황이 된 것 같습니다.오히려 그 대세가 대세인지 모르고 있는 분야에서 그 대세에 편승하도록하게끔 하는게 더 나은 비즈니스 기회가 있지 않을까도 싶네요.암튼 구글, MS, AWS 와 같은 공공 클라우드도 많... » 내용보기

구글애드텍스트