Windows 실시간 파일 보안 모니터링 시스템 — Win32 트레이 애플리케이션
FileGuard AI 는 Windows 환경에서 파일 시스템 변경을 실시간으로 감시하고, 5축 위험도 분석을 통해 의심스러운 파일 활동을 탐지하여 사용자에게 시각적으로 경고하는 Win32 네이티브 애플리케이션입니다.
기능
설명
📁 실시간 파일 감시
ReadDirectoryChangesW + OVERLAPPED I/O 기반 비동기 디렉토리 트리 감시
📊 5축 위험도 분석
확장자(30%) · 중요폴더(15%) · 변경속도(25%) · 연속성(10%) · 패턴(20%) — 종합 점수 0~100
🐕 캐릭터 경고
GDI+ 스프라이트 애니메이션 기반 레이어드 윈도우 팝업 (알파 채널, 드래그 가능)
🔔 시스템 트레이
Shell_NotifyIcon 기반 트레이 아이콘 + 풍선 알림 + 우클릭 숨기기 메뉴
🔐 파일 보호 (DLL)
OpenSSL EVP 인터페이스 AES-256-GCM 암호화 + GCM 인증태그 무결성 검증
User Action
│
▼
┌─────────────────────────────────────────────────┐
│ WinMain (main.cpp) │
│ - 메시지 루프 · 초기화 · 캐릭터/트레이 연결 │
└────────────────┬────────────────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Watchdog │ │ Analyzer │ │ Character│
│ watchdog │ │ analyzer │ │ character│
│ .cpp/.hpp│ │ .cpp/.hpp│ │ .cpp/.hpp│
├──────────┤ ├──────────┤ ├──────────┤
│ReadDir- │ │5축 위험도│ │GDI+ │
│ChangesW │ │계산 │ │Sprite │
│비동기 I/O│ │0~100점수 │ │Layered │
│디렉토리 │ │화 │ │Window │
│트리 감시 │ │ │ │Alpha │
└──────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐
│ Tray │
│tray.cpp/ │
│ .hpp │
├──────────┤
│알림 · │
│숨기기 · │
│종료 │
└──────────┘
모듈
파일
역할
Watchdog
watchdog.cpp/.hpp
ReadDirectoryChangesW + OVERLAPPED I/O로 디렉토리 트리 재귀 감시. 파일 생성/수정/삭제/이름변경 이벤트를 비동기로 수집
Analyzer
analyzer.cpp/.hpp
5개 축에서 수집된 데이터를 종합하여 0~100 점수 산출. 임계치(기본 50) 초과 시 경고 발생
Character
character.cpp/.hpp
GDI+ 기반 레이어드 윈도우. 스프라이트 시트에서 프레임 로드, SetTimer 기반 애니메이션 루프, BitBlt로 프레임 렌더링
Tray
tray.cpp/.hpp
Shell_NotifyIcon으로 시스템 트레이 아이콘 등록. 풍선 알림, 우클릭 메뉴(일시 숨기기/종료) 처리
Main
main.cpp
WinMain 진입점. 메시지 루프에서 WM_TIMER(애니메이션), WM_RBUTTONDOWN(숨기기), WM_NCHITTEST(드래그) 처리
분야
기술
언어
C++17
플랫폼 API
Win32 API (ReadDirectoryChangesW, Shell_NotifyIcon, GDI+)
암호화
OpenSSL EVP (AES-256-GCM)
빌드
CMake 3.16+, MinGW-w64 (크로스컴파일) / Visual Studio
의존성
comctl32, gdi32, gdiplus, user32, shell32
cmake -B build -G " Visual Studio 17 2022"
cmake --build build --config Release
macOS → Windows 크로스컴파일 (MinGW)
cmake -B build-mingw -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-w64-mingw32.cmake
cmake --build build-mingw
sudo apt install mingw-w64
cmake -B build-mingw -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-w64-mingw32.cmake
cmake --build build-mingw
checkmal/
├── README.md ← 이 파일
├── CMakeLists.txt ← 빌드 시스템
├── src/
│ ├── main.cpp ← WinMain + 메시지 루프
│ ├── watchdog.cpp/.hpp ← 파일 변경 감시
│ ├── analyzer.cpp/.hpp ← 위험도 분석
│ ├── character.cpp/.hpp ← GDI+ 캐릭터 애니메이션
│ └── tray.cpp/.hpp ← 시스템 트레이
├── cmake/
│ └── x86_64-w64-mingw32.cmake ← 크로스컴파일 툴체인
├── docs/
│ └── architecture.md ← 상세 아키텍처 문서
├── assets/
│ └── gifs/ ← 애니메이션 시연 스크린샷 (Windows PC 필요)
└── release/
└── install.bat ← 설치 스크립트
이 프로젝트는 ㈜체크멀(AppCheck — 랜섬웨어 탐지·차단 제품) 지원을 위해 개발한 포트폴리오입니다.
체크멀 요구사항
프로젝트 연결점
윈도우 환경 5년 이상
✅ Win32 API 기반 네이티브 Windows 앱
C/C++ 능숙
✅ C++17 + CMake 기반 프로젝트
TCP/IP 네트워크 이해
✅ 분석기-감시기 모듈 간 데이터 파이프라인
[우대] Windows 시스템 프로그래밍
✅ ReadDirectoryChangesW, OVERLAPPED I/O, GDI+, 트레이
[우대] Windows 보안 어플리케이션
✅ 파일 행위 기반 랜섬웨어 유사 탐지 엔진