미리보기
윈도우 파일 시스템(드라이버 개발자를 위한)
이 책은 현장에서의 오랜 실무 드라이버 개발 경험과 국내 최대의 드라이버 개발자 커뮤...
ISBN 89-5598-198-8
저자 이병오
발행일 2006-06-20
분량 600쪽
편집 2도
판형 46배변형판(190*245)
개정판정보 2006년 6월 20일(초판 1쇄 발행)
정가 29,000원↓
판매가 26,100
(10% off)
적립금 1,450원(5%)
  소득공제
도서소개

▣ 이 책에 대해서

[윈도우 파일 시스템의 구조와 드라이버 제작 과정을 파헤친다!]
이 책은 현장에서의 오랜 실무 드라이버 개발 경험과 국내 최대의 드라이버 개발자 커뮤니티인 KOSR(www.kosr.org)의 운영 노하우를 통해 운영체제 내부의 구조와 드라이버 제작 과정을 파헤치고 있다. 드라이버의 개념뿐만 아니라 개발 과정에서의 위험성과 운영체제의 특성에 관해 자세히 설명하고 있는 것이 특징이다. 또한 관련 프로그램을 예로 들면서 드라이버 개발의 개념에 접근할 수 있는 방법까지 제시하고 있다. 초보자들이 드라이버 개발에 쉽게 입문하도록 기초적인 지식은 물론, 실무에 바로 적용 가능한 응용 드라이버 소스를 담고 있어 PC 보안, DRM 등 여러 분야에 폭넓게 활용할 수 있다.

이 책은 크게 두 부분으로 구성되어 있다. 1~8장은 윈도우의 구조, 드라이버 동기화 매커니즘, 스레드 컨텍스트, I/O 관리, 데이터 버퍼, 가상 메모리 관리, 캐시 관리, IRP 처리 등 드라이버 개발에 필요한 이론적인 기초를 다진다.
9~12장은 이 이론을 바탕으로 실제 파일 시스템 필터 드라이버 예제를 소개한다. 개발자들이 많이 참고하는 Filemon 예제를 비롯해 간단하게 파일을 제어하는 드라이버, 가장 개발이 어려운 데이터에 대한 실시간 암복호화 처리 드라이버, 지금까지도 유용한 보안 기법으로 쓰이는 폴더 숨김 예제를 다룬다.

드라이버 개발은 일반적인 프로그래밍 방식과 차이가 큰 생소하고 어려운 분야라 개발을 중도 포기하는 경우가 많다. 이 책이 그 문턱을 낮추고 드라이버 개발의 내부까지 익히는 좋은 길잡이가 되어 줄 것이다. 또한 커널 레벨 프로그래밍에 관심 있는 이들의 호기심을 해소시켜 줄 것이다.

 

▣ 이 책의 특징

1. 운영체제의 내부 구조와 함께 파일 시스템 필터 드라이버의 구조, 제작과정을 자세히 소개한다.

2. 국내 최대의 드라이버 개발자 커뮤니티인 KOSR의 개발 노하우가 수록되어 있다.

3. 초보자를 위한 드라이버 제작 예제뿐만 아니라 PC 보안과 DRM에 적용되는 파일 시스템 필터 드라이버 제작 등 실무 기술이 담겨 있다.

목차

▣ 목차

01장. 파일 시스템 드라이버에 대해서
Section01. Windows 시스템의 구조 
Section02. 파일 시스템 드라이버
Section03. 필터 드라이버

02장. 드라이버 동기화 메커니즘
Section 01. 스핀 록 
Section 02. 디스패처 오브젝트 
Section 03. 리소스 오브젝트 
Section 04. 그 밖의 커널 모드 동기화 오브젝트 

03장. 프로세스와 스레드의 컨텍스트
Section 01. 컨텍스트란 무엇인가?
Section 02. 코드가 실행되는 컨텍스트 
Section 03. 스레드와 프로세스 컨텍스트의 중요성 
Section 04. 오브젝트와 핸들 

04장. I/O 관리자
Section 01. I/O 시스템 
Section 02. I/O 관리자 
Section 03. 주요 데이터 구조체 
Section 04. 오브젝트의 선택과 사용 

05장. 데이터 버퍼에 대해서
Section 01. I/O 데이터 버퍼의 종류 
Section 02. Device I/O 컨트롤 코드 

06장. IRP의 처리 과정
Section 01. IRP에 대해서 
Section 02. IRP 처리 방식 
Section 03. 동기적/비동기적 I/O 처리 
Section 04. IRP의 할당과 생성 
Section 05. I/O 완료 처리 과정 
Section 06. I/O 요청 취소 
Section 07. IRP 처리 규칙 
Section 08. I/O 요청 처리 시 주의 사항 

07장. 가상 메모리 관리자
Section 01. 가상 메모리의 탄생 배경 
Section 02. 가상 메모리 관리자의 기능 
Section 03. 프로세스의 주소 공간
Section 04. 물리 메모리 관리 
Section 05. 가상 주소의 변환 
Section 06. 메모리 매핑된 파일의 지원 
Section 07. 페이징 
Section 08. 페이지 오류 처리 
Section 09. 파일 시스템 드라이버와의 통신 

08장. 캐시 관리자
Section 01. 논리적 블록 캐싱과 가상 블록 캐싱 
Section 02. 캐시 관리자가 제공하는 기능
Section 03. 캐시 인터페이스 
Section 04. 데이터 읽기/쓰기 캐싱
Section 05. 주요 데이터 구조체 
Section 06. 파일 크기에 대한 고려 사항 
Section 07. 가상 주소 컨트롤 블록 배열 
Section 08. 공유된 캐시 맵과 독립된 캐시 맵 
Section 09. 캐싱의 사용을 위해 필요한 작업 
Section 10. 캐싱의 종료 
Section 11. VMM 및 I/O 관리자와의 통신 
Section 12. 미리 읽기 기능 
Section 13. 지연 쓰기 기능 

09장. 드라이버 작성 필수 예제 Filemon
Section 01. 드라이버 개발 절차 
Section 02. Filemon 예제 분석 
| Special Page | 좋은 드라이버 개발자를 위한 제언 

10장. 파일 액세스 제어용 드라이버 개발하기
Section 01. 드라이버의 개발 절차 
Section 02. SecuPF 함수   
Section 03. SecuPF 드라이버 개선법 

11장. 실시간 암복호화
Section 01. SecuEFS 드라이버란?
Section 02. 드라이버 개발 절차 
Section 03. 실시간 암복호화 드라이버의 동작  
Section 04. SecuEFS 드라이버의 개선점 

12장. 폴더 숨기기 예제
Section 01. SecuHF 드라이버의 개요   
Section 02. 드라이버 개발 절차 
Section 03. 폴더 숨김 드라이버의 내부 코드 
Section 04. SecuHF 드라이버의 개선점 

부록
Appendix A.  디바이스 드라이버 컴파일하기 
Appendix B. 파일 시스템 필터 드라이버 작성 시 주의할 점
Appendix C. 시스템 부팅 절차 
Appendix D. Attach 함수

▣ Part별 내용 요약

01장_파일 시스템 드라이버에 대해서
드라이버 개발 시 필요한 기초적인 내용을 소개한다. 드라이버 개발의 기본 환경인 Windows 시스템 구조와 드라이버의 종류에 대해 살펴본 다음, 파일 시스템의 종류에 대해서 언급한다. 마지막으로 이 책에서 설명하고자 하는 필터 드라이버의 동작 원리에 대해 설명한다.

02장_드라이버 동기화 매커니즘
드라이버 개발 시 데이터 보호를 위해 사용되는 동기화 처리 방안을 다룬다. 파일 시스템 필터 드라이버뿐만 아니라 WDM 드라이버 및 레거시 드라이버(Legacy Driver) 제작에 필요한 스핀 록과 디스패치 오브젝트들에 대한 전반적인 내용을 소개한다.

03장_프로세스와 스레드 컨텍스트
파일 시스템 필터 드라이버 개발에 있어서 알아두면 유용한 컨텍스트에 대한 내용을 소개한다. 컨텍스트의 개념과 함께 드라이버 코드가 실행되는 프로세스와 스레드 컨텍스트를 이해하고, 이러한 개념들이 파일 시스템 필터 드라이버 개발에 왜 중요한지 언급한다.

04장_I/O 관리자
IRP의 생성과 관리를 담당하기 위한 I/O 관리자에 대한 내용을 다루었다. Windows 운영체제에서 I/O 시스템의 설계 목표와 함께 I/O 관리자의 역할과 기능을 중심으로 소개한다. 또 드라이버 개발 시 가장 핵심이 되는 주요 구조체에 대한 내용을 설명한다.

