Skip to content

Caixa-git/checkmal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ FileGuard AI

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

📦 빌드 방법

Windows (Visual Studio)

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

Linux → Windows 크로스컴파일

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 보안 어플리케이션 ✅ 파일 행위 기반 랜섬웨어 유사 탐지 엔진

About

FileGuard AI — Windows 실시간 파일 보안 모니터링 시스템. ReadDirectoryChangesW 기반 비동기 감시, 5축 위험도 분석, GDI+ 스프라이트 애니메이션 경고

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages