📌 C++ 디자인 패턴 - Chain of Responsibility (책임 연쇄 패턴)체인 패턴은 요청을 처리할 수 있는 객체들을 연결된 체인 형태로 구성하여, 요청을 처리할 수 있는 객체가 나타날 때까지 다음 객체로 전달하는 구조입니다. 객체 간 결합도를 낮추고 유연한 구조를 만드는 데 유용합니다.🧩 구조Handler: 요청 처리 인터페이스 정의ConcreteHandler: 실제 요청을 처리하거나 넘기는 구현체Client: 첫 Handler에 요청을 전달🧪 예제 코드1. 추상 핸들러class Handler {protected: Handler* next = nullptr;public: void setNext(Handler* _next) { next = _next; } virtual..
C++ 스마트 포인터 정리1. 스마트 포인터 종류 및 예제 스마트 포인터 설명 소유권 예제 unique_ptr 단일 소유, 이동만 가능 O std::unique_ptr up = std::make_unique(10); shared_ptr 참조 카운트 기반 공유 O std::shared_ptr sp = std::make_shared(10); weak_ptr 소유권 없이 생존 확인용 X std::weak_ptr wp = sp;if (auto locked = wp.lock()) { *locked += 1;..
저장장치 종류 및 비교 1. 저장장치 개요 FDD (Floppy Disk Drive): 자기 디스크 기반 저장장치로 과거 문서 저장 용도로 사용됨 (1.44MB). HDD (Hard Disk Drive): 자기 디스크로 회전하며 데이터를 저장. 대용량, 저가형 저장장치. SSD (Solid State Drive): 반도체 기반 저장장치. 빠른 속도, 내구성 우수. NVMe (Non-Volatile Memory Express): SSD 인터페이스 중 하나로, PCIe를 통해 초고속 데이터 전송 가능. U.2: 엔터프라이즈급 SSD 인터페이스로, 2.5인치 폼팩터와 SAS/PCIe 지원. 핫스왑 가능. 2. 장치 비교표 구분 ..
📌 ReFS 환경에서 드라이버 대응 전략 정리 ✅ 핵심 정리 ObRegisterCallbacks 기반 드라이버는 ReFS 환경에서도 그대로 사용할 수 있지만, FltMgr 기반 파일 필터 드라이버는 ReFS에서 필터링이 제한되기 때문에 신규로 개발하거나 대안을 적용해야 합니다. 1. ObRegisterCallbacks 기반 드라이버 ✔ NTFS / ReFS 관계없이 작동 ✔ 파일 접근 제어, 실행 제어에 활용 가능 ✔ 보안 제품(백신, DRM, EDR)에서 일반적으로 사용 ❌ 파일 내용 검사는 직접적으로 불가 🧪 감시 가능한 항목 FILE_OBJECT 접근 감지 (파일 열기, 읽기 전 핸들 생성) EPROCESS 기반 실행 감지 (실행..
📌 ReFS 실행 제어: 파일 필터 없이 커널 콜백으로 차단하기 ✅ 요약 NTFS에서는 파일 필터 드라이버(FltMgr)를 이용해 실행을 제어할 수 있지만, ReFS는 필터링 지원이 제한되어 기존 방식이 작동하지 않습니다. 하지만 PsSetCreateProcessNotifyRoutineEx를 사용하면 파일 시스템 종류와 관계없이 프로세스 실행을 차단할 수 있습니다. ✅ 언제 파일 필터 대신 PsNotify를 쓰는가? 기능 파일 필터 드라이버 PsNotify 콜백 .exe 실행 차단 ✅ NTFS만 ✅ NTFS + ReFS ..
📌 ReFS에서 실행 차단: NTFS처럼 파일 필터가 안될 때의 대안 NTFS용 파일 필터 드라이버는 파일 실행 시점에서 경로를 추적하고 차단이 가능하지만, ReFS에서는 필터링 포인트 자체가 제한적입니다. 따라서 ReFS에서 파일 실행을 제어하려면 다른 방식(정책 또는 커널 후킹 등)을 사용해야 합니다. ✅ 실행 제어를 위한 대안 3가지 1. ETW 기반 사용자 모드 감시 (비차단 감지용) ETW (Event Tracing for Windows)를 통해 실행 이벤트를 감지하고, 정책 위반 여부를 판단할 수 있습니다. 다만 실제 차단은 불가능합니다. void OnProcessStart(const std::wstring& imagePath){ if (imagePa..
- Total
- Today
- Yesterday
- 윈도우
- CMake
- C++
- 서귀포
- C#
- 다이빙
- 제주도
- C# 고급 기술
- PowerShell
- 디자인패턴
- 성산블루버블
- 패턴
- 암호화
- Windows
- 블루버블
- OpenSource
- 현포다이브
- ReFS
- 스쿠버다이빙
- C
- 블루버블다이빙팀
- 울릉도
- Thread
- 블루버블다이브팀
- 리눅스
- 서귀포블루버블
- Linux
- ip
- Build
- DLL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |