번호 순서보다 연구 대상을 먼저 고릅니다
Windows 드라이버를 공부한다면 01의 기초 구조에서 02의 패치 비교로 넘어간 뒤 06–09의 사례 연구를 연결할 수 있습니다. 03의 Chrome/V8, 04의 macOS/iOS·XNU, 05의 Hyper-V는 별도의 주제 갈래입니다. 전체를 하나의 Linux 커널 실습 과정으로 분류하지 않습니다.
Windows: 01 → 02 → 06 → 07 → 08 → 09
별도 갈래: 03 Chrome/V8, 04 XNU, 05 Hyper-V
증거: PDF 판본·대상 빌드·실험 결과를 각각 기록합니다.
저자의 원문으로 연결하는 9권 목록
| 권 | 주제 | 확인한 PDF 쪽수 |
|---|---|---|
| ERS 01 | Windows 드라이버 기초 | 109 |
| ERS 02 | 패치 비교와 드라이버 분석 | 85 |
| ERS 03 | Chrome와 V8 기초 | 62 |
| ERS 04 | macOS/iOS와 XNU | 126 |
| ERS 05 | Hyper-V 구조와 분석 | 57 |
| ERS 06 | 미니필터 사례 연구, 확장판 C.1 | 296 |
| ERS 07 | 같은 CVE의 후속 연구 1 | 119 |
| ERS 08 | 같은 CVE의 후속 연구 2 | 91 |
| ERS 09 | 같은 CVE의 후속 연구 3 | 106 |
확인한 9권의 합계는 1,051쪽입니다. 이 안내는 각 권의 표지·목차와 01의 선택한 본문을 대조한 읽기 지도이며, 1,051쪽 전체나 연결된 시연 영상을 모두 검토했다는 뜻은 아닙니다. 원문 PDF와 이미지는 이 사이트에 복제하지 않습니다.
같은 CVE와 다른 판본을 구분합니다
06–09는 cldflt.sys의 CVE-2024-30085를 이어서 다루는 연속 연구입니다. 네 개의 새로운 취약점 발견으로 세지 않습니다. 06의 게시물 주소는 2026-02-11이지만 확인한 PDF 표지는 2026-03-24, rev C.1, 296쪽입니다. 인용할 때 게시물 날짜만 쓰면 어떤 판본의 설명인지 잃게 됩니다.
02의 패치 비교는 변경 후보를 찾는 출발점입니다. 함수가 비슷해 보이거나 차이가 발견됐다는 것만으로 CVE 원인과 실행 경로가 증명되지는 않습니다. 대상 바이너리·심볼·빌드와 별도의 동작 증거가 필요합니다.
01을 읽을 때 함께 확인할 공식 규약
01의 29쪽에 나오는 비페이지 메모리 설명을 “모든 IRQL에서 호출해도 안전하다”로 받아들이지 않습니다. MmGetSystemAddressForMdlSafe의 호출 요구 조건은 IRQL ≤ DISPATCH_LEVEL이며, 새 매핑이 실패하면 NULL을 반환할 수 있습니다. 페이지 고정, 주소 매핑, 객체 수명과 호출 문맥은 별개의 조건입니다.
32쪽의 FlsStartFiltering은 FltStartFiltering으로, 55쪽의 WfdDriverCreate는 WdfDriverCreate로 읽어야 합니다. 전자는 등록된 미니필터의 필터링을 시작하고 후자는 프레임워크 드라이버 객체를 만듭니다. 비슷한 이름을 임의로 바꾸지 말고 실제 헤더와 API 문서에 맞춥니다.
IOCTL의 Access 필드는 장치 핸들을 열 때 요구되는 접근 권한이며 단순히 데이터 전송 방향의 이름이 아닙니다. DeviceType·Function·Method·Access로 구성하는 32비트 제어 코드는 IRP major function 번호와도 다릅니다. FILE_ANY_ACCESS를 양방향이라서 항상 안전한 기본값으로 쓰지 않습니다.
읽기 안내와 실행 검증의 경계
이 글은 저자의 자료를 찾아 읽고 오기를 바로잡기 위한 안내입니다. 취약점 코드 실행, 보호 기능 우회나 현재 Windows·Chrome·XNU 빌드의 안전성 판정은 수행하지 않았습니다. 오래된 연구 환경의 결과를 현재 제품 전반에 그대로 적용하지 않습니다.