You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
결론부터 말씀드리면 DM NOTE는 악성코드가 아니지만 오탐이 발생하는 이유는 여러 기능이 하나의 네이티브 EXE에 담기면서 발생하는 휴리스틱 오탐으로 확인됩니다.
1. 스캔하신 파일은 공식 배포본이 맞습니다
올려주신 VirusTotal 링크의 해시(85ce0202...)는 GitHub 공식 릴리즈 v1.6.1의 DM.NOTE.exe SHA-256과 일치합니다.
변조된 파일이 아니라 공식 배포 바이너리 그대로이며, 소스 코드가 전부 공개되어 있으므로 직접 빌드해서 검증하실 수도 있습니다.
2. 트로이목마 2개 감지
VirusTotal의 trojan 표시는 VT 자체 판정이 아니라 각 벤더 탐지명 문자열을 요약해 붙이는 라벨입니다. (VT 공식 문서)
실제 탐지는 다음 두 건입니다.
Gridinsoft: Trojan.Heur!... // 이름 그대로 휴리스틱(Heur) 탐지입니다. ungoogled-chromium, Cypress, Tauri 앱 등 유명 오픈소스에서 오탐 사례가 반복 보고된 엔진
Trapmine: Malicious.moderate.ml.score // 머신러닝 점수 기반 판정으로, 악성 코드가 매칭된 것이 아닙니다.
Microsoft Defender, Kaspersky, ESET, Bitdefender 등 나머지 60여 개 엔진은 모두 미탐지입니다.
Gridinsoft 공식 블로그조차 "대다수 엔진이 clean이고 1~2개만 탐지하며 공식 배포처가 확인되는 파일이면 오탐 가능성이 높다"고 안내하고 있습니다.
Rust/Tauri 생태계의 동일한 오탐 선례도 참고 부탁드립니다.
Tauri 앱이 같은 Gridinsoft Heur 계열로 오탐된 사례: tauri#4749
KeysPerSecond는 32비트 Java 런처 + JAR 구조입니다.
939KB 중 네이티브 코드는 44.5KB 런처 스텁뿐이고, 나머지 95% 이상은 뒤에 붙은 JAR 입니다.
또한 KeysPerSecond에는 자동 업데이트, 네트워크 통신, 자식 프로세스 실행 기능 자체가 없습니다.
유일한 민감 동작인 전역 키보드 훅도 zip 안에 압축되어 있어 백신 분석에 거의 노출되지 않습니다.
반면 DM NOTE는 64비트 Rust 네이티브 PE라서 다음 기능이 모두 네이티브 코드에 그대로 드러납니다.
백그라운드 키 입력 수집 (Raw Input 방식, 훅 주입 없음)
동일 EXE를 --keyboard-daemon으로 자식 실행하고 named pipe로 키 입력 전달
GitHub 릴리즈에서 새 버전을 내려받아 자기 자신을 교체하는 자동 업데이트
LTO, 크기 최적화, 심볼 제거가 적용된 릴리즈 바이너리
전역 입력 수집 + 자식 프로세스 + IPC + 네트워크 다운로드 + 자기 파일 교체는 휴리스틱/ML 엔진이 점수를 높게 주는 전형적인 패턴입니다.
불안하시다면 소스에서 직접 빌드하시거나, 릴리즈 페이지의 SHA-256 해시로 파일 무결성을 직접 확인하실 수 있습니다.
감사합니다.
Activity
eun-yeon commentedon Jul 21, 2026
안녕하세요.
바이러스 탐지 관련 피드백 감사드립니다.
결론부터 말씀드리면 DM NOTE는 악성코드가 아니지만 오탐이 발생하는 이유는 여러 기능이 하나의 네이티브 EXE에 담기면서 발생하는 휴리스틱 오탐으로 확인됩니다.
1. 스캔하신 파일은 공식 배포본이 맞습니다
올려주신 VirusTotal 링크의 해시(
85ce0202...)는 GitHub 공식 릴리즈 v1.6.1의DM.NOTE.exeSHA-256과 일치합니다.변조된 파일이 아니라 공식 배포 바이너리 그대로이며, 소스 코드가 전부 공개되어 있으므로 직접 빌드해서 검증하실 수도 있습니다.
2. 트로이목마 2개 감지
VirusTotal의 trojan 표시는 VT 자체 판정이 아니라 각 벤더 탐지명 문자열을 요약해 붙이는 라벨입니다. (VT 공식 문서)
실제 탐지는 다음 두 건입니다.
Trojan.Heur!...// 이름 그대로 휴리스틱(Heur) 탐지입니다. ungoogled-chromium, Cypress, Tauri 앱 등 유명 오픈소스에서 오탐 사례가 반복 보고된 엔진Malicious.moderate.ml.score// 머신러닝 점수 기반 판정으로, 악성 코드가 매칭된 것이 아닙니다.Microsoft Defender, Kaspersky, ESET, Bitdefender 등 나머지 60여 개 엔진은 모두 미탐지입니다.
Gridinsoft 공식 블로그조차 "대다수 엔진이 clean이고 1~2개만 탐지하며 공식 배포처가 확인되는 파일이면 오탐 가능성이 높다"고 안내하고 있습니다.
Rust/Tauri 생태계의 동일한 오탐 선례도 참고 부탁드립니다.
3. KeysPerSecond 프로그램과는 단순 비교가 어렵습니다
KeysPerSecond는 32비트 Java 런처 + JAR 구조입니다.
939KB 중 네이티브 코드는 44.5KB 런처 스텁뿐이고, 나머지 95% 이상은 뒤에 붙은 JAR 입니다.
또한 KeysPerSecond에는 자동 업데이트, 네트워크 통신, 자식 프로세스 실행 기능 자체가 없습니다.
유일한 민감 동작인 전역 키보드 훅도 zip 안에 압축되어 있어 백신 분석에 거의 노출되지 않습니다.
반면 DM NOTE는 64비트 Rust 네이티브 PE라서 다음 기능이 모두 네이티브 코드에 그대로 드러납니다.
--keyboard-daemon으로 자식 실행하고 named pipe로 키 입력 전달전역 입력 수집 + 자식 프로세스 + IPC + 네트워크 다운로드 + 자기 파일 교체는 휴리스틱/ML 엔진이 점수를 높게 주는 전형적인 패턴입니다.
불안하시다면 소스에서 직접 빌드하시거나, 릴리즈 페이지의 SHA-256 해시로 파일 무결성을 직접 확인하실 수 있습니다.
감사합니다.
lodummy commentedon Jul 22, 2026
https://github.com/lodummy/dmnote 수상한 코드 하나 없네요