Nuitka나 PyInstaller로 만든 실행 파일(.exe)이 윈도우 디펜더(Windows Defender)에서 바이러스로 오인

Nuitka나 PyInstaller로 만든 실행 파일(.exe)이 윈도우 디펜더(Windows Defender)에서 바이러스로 오인받는 것은 파이썬 개발자라면 누구나 한 번쯤 겪는 아주 흔한(그리고 짜증 나는) 일입니다. 😂

윈도우는 “서명되지 않은 + 처음 보는 + 압축된” 실행 파일을 잠재적 위협으로 간주하기 때문인데요. 이를 해결하기 위한 현실적인 방법들을 단계별로 정리해 드릴게요.


1. 가장 확실한 방법: 디지털 서명 (Code Signing)

윈도우가 파일을 신뢰하게 만드는 가장 정석적인 방법입니다.

  • 원인: 서명(Signature)이 없는 파일은 출처를 알 수 없으므로 차단됩니다.

  • 해결: 배포용이라면 유료 코드 사인 인증서를 구매해야 하지만, 개인용이나 내부용이라면 **Self-signed certificate**를 만들어 서명하거나, Nuitka 옵션에서 파일 정보를 최대한 상세히 적는 것이 도움이 됩니다.

2. Nuitka 빌드 옵션 최적화

단순히 파일을 합치는 것보다, 파일의 “정체”를 명확히 밝혀주는 옵션을 추가하면 탐지율이 낮아집니다.

Bash

python -m nuitka --onefile --windows-disable-console \
--standalone \
--enable-plugin=tk-inter \
--windows-icon-from-ico=.\myicon.ico \
--company-name="내회사이름" \
--product-name="프로그램이름" \
--file-version="1.0.0.0" \
--product-version="1.0.0.0" \
--file-description="네이버 카페 크롤러" \
.\final_crawler.py

Tip: --company-name이나 --file-description 같은 메타데이터가 들어 있으면 무명 파일보다 훨씬 덜 의심받습니다.

3. --onefile 대신 --standalone 사용 고려

  • --onefile: 실행 시 임시 폴더에 파일을 풀어서 실행하는데, 이 동작이 악성코드의 동작 방식과 매우 유사해서 차단될 확률이 높습니다.

  • --standalone: 폴더 형태로 배포됩니다. 파일 크기는 커지지만 디펜더의 감시망을 더 잘 통과하는 경향이 있습니다.

4. 개발 환경에서의 즉각적인 해결책 (제외 설정)

개발 중에는 매번 빌드할 때마다 파일이 삭제되면 작업이 불가능합니다. 이럴 땐 폴더 자체를 검사 예외로 설정하세요.

  1. 윈도우 설정 > 업데이트 및 보안 > Windows 보안 > 바이러스 및 위협 방지.

  2. 설정 관리 클릭.

  3. 하단의 제외 추가 또는 제거 클릭.

  4. 제외 사항 추가 버튼을 누르고 프로젝트 폴더(G:\test5\naver_cafe_crawler)를 지정합니다.

    • 이제 해당 폴더 안에서 생성되는 .exe 파일은 디펜더가 건드리지 않습니다.

5. UPX 압축 사용 자제

Nuitka는 용량을 줄이기 위해 UPX 압축을 사용하기도 하는데, 많은 백신 프로그램이 UPX로 압축된 실행 파일을 “악성코드의 특징”으로 인식합니다. 만약 UPX를 쓰고 계신다면, --no-deployment-flag=self-execution 등을 확인하거나 UPX를 설치하지 않은 상태에서 빌드해 보세요.


요약하자면

  1. **메타데이터(--company-name 등)**를 최대한 상세히 넣으세요.

  2. 가능하면 --standalone 방식을 우선 테스트해 보세요.

  3. 배포 전까지는 디펜더 제외 폴더 설정을 활용하세요.