05장_데이터 버퍼에 대해서
애플리케이션과 드라이버 간 통신 시 사용되는 데이터 버퍼에 대한 내용을 다룬다. 데이터를 읽거나 저장하기 위해 사용되는 데이터 버퍼의 서로 다른 세 가지 사용법을 소개한다. 또한 개발자가 지정한 명령을 드라이버에 전달하기 위해 사용되는 방법에 대해서 설명한다.

06장_IRP의 처리 과정
IRP의 생성부터 소멸까지의 전체 내용을 다루었다. 전반적인 IRP에 대한 내용과 함께 드라이버에서 IRP를 처리하는 과정, 그리고 동기식 IRP와 비동기식 IRP에 대해서 설명하고 있다. 마지막으로 IRP의 처리 과정을 통해서 어떻게 IRP를 처리할 것인가에 대한 처리 규칙을 정리했다.

07장_가상 메모리 관리자
Windows 운영체제에서 메모리 관리와 관련된 내용을 다룬다. 가상 메모리의 탄생 배경과 함께 운영체제의 코드와 애플리케이션의 코드가 상주하는 영역에서부터 물리 메모리의 관리, 그리고 가상 메모리를 물리 메모리로 변경하는 과정 등을 설명한다. 또한 가상메모리 관리자와 파일 시스템 드라이버의 관계를 설명한다.

08장_캐시 관리자
파일 시스템 드라이버에서만 사용되는 캐시 관리자에 대한 전반적인 내용을 다룬다. 캐시의 종류와 함께 캐시 관리자가 기본적으로 제공하는 세 가지 종류, 그리고 파일의 데이터를 읽거나 저장할 때의 처리 과정을 살펴봄으로써 어떻게 데이터가 캐시와 관련되는지 알아본다.

09장_드라이버 작성 필수 예제 Filemon
파일 시스템 필터 개발자가 가장 많이 참고하는 예제 소스 중 하나인 Filemon을 다룬다. 이 장은 필자가 5년 이상 드라이버를 개발하면서 정리한 드라이버 개발 절차를 간단히 제시하고, 실제 참고가 되는 예제 소스인 Filemon의 분석 내용을 담고 있다.

10장_파일 액세스 제어용 드라이버 개발하기
세 가지 파일 시스템 필터 드라이버의 예제 중 첫 번째 예제로써 간단하게 파일을 제어하기 위한 드라이버의 개발 과정을 담고 있다. 9장에서 설명했던 개발 절차에 따라 필터 드라이버를 설계하고, 실제 개발된 필터 드라이버를 참고로 주요 함수들에 대해 설명한다.

11장_실시간 암복호화
파일 시스템 필터 드라이버를 활용하는 두 번째 예제로 데이터 실시간 암복호화에 대한 내용을 다룬다. 이 드라이버는 필자가 처음 파일 시스템 필터 드라이버를 배우면서 개발했던 암복호화용 드라이버의 버그를 수정하여 제시한다.

12장_폴더 숨기기 예제
파일 시스템 필터 드라이버에 대한 마지막 예제로 지금까지도 유용하게 사용되고 있는 폴더를 숨기는 방법에 대해서 소개한다. 폴더 숨김은 일반 컴퓨터 보안에서 응용되고 있는 기법인데, 이를 개발하기 위한 절차와 함께 주요 함수에 대해서 설명한다.

부록
초보 드라이버 개발자를 위해 디바이스 드라이버의 컴파일 과정을 그림과 함께 자세히 소개한다. 또 파일 시스템 필터 드라이버 개발 시 주의할 내용, Windows 운영체제의 부팅 과정을 설명한다. 마지막으로 필터 드라이버를 실제 감시 대상이 되는 드라이버에 추가시키는 세 가지 함수에 대해 설명한다.


 

▣ 저 자  : 이병오

1999년 소프트프로텍에 입사하면서 Windows 커널 프로그래밍을 접하게 되었다. USB 디바이스 드라이버 제작을 시작으로 DRM 업체인 파수닷컴에서 다수의 FSFD를 개발했다. 현재 드라이버 개발 전문업체인 하이브테크(www.hybtech.com)를 운영하고 있다.
Windows 시스템 관련 커뮤니티인 다음 카페 ‘Windows System Programmer’ 운영자를 역임하고, 현재 국내 최대의 윈도우 디바이스 드라이버 커뮤니티인 KOSR(www.kosr.org)의 회장을 맡고 있다. 한국 커뮤니티 연합회인 SCA(www.scakorea.org)의 발기 회원으로도 활동 중이다.

 

