Artgineer_기술 배우는 아티스트
내가 개발한 게임 setup 파일. 왜 바이러스로 감지될까? 본문
Inno Setup으로 만든 설치파일이 Trojan으로 뜨는 이유.
유니티(Unity)로 게임을 만들고 Inno Setup으로 설치파일까지 만들었는데, 다른 PC에서 실행하자마자 Windows Defender가 뜹니다.
"이 앱은 사용자 PC를 손상시킬 수 있습니다."
"Trojan:Win32/Agent…"
내가 내 손으로 직접 만든 게임인데 바이러스가 감지된다고?
당황스럽다..
이건 바이러스가 아니라 ‘오탐지(False Positive)’ 이다.
대부분의 경우 실제로 바이러스가 포함되어 있는 건 아니다.
다만 보안 프로그램이 정상 파일을 악성코드로 오인해서 발생하는 것일 뿐.
https://forum.hise.audio/topic/8738/inno-setup-is-flagged-as-trojan/21
Inno Setup is Flagged as Trojan?
@Christoph-Hart I tried it on another computer, instantly flagged. No files at all inside, just a blank installer, no changes to the script. That one won't e...
forum.hise.audio
해당 사이트에서도 같은 의문을 갖는 개발자가 있었다.
그래서.. 내가 만든 게임 셋업 파일에서 바이러스가 감지되는 이유는 무엇일까?
1. 디지털 서명이 없는 설치파일
우리가 만든 설치파일은 개발자 서명이 없는 무명 파일이기 때문.
백신 프로그램 입장에서는 "누가 만들었는지 확인할 수 없는 실행파일"은 기본적으로 의심 대상이다.
이를 해결하려면 코드 서명 인증서를 구입해서 설치파일에 서명하면 신뢰도가 크게 올라가고, 대부분의 보안 경고가 사라진다.
위 hise 사이트에서도 언급되고 있는 내용이다.
2. Unity 빌드 특성
Unity로 만든 게임은 내부 구조가 복잡하고 특이한 점,
난독화된 DLL, 리소스 번들, 자체 로딩 로직 등이 악성코드와 유사하게 보일 수 있다.
특히 위험요소로 보일 수 있는 경우는, 실행파일이 작은 크기인데 내부에 많은 기능 포함하거나 자체 업데이터나 파일 복사 기능이 포함된 경우이다.
3. Inno Setup의 설치 방식
Inno Setup은 파일 복사, 레지스트리 수정, 시작 프로그램 등록 등의 기능을 지원한다.
이런 행동은 백신의 입장에서 “시스템 변경을 시도하는 수상한 동작”으로 간주하기도 한다.
4. 낮은 배포량
만든 지 얼마 안 된 설치파일은 아직 많은 사람들이 사용하지 않았다.
즉, 데이터베이스에 내 파일이 안전하다는 사례가 없기 때문이다.
Microsoft Defender SmartScreen 같은 기능은 사용자 수가 적은 파일 = 위험할 수 있음으로 판단한다.
결국 이것을 해결하려면 코드 서명 인증서 구매 방법 밖에 없다.
지인이나 테스터에게 배포 시에는
"바이러스가 있다고 뜨지만, 바이러스 없으니 안심하세요." 라고 예외를 알리는 수 밖에..
유니티와 Inno Setup 조합은 간편하고 효율적이지만, 백신 프로그램의 오탐지 이슈는 피할 수 없는 듯 하다.
더 궁금한 점이나 경험 공유는 댓글로 남겨주세요.
같은 문제로 고생 중인 다른 개발자에게도 큰 도움이 될 수 있습니다.
'Unity & C# 📂' 카테고리의 다른 글
[Unity]구체 드롭 시뮬레이션(Slide_drop) (1) | 2025.01.15 |
---|---|
유니티 교과서 익히기 1 (2) | 2024.11.25 |
ChatGPT와 함께 Unity로 FPS 게임 개발하기 - 프롤로그 (0) | 2024.11.01 |