Similar Posts

  • 에버노트 앱웹 개발일기

      next.js를 기본으로해서 프로레벨의 메모프로그램을 만들고자 합니다. 기본적인 메뉴구성은 에버노트와 100% 동일하게 만들어야하고, 초기 사용자별 아이디와 비밀번호를 입력하고 사용할 수 있게 해주세요. 위에 같은 기능을 100% 작동하는 웹앱을 만들기위한 구체적이고 디테일한 요구사항들을 프롬프트로 만들어주세요. 에버노트(Evernote)와 동일한 UI/UX와 기능을 갖춘 ‘프로 레벨’의 메모 앱을 Next.js로 구축하는 것은 매우 훌륭한 프로젝트입니다. 하지만 한 번의 프롬프트로 완벽한 앱을…

  • 유튜브 시청 중 CPU 점유율이 비정상적으로 높다면

    유튜브 시청 중 CPU 점유율이 비정상적으로 높다면, 브라우저가 영상 데이터를 처리할 때 그래픽 카드(GPU)의 연산 능력을 제대로 활용하지 못하고 CPU에만 의존하고 있을 가능성이 큽니다. 이를 해결하기 위해 하드웨어 가속 기능을 점검하고 최적화하는 방법을 정리해 드립니다. 1. 크롬 하드웨어 가속 설정 확인 가장 먼저 크롬 자체 설정에서 GPU 가속이 활성화되어 있는지 확인해야 합니다. 크롬 주소창에 chrome://settings/system을…

  • 다이슨 헤어드라이기 대체품으로 추천할만한 제품

    다이슨 헤어드라이기 대체품으로 추천할만한 제품 다이슨 특유의 강력한 직진성 바람과 조용한 소음을 동시에 잡으려는 분들께 가장 추천하는 제품들을 정리해 드립니다. 국내 정식 수입 제품과 알리익스프레스(직구) 제품군 중 성능 검증이 끝난 2026년 기준 ‘대장급’ 모델들입니다. 1. 알리익스프레스 및 해외 직구 (다이슨과 가장 흡사한 경험) 가장 추천하는 브랜드는 **라이펜(Laifen)**과 **드리미(Dreame)**입니다. 이들은 다이슨의 ‘BLDC 고속 모터’ 기술을 가장…

  • 부동산업무 자동화(RPA) + AI 기반 자연어 검색(RAG)

    지금부터 내가 원하는 서비스를 말할께 가장 최적의 개발환경을 추천해주고, 전체적인 vibe코딩을 위한 흐름도를 만들어줘. 1. 10000장 이상의 이미지를 ocr처리해서 안에 있는 신축빌라 분양정보(201호 방3개 욕실2개 분양가 2억…), 주소 등 이미지안에 있는 분양정보를 읽고 저장합니다. 2. 랭그래프를 통해 신축빌라 이름을 말하고 그거에 대한 분양가를 비롯해 문서안에 있는 정보를 질의합니다. 3. ocr처리가 된 이미지는 별도의 DB에 저장해서…

  • 크로미움 기반의 오픈소스 git허브에 공개된 브라우저

    크로미움 기반의 오픈소스 git허브에 공개된 브라우저가 있나요? 네, GitHub에는 크로미움(Chromium)을 기반으로 한 다양한 오픈소스 브라우저 프로젝트가 활발하게 공개되어 있습니다. 단순히 크롬의 엔진만 사용하는 것이 아니라, 소스 코드 전체나 주요 인터페이스를 오픈소스로 제공하여 누구나 코드를 확인하고 기여할 수 있는 프로젝트들이 대표적입니다. 2026년 현재 기준으로 가장 인지도 높고 활발하게 관리되는 프로젝트들을 카테고리별로 정리해 드립니다. 1. 가장 대표적인…

  • 우분투(Linux) 환경에서 바이러스와 백도어(Rootkit)를 검사

    우분투(Linux) 환경에서 바이러스와 백도어(Rootkit)를 검사하기 위해 가장 많이 사용되는 무료 오픈소스 도구 3가지를 추천해 드립니다. 각 도구는 목적이 조금씩 다르므로, 바이러스 백신 1개 + 백도어 탐지 도구 1개를 조합해서 사용하는 것이 가장 안전합니다. 1. 바이러스 백신: ClamAV (필수) 우분투에서 가장 표준적으로 쓰이는 바이러스 백신입니다. 윈도우 바이러스뿐만 아니라 리눅스용 악성코드도 탐지합니다. 설치 및 사용법: 설치: Bash…

답글 남기기