▣ 추천사

최근 운영체제의 커널이나 컴퓨터의 내부 구조에 관심을 가지는 개발자들이 많아졌습니다. 이는 기존 운영체제 벤더에 의해 제공되던 API 수준의 한계를 뛰어넘어 보고자 하는 개발자들의 창조적 본능에서 연유한 결과라는 생각이 듭니다. 이 책은 개발자들에게 널리 응용되는 파일 시스템 필터 드라이버를 통해 윈도우 내부의 여러 요소와 디바이스 드라이버 프로그래밍의 기초를 소개하고 있습니다. 이 책이 커널 레벨 프로그래밍에 관심 있는 이들의 호기심을 해소시켜 줄 수 있으리라 기대합니다.
- 정덕영, (주)안철수연구소 선행기술팀 선임연구원

실제로 파일 시스템 필터 드라이버를 개발하는 데 필요한 모든 내용을 포괄적으로 다루고 있는 책입니다. 윈도우 파일 시스템 필터 드라이버를 개발하거나 파일 시스템의 동작 원리에 대해 상세히 알고 싶은 개발자에게는 상당한 도움이 될 것입니다.
- 김성일, (주)팬텍앤큐리텔 소프트웨어 엔지니어

이 책은 인터넷 환경에 새롭게 대두되고 있는 보안 기술에 대한 중요한 참고 서적이라고 생각합니다. 윈도우에서 제공하는 보안 기술을 처음 접하는 독자들이 시스템의 전반적인 구조와 이를 기반으로 한 파일 시스템 보안 구조를 파악할 수 있는 서적입니다. 이 책은 오랫동안 현장에서 경험한 내용을 바탕으로 하여 독자들이 충분한 이해를 할 수 있도록 체계적으로 정리되었습니다. 파일 시스템과 보안을 처음 접하는 분들에게 좋은 길라잡이가 될 것입니다.
- 윤상윤, TecAce 개발팀장

KOSR의 회장인 이병오 님의 책이 드디어 빛을 보게 되었습니다. 이 책은 파일 시스템 필터 드라이버를 제작하기 위해 필요한 지식들을 잘 정리해 놓아 개발자들에게 좋은 길잡이입니다. 유용한 예제들과 더불어 실전으로 다져진 저자의 경험에서 나오는 조언을 들을 수 있습니다. 이런 어렵고 생소한 분야의 책들이 국내 개발자를 통해 출간됐다는 것은 상당히 고무적인 일입니다.
- 최장욱, (전)하제소프트 연구원

드라이버 프로그래밍에 입문하기 위해서는 파일 시스템 필터 드라이버가 필수입니다. 이 책에는 드라이버의 구동 방식과 구조를 배우고 응용할 수 있는 좋은 예제들이 담겨 있습니다. 목차만 봐도 알 수 있듯이 드라이버의 개념뿐만 아니라 개발 과정에서의 위험성과 운영체제의 특성까지 자세히 설명하고 있습니다. 또한 관련된 프로그램을 예로 들면서 드라이버 개발의 개념에 접근하는 방법을 제시하고 있습니다. 드라이버 개발을 위해 밤낮을 가리지 않고 전전긍긍하는 개발자들에게 많은 도움이 될 것으로 보입니다.
- 박종혁, (주)하우리 선임연구원

현재는 참고할 만한 서적이나 커뮤니티, 조금은 풍부해진 인프라 덕에 좀 더 쉽게 드라이버개발에 입문할 수 있지만 6년이라는 세월을 거슬러 올라가면 정말 어려운 분야였습니다. 그 어려운 시기에 하나 둘씩 직접 익힌 것들은 무엇보다도 소중한 경험이었을 것입니다. 그 소중한 경험이 이 한 권에 모두 담겨 있습니다. 점점 쉬워지고 있는 드라이버 개발, 그 내부까지 익히고 싶은 독자에게 이 책을 꼭 읽어보라고 추천합니다. 많은 후배 개발자들이 이 책을 토대로 탄탄한 기본기를 익혔으면 하는 바람입니다.
- 함원식, (주)제머나이소프트 개발자

저자
부록/예제소스
정오표
    최근 본 상품 1