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..
Callback vs Fallback: 차이점과 예제 📌 Callback이란? Callback은 특정 이벤트가 발생했을 때 호출되는 **사용자 정의 함수**입니다. 주로 비동기 처리, 이벤트 대응에 사용되며, 미리 등록해두면 이벤트 발생 시 자동 호출됩니다. 예: 일반 C++에서의 Callback void OnDone() { std::cout callback) { // 작업 수행 callback(); // 이게 바로 콜백}DoTask(OnDone); 예: 파일 필터 드라이버에서의 Callback FLT_PREOP_CALLBACK_STATUS PreWriteCallback( PFLT_CALLBACK_DATA Data, PCFLT_RELATED_OBJ..
- Total
- Today
- Yesterday
- ip
- C# 고급 기술
- PowerShell
- 암호화
- 블루버블다이빙팀
- CMake
- C++
- Thread
- ReFS
- Build
- Linux
- 울릉도
- 외돌개
- 서귀포
- 블루버블
- Windows
- C
- 윈도우
- 스쿠버다이빙
- C#.NET
- 리눅스
- 블루버블다이브팀
- 제주도
- 패턴
- C#
- 성산블루버블
- DLL
- 현포다이브
- 서귀포블루버블
- OpenSource
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |