이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

가격
130,000
10 117,000
YES포인트?
6,500원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
  • 이 상품은 YES24에서 구성한 상품입니다(낱개 반품 불가).

이미 소장하고 있다면 판매해 보세요.

  •  국내배송만 가능

이 상품의 시리즈 2

이 상품의 시리즈 알림신청
뷰타입 변경

에이콘 윈도우 시스템 프로그래밍 시리즈

책소개

목차

『Windows Internals 7/e Vol.1』

1장. 개념과 툴

__윈도우 운영체제 버전
____윈도우 10과 향후 윈도우 버전
____윈도우 10과 원코어
__기본 개념과 용어
____윈도우 API
____서비스와 함수, 루틴
____프로세스
____스레드
____잡
____가상 메모리
____커널 모드와 유저 모드
____하이퍼바이저
____펌웨어
____터미널 서비스와 다중 세션
____객체와 핸들
____보안
____레지스트리
____유니코드
__윈도우 내부 들여다보기
____성능 모니터와 자원 모니터
____커널 디버깅
____윈도우 소프트웨어 개발 킷
____윈도우 드라이버 킷
____Sysinternals 툴
__결론

2장. 시스템 아키텍처

__요구 사항과 설계 목표
__운영체제 모델
__아키텍처 개요
____이식성
____대칭형 멀티프로세싱
____확장성
____클라이언트와 서버 버전의 차이
____체크드 빌드
__가상화 기반의 보안 아키텍처 개요
__핵심 시스템 컴포넌트
____환경 서브시스템과 서브시스템 DLL
____기타 서브시스템
____익스큐티브
____커널
____하드웨어 추상화 계층
____디바이스 드라이버
____시스템 프로세스
__결론

3장. 프로세스와 잡

__프로세스 생성
____CreateProcess* 함수 인자
____윈도우 최신 프로세스 생성
____다른 종류의 프로세스 생성
__프로세스 내부 구조
__보호 프로세스
____보호 프로세스 라이트(PPL)
____서드파티 PPL 지원
__최소 프로세스와 피코 프로세스
____최소 프로세스
____피코 프로세스
__트러스트릿(안전한 프로세스)
____트러스트릿 구조체
____트러스트릿 정책 메타데이터
____트러스트릿 속성
____시스템 내장 트러스트릿
____트러스트릿 신분
____격리된 유저 모드 서비스
____트러스트릿 접근 가능 시스템 호출
__CreateProcess 흐름
____1단계: 매개변수와 플래그의 유효성 검사 및 변환
____2단계: 실행할 이미지 열기
____3단계: 윈도우 익스큐티브 프로세스 객체 생성
____4단계: 초기 스레드와 그 스택 및 컨텍스트 생성
____5단계: 윈도우 서브시스템 특정적인 초기화 수행
____6단계: 초기 스레드의 실행 시작
____7단계: 새 프로세스의 컨텍스트에서 프로세스 초기화 수행
__프로세스 종료
__이미지 로더
____이른 시점의 프로세스 초기화
____DLL 이름 결정과 리디렉션
____로드된 모듈의 데이터베이스
____임포트 파싱
____포스트 임포트 프로세스 초기화
____스위치백
____API 세트
__잡
____잡 제약
____잡과 작업
____중첩 잡
____윈도우 컨테이너(서버 실로)
__결론

4장. 스레드

__스레드 생성
__스레드 내부 구조
____데이터 구조체
____스레드의 탄생
__스레드 활동성 검사
____보호 프로세스 스레드의 제약
__스레드 스케줄링
____윈도우 스케줄링의 개요
____우선순위 수준
____스레드 상태
____디스패처 데이터베이스
____퀀텀
____우선순위 상승
____컨텍스트 전환
____스케줄링 시나리오
____유휴 스레드
____스레드 일시 중지
____(딥) 프리즈
____스레드 선정
____멀티프로세서 시스템
____멀티프로세서 시스템에서의 스레드 선정
____프로세서 선정
____이기종 스케줄링(big.LITTLE)
__그룹 기반의 스케줄링
____동적으로 공정한 공유 스케줄링
____CPU 비율 제한
____동적 프로세서 추가와 교체
__작업자 팩토리(스레드 풀)
____작업자 팩토리 생성
__결론

5장. 메모리 관리

__메모리 관리자 소개
____메모리 관리자 컴포넌트
____큰 페이지와 작은 페이지
____메모리 사용량 살펴보기
____내부 동기화
__메모리 관리자가 제공하는 서비스
____페이지 상태와 메모리 할당
____커밋양과 커밋 제한
____메모리 락킹
____할당 단위
____공유 메모리와 맵 파일
____메모리 보호
____데이터 실행 방지
____Copy-on-Write
____주소 윈도우 확장
__커널 모드 힙(시스템 메모리 풀)
____풀 크기
____풀 사용량 모니터링
____룩 어사이드 리스트
__힙 관리자
____프로세스 힙
____힙 유형
____NT 힙
____힙 동기화
____저단편화 힙
____세그먼트 힙
____힙 보안 특징
____힙 디버깅 특징
____페이지힙
____폴트 톨러런트 힙
__가상 주소 공간 배치
____x86 주소 공간 배치
____x86 시스템 주소 공간 배치
____x86 세션 공간
____시스템 페이지 테이블 엔트리
____ARM 주소 공간 배치
____64비트 주소 공간 배치
____x64 가상 주소 제약
____동적 시스템의 가상 주소 관리
____시스템 가상 주소 공간 할당량
____사용자 주소 공간 배치
__주소 변환
____x86 가상 주소 변환
____변환 룩 어사이드 버퍼(TLB)
____x64 가상 주소 변환
____ARM 가상 주소 변환
__페이지 폴트 핸들링
____유효하지 않은 PTE
____프로토타입 PTE
____인 페이징 I/O
____페이지 폴트 충돌
____클러스터 페이지 폴트
____페이지 파일
____커밋양과 시스템 커밋 제한
____커밋양과 페이지 파일 크기
__스택
____유저 스택
____커널 스택
____DPC 스택
__가상 주소 디스크립터(VAD)
____프로세스 VAD
____VAD 교체
__NUMA
__섹션 객체
__워킹셋
____요구 페이징
____논리적 프리패처와 레디부트
____배치 정책
____워킹셋 관리
____밸런스 셋 관리자와 스와퍼
____시스템 워킹셋
____메모리 통지 이벤트
__페이지 프레임 번호 데이터베이스
____페이지 리스트 다이내믹스
____페이지 우선순위
____변경 페이지 기록자와 맵 페이지 기록자
____PFN 데이터 구조
____페이지 파일 예약
__물리 메모리 제한
____윈도우 클라이언트 메모리 제한
__메모리 압축
____압축 예제
____압축 아키텍처
__메모리 파티션
__메모리 결합
____탐색 단계
____분류 단계
____페이지 결합 단계
____전용에서 공유 PTE로
____결합 페이지 해제
__메모리 엔클레이브
____프로그램 인터페이스
____메모리 엔클레이브 초기화
____엔클레이브 구축
____엔클레이브로 데이터 로드
____엔클레이브 초기화
__선행적 메모리 관리(슈퍼패치)
____컴포넌트
____트레이싱과 로깅
____시나리오
____페이지 우선순위와 균형 조절
____견고한 성능
____레디부스트
____레디드라이브
____프로세스 리플렉션
__결론

6장. I/O 시스템

__I/O 시스템 컴포넌트
____I/O 관리자
____전형적인 I/O 처리
__인터럽트 요청 레벨과 지연된 프로시저 호출
____인터럽트 요청 레벨
____지연된 프로시저 호출
__디바이스 드라이버
____디바이스 드라이버의 유형
____드라이버의 구조
____드라이버 객체와 디바이스 객체
____장치 열기
__I/O 처리
____I/O의 유형
____I/O 요청 패킷
____단일 계층 하드웨어 기반 드라이버로의 I/O 요청
____계층적 드라이버에 대한 I/O 요청
____스레드 비종속적 I/O
____I/O 취소
____I/O 완료 포트
____I/O 우선순위화
__컨테이너 통지
____드라이버 베리파이어
____I/O 관련 검증 옵션
__메모리 관련 검증 옵션
____플러그앤플레이 관리자
____플러그앤플레이 지원 수준
____장치 열거
____디바이스 스택
____플러그앤플레이를 위한 드라이버 지원
__플러그앤 플레이 드라이버 설치
____일반적인 드라이버 로드와 설치
____드라이버 로딩
__드라이버 설치
____윈도우 드라이버 파운데이션
____커널 모드 드라이버 프레임워크
__유저 모드 드라이버 프레임워크
____전원 관리자
____연결 스탠바이와 모던 스탠바이
____전원 관리자 동작
____드라이버의 전원 동작
____드라이버와 애플리케이션의 장치 전원 제어
____전원 관리 프레임워크
__전원 가용성 요청
결론

7장. 보안

__보안 등급
____신뢰성 있는 컴퓨터 시스템 평가 지침
____공통 평가 기준
__보안 시스템 구성 요소
__가상화 기반의 보안
____자격증명 가드
____장치 가드
__객체 보호
____접근 검사
____보안 식별자
____가상 서비스 계정
____보안 디스크립터와 접근 제어
____동적 접근 제어
__AuthZ API
____조건부 ACE
__계정 권한과 특권
____계정 권한
____특권
____슈퍼 특권
__프로세스와 스레드의 접근 토큰
__보안 감사
____객체 접근 감사
____전역 감사 정책
____고급 감사 정책 설정
__앱컨테이너
____UWP 앱의 개요
____앱컨테이너
__로그온
____Winlogon 초기화
____사용자 로그온 과정
____보장된 인증
____윈도우 생체 인식 프레임워크
____윈도우 헬로
__사용자 계정 제어와 가상화
____파일 시스템과 레지스트리 가상화
____상승
__취약점 완화
____프로세스 완화 정책
____제어 흐름 무결성
____보안 보장
__애플리케이션 식별
__앱락커
__소프트웨어 제한 정책
__커널 패치 보호
__패치가드
__하이퍼가드
__결론

『Windows Internals 7/e Vol.2』

8장. 시스템 메커니즘

__프로세서 실행 모델
____세그먼테이션
____작업 상태 세그먼트
__하드웨어 사이드 채널 취약점
____비순차적 실행
____CPU 분기 예측기
____CPU 캐시
____사이드 채널 공격
__윈도우의 사이드 채널 공격 완화
____커널 가상 주소 섀도우
____하드웨어 간접 분기 제어(IBRS, IBPB, STIBP, SSBD)
____리트폴린과 임포트 최적화
____STIBP 페어링
__트랩 디스패칭
____인터럽트 디스패칭
____라인 기반 인터럽트와 메시지 기반 인터럽트
____타이머 처리
____시스템 작업자 스레드
____예외 디스패칭
____시스템 서비스 핸들링
__WoW64(윈도우 안의 윈도우)
____WoW64 코어
____파일 시스템 리다이렉션
____레지스트리 리다이렉션
____AMD64 플랫폼에서 x86 시뮬레이션
____ARM
____메모리 모델
____ARM64 플랫폼에서 ARM32 시뮬레이션
____ARM64 플랫폼에서 X86 시뮬레이션
__객체 관리자
____이그제큐티브 객체
____객체 구조체
__동기화
____High-IRQL 동기화
____Low-IRQL 동기화
__고급 로컬 프로시저 호출
____연결 모델
____메시지 모델
____비동기 작업
____뷰, 영역, 섹션
____속성
____블롭, 핸들, 리소스
____핸들 전달
____보안
____성능
____전원 관리
____ALPC 다이렉트 이벤트 속성
____디버깅과 추적
__윈도우 알림 기능
____WNF 기능
____WNF 유저
____WNF 상태 이름과 저장소
____WNF 이벤트 기반 수집
__유저 모드 디버깅
____커널 지원
____네이티브 지원
____윈도우 서브시스템 지원
__패키지 애플리케이션
____UWP 애플리케이션
____센테니얼 애플리케이션
____호스트 활동 관리자
____상태 저장소
____종속성 미니 저장소
____백그라운드 작업 및 브로커 인프라
____패키지 애플리케이션 설치와 시작
____패키지 활성화
____패키지 등록
__결론

9장. 가상화 기술

__윈도우 하이퍼바이저
____파티션, 프로세스, 스레드
____하이퍼바이저 시작
____하이퍼바이저 메모리 관리자
____하이퍼V 스케줄러
____하이퍼콜과 하이퍼바이저 TLFS
____인터셉트
____가상 인터럽트 컨트롤러(SynIC)
____윈도우 하이퍼바이저 플랫폼 API와 EXO 파티션
____중첩된 가상화
____ARM64 윈도우 하이퍼바이저
__가상화 스택
____가상 머신 관리자 서비스와 작업자 프로세스
____VID 드라이버와 가상화 스택 메모리 관리자
____가상 머신(VM)의 탄생
____VMBus
____가상 하드웨어 지원
____VA백드 가상 머신
__가상화 기반 보안(VBS)
____가상 신뢰 수준(VTL)과 가상 보안 모드(VSM)
____VSM에서 제공하는 서비스와 요구 사항
__보안 커널
____가상 인터럽트
____보안 인터셉트
____VSM 시스템 콜
____보안 스레드와 스케줄링
____하이퍼바이저 적용 코드 무결성
____UEFI 런타임 가상화
____VSM 시작
____보안 커널 메모리 관리자
____핫패칭
__격리된 유저 모드
____트러스트렛 생성
____보안 디바이스
____VBS 기반 엔클레이브
____시스템 가드 런타임 증명
__결론

10장. 관리, 진단, 추적

__레지스트리
____레지스트리 보기와 변경
____레지스트리 사용
____레지스트리 데이터 유형
____레지스트리의 논리적 구조
____애플리케이션 하이브
____트랜잭션 레지스트리(TxR)
____레지스트리 행위 모니터링
____프로세스 모니터의 내부 구조
____레지스트리 내부
____하이브 개편
____레지스트리 네임스페이스와 동작
____안전한 저장소
____레지스트리 필터링
____레지스트리 가상화
____레지스트리 최적화
__윈도우 서비스
____서비스 애플리케이션
____서비스 계정
____서비스 제어 관리자(SCM)
____서비스 제어 프로그램
____자동 시작 서비스 시작
____지연된 자동 시작 서비스
____트리거 시작 서비스
____시작 에러
____부팅 및 마지막 정상 승인 확인
____서비스 실패
____서비스 종료
____공유 서비스 프로세스
____서비스 태그
____유저 서비스
____패키지 서비스
____보호된 서비스
__작업 스케줄링과 UBPM
____작업 스케줄러
____UBPM
____작업 스케줄러 COM인터페이스
__윈도우 관리 도구
____WMI 아키텍처
____WMI 공급자
____CIM과 MOF 언어
____클래스 연관화
____WMI 구현
____WMI 보안
__윈도우 이벤트 추적(ETW)
____ETW 초기화
____ETW 세션
____ETW 공급자
____공급자 이벤트
____ETW 로그 스레드
____이벤트 소비
____시스템 로그
____ETW 보안
__동적 트레이스(DTrace)
____내부 아키텍처
____DTrace 타입 라이브러리
__윈도우 에러 보고(WER)
____유저 애플리케이션 크래시
____커널 모드(시스템) 크래시
____프로세스 행 감지
__전역 플래그
__커널 심
____심 엔진 초기화
____심 데이터베이스
____드라이버 심
____디바이스 심
__결론

11장. 캐싱과 파일 시스템

__용어
__캐시 관리자의 주요 특징
____단일, 중앙 집중형 시스템 캐시
____메모리 관리자
____캐시 일관성
____가상 블록 캐싱
____스트림 기반 캐싱
____복구 가능 파일 시스템 지원
____NTFS MFT 작업 집합 기능 향상
____메모리 파티션 지원
__캐시의 가상 메모리 관리
__캐시 크기
____캐시 가상 크기
____캐시 작업 집합 크기
____물리적인 캐시 크기
__캐시 데이터 구조
____시스템 전역 캐시 데이터 구조
____파일 단위 캐시 데이터 구조체
__파일 시스템 인터페이스
____캐시로 복사/캐시로부터의 복사
____매핑 및 고정 인터페이스를 통한 캐싱
____직접 메모리 액세스 인터페이스를 이용한 캐싱
__패스트 I/O
__미리 읽기와 나중 쓰기
____지능형 미리 읽기
____미리 읽기 기능 향상
____재기록 캐싱과 지연 라이터
____파일에 대한 지연 라이터 비활성화
____캐시로 하여금 디스크에 즉시 쓰기 강제하기
____맵 파일 플러시하기
____쓰기 조절
____시스템 스레드
____비하인드 강제 쓰기와 낮은 우선순위 지연 라이터
____동적 메모리
____캐시 관리자 디스크 I/O 계정
__파일 시스템
____윈도우 파일 시스템 형식
____CDFS
____UDF
____FAT12, FAT16, FAT32
____exFAT
____NTFS
____ReFS
____파일 시스템 드라이버 아키텍처
____로컬 FSD
____원격 FSD
____파일 시스템 동작
____명시적 파일 I/O
____메모리 관리자의 변경 페이지 라이터와 맵드 페이지 라이터
____캐시 관리자의 지연 라이터
____캐시 관리자의 미리 읽기 스레드
____메모리 관리자의 페이지 폴트 핸들러
____파일 시스템 필터 드라이버와 미니필터
____네임드 파이프 및 메일슬롯 필터링
____리파스 포인트의 동작 제어
____프로세스 모니터
__NT 파일 시스템(NTFS)
____하이엔드 파일 시스템 요구 사항
____복구 기능
____보안
____데이터 중복과 내결함성
____NTFS 고급 기능
____다중 데이터 스트림
____유니코드 기반의 이름
____범용적인 인덱싱 기능
____동적으로 수행되는 손상 클러스터 재할당
____하드 링크
____심볼릭(소프트) 링크와 정션
____압축과 스파스 파일
____로깅 변경
____유저별 볼륨 쿼터
____링크 추적
____암호화
____POSIX 스타일의 삭제 의미
____조각 모음
____동적 파티셔닝
____계층적 볼륨에 대한 NTFS 지원
__NTFS 파일 시스템 드라이버
__디스크상의 NTFS 구조
____볼륨
____클러스터
____마스터 파일 테이블
____파일 레코드 번호
____파일 레코드
____파일 이름
____터널링
____상주와 비상주 속성
____데이터 압축과 스파스 파일
____스파스 데이터의 압축
____비스파스 데이터 압축
____스파스 파일
____변경 저널 파일
____인덱싱
____객체 ID
____쿼터 추적
____통합 보안
____리파스 포인트
____스토리지 예약 및 NTFS 예약
____트랜잭션 지원
____격리
____트랜잭션 API
____디스크에서의 지원
____로깅 지원
__NTFS 복구 지원
____설계
____메타데이터 로깅
____로그 파일 서비스
____로그 레코드 유형
____복구
____분석 패스
____재실행 패스
____취소 패스
____NTFS 불량 클러스터 복구
____자가 복구
____온라인 디스크 검사와 신속한 복구
__암호화 파일 시스템
____파일 최초 암호화
____복호화 프로세스
____암호화된 파일 백업
____암호화된 파일 복사
____비트락커 암호화 부하 분산
____온라인 암호화 지원
__직접 액세스(DAX) 디스크
____DAX 드라이버 모델
____DAX 볼륨
____DAX 볼륨 캐시와 넌캐시 I/O
____실행 가능 이미지 매핑
____블록 볼륨
____파일 시스템 필터 드라이버 및 DAX
____DAX 모드 I/O 플러시
____큰 페이지 및 대용량 페이지 지원
____가상 PM 디스크 및 저장 공간 지원
__복원 파일 시스템(ReFS)
____민스토어 아키텍처
____B+ 트리의 물리적 레이아웃
____할당자
____페이지 테이블
____민스토어 I/O
____ReFS 아키텍처
____ReFS 온디스크 구조
____객체 ID
____보안 및 변경 저널
__ReFS의 고급 기능
____파일 차단 복제(스냅샷 지원)와 스파스 VDL
____ReFS 즉시 쓰기
____ReFS 복구 지원
____누수 감지
____기와식 자기 기록(SMR) 볼륨
____계층적 볼륨 및 SMR에 대한 ReFS 지원
____컨테이너 압축
____압축 및 고스팅
__스토리지 공간
____스페이스 내부 아키텍처
____스페이스가 제공하는 서비스
__결론

12장. 시작과 종료

__부팅 과정
____UEFI 부트
____BIOS 부팅 프로세스
____보안 부팅
____윈도우 부팅 관리자
____부팅 메뉴
____부팅 애플리케이션 시작
____측정된 부팅
____신뢰된 실행
____윈도우 운영체제 로더
____iSCSI 부팅
____하이퍼바이저 로더
____VSM 시작 정책
____보안 실행
____커널과 이그제큐티브 서브시스템 초기화
____커널 초기화 단계 1
____Smss, Csrss, Wininit
____레디부트
____자동 시작 이미지
____종료
____하이버네이션 및 빠른 시작
____윈도우 복원 환경(WinRE)
____안전 모드
____안전 모드에서 드라이버 로드
____안전 모드 지원 유저 프로그램
____부팅 상태 파일
__결론

저자 소개 7

알렉스 이오네스쿠

관심작가 알림신청
 

Alex Inoescu

크라우드스트라이크 사의 엔드포인트 엔지니어링 부사장으로, 창립 수석 아키텍트로 시작했다. 로우레벨 시스템 소프트웨어, 커널 개발, 보안 교육, 리버스 엔지니어링 분야의 세계적인 보안 아키텍트이자 컨설턴트 전문가다. 20년이 넘는 기간 동안 보안 연구 작업을 통해 윈도우 커널 및 관련 구성 요소의 수십 가지 중요한 보안 취약점과 여러 동작 버그를 수정했다. 그 전에는 처음부터 작성된 오픈소스 윈도우 클론인 리액트OS(ReactOS)의 수석 커널 개발자로서 대부분의 윈도우 NT 기반 하위 시스템을 작성했다. 컴퓨터 공학을 전공하는 동안 애플에서 iOS 커널, 부트 로더, 아이폰, 아
크라우드스트라이크 사의 엔드포인트 엔지니어링 부사장으로, 창립 수석 아키텍트로 시작했다. 로우레벨 시스템 소프트웨어, 커널 개발, 보안 교육, 리버스 엔지니어링 분야의 세계적인 보안 아키텍트이자 컨설턴트 전문가다. 20년이 넘는 기간 동안 보안 연구 작업을 통해 윈도우 커널 및 관련 구성 요소의 수십 가지 중요한 보안 취약점과 여러 동작 버그를 수정했다. 그 전에는 처음부터 작성된 오픈소스 윈도우 클론인 리액트OS(ReactOS)의 수석 커널 개발자로서 대부분의 윈도우 NT 기반 하위 시스템을 작성했다. 컴퓨터 공학을 전공하는 동안 애플에서 iOS 커널, 부트 로더, 아이폰, 아이패드, 애플TV의 오리지널 핵심 플랫폼 팀에서 드라이버를 개발했다. 또한 다양한 기관을 대상으로 로우레벨 시스템 소프트웨어, 리버스 엔지니어링 및 보안 교육을 전문으로 하는 윈사이더 세미나 앤 솔루션 사(Winsider Seminars & Solutions, Inc.)의 설립자이기도 하다. 커뮤니티에서 활발한 활동을 이어가고 있으며 전 세계 20여 개 이상의 행사에서 강연을 해왔다. 전 세계 기관과 일반 사용자에게 윈도우 내부 교육, 지원 및 리소스를 제공한다. 트위터(@aionescu)와 블로그(www.alex-ionescu.com 및 www.windows-internals.com/blog)를 팔로우하라.

알렉스 이오네스쿠의 다른 상품

안드레아 알레비

관심작가 알림신청
 

Andrea Allievi

15년 이상의 경력을 가진 시스템 레벨 개발자이자 보안 분야 전문가다. 2010년, 밀라노 비코카 대학교(University of Milano-Bicocca)에서 컴퓨터공학 학사 학위를 취득했다. 논문을 위해 모든 윈도우 7 커널 보호(패치가드 및 드라이버 서명 적용)를 무력화할 수 있는 64비트 MBR(Master Boot Record) 부트킷을 개발했다. 커널 모드 코드부터 유저 모드 코드까지 운영체제 내부를 담당하는 리버스 엔지니어이기도 하다. 먼저 UEFI 부트킷(연구 목적으로 개발했으며 2012년에 발표), 여러 패치가드 바이패스 및 기타 여러 연구 논문과 기사를 작성한
15년 이상의 경력을 가진 시스템 레벨 개발자이자 보안 분야 전문가다. 2010년, 밀라노 비코카 대학교(University of Milano-Bicocca)에서 컴퓨터공학 학사 학위를 취득했다. 논문을 위해 모든 윈도우 7 커널 보호(패치가드 및 드라이버 서명 적용)를 무력화할 수 있는 64비트 MBR(Master Boot Record) 부트킷을 개발했다. 커널 모드 코드부터 유저 모드 코드까지 운영체제 내부를 담당하는 리버스 엔지니어이기도 하다. 먼저 UEFI 부트킷(연구 목적으로 개발했으며 2012년에 발표), 여러 패치가드 바이패스 및 기타 여러 연구 논문과 기사를 작성한 최초 개발자다. 멀웨어 및 지능형 지속적인 스레드 제거에 사용되는 여러 시스템 도구 및 소프트웨어의 저자이기도 하다. 또한 다양한 컴퓨터 보안 회사, 이탈리아의 TG소프트, 세이퍼바이트(현 멀웨어바이트), 시스코 시스템즈의 탈로스 그룹 경력이 있다. 2016년에 마이크로소프트 위협 인텔리전스 센터(MSTIC, MicroSoft Defender Threat Intelligence Center) 그룹의 보안 연구 엔지니어로 마이크로소프트에 입사했다. 2018년 1월부터는 마이크로소프트의 커널 보안 코어 팀에서 수석 핵심 OS 엔지니어로 일하면서 주로 NT 및 보안 커널의 새로운 기능(예를 들어 리트폴린 또는 추측 완화 기능)을 유지 관리하고 개발하는 업무를 담당하고 있다. 보안 연구 커뮤니티에서 활발히 활동하고 새로운 커널 기능에 대한 기술보안 연구 커뮤니티에서도 활발히 활동하고 있다. 마이크로소프트의 새로운 커널 기능에 대한 Recon 및 Microsoft BlueHat과 같은 여러 기술 콘퍼런스에서 강연하고 있다. 트위터(현 X)(@aall86)를 팔로우하라.

안드레아 알레비의 다른 상품

파벨 요시포비치

관심작가 알림신청
 

Pavel Yosifovich

마이크로소프트 기술과 툴에 전통한 개발자이고 교육자, 저자이며, 마이크로소프트 MVP이고, Pluralsight 저자로서 소프트웨어에 대한 무한한 사랑이 있다. 8비트 머신 시절부터 이 분야에 계속 종사하고 있으며, 코모도64(Commodore64)에서 프로그래밍하던 시절을 애정 어린 시선으로 회상하곤 한다.

파벨 요시포비치의 다른 상품

마크 러시노비치

관심작가 알림신청
 

Mark E. Russinovich

현재 마이크로소프트의 애저 최고 기술 책임자 겸 기술 선임 연구원이다. 운영체제 및 보안 분야에서 널리 알려진 전문가다.

마크 러시노비치의 다른 상품

데이비드 솔로몬

관심작가 알림신청
 

David Solomon

20년간 윈도우 내부를 가르쳤으며 1993년과 2005년 마이크로소프트 지원 최우수 전문가(MVP) 상을 받았다.

데이비드 솔로몬의 다른 상품

안랩 기반기술팀

관심작가 알림신청
 
파일 시스템과 네트워크, 가상화, 매체 제어 등의 여러 분야에 관련된 윈도우 보안 시스템 프로그램과 커널 프로그램을 개발하며, 보안 이슈에 관련된 선행적인 기술 연구와 기반 기술 개발을 수행하는 일에 애정을 갖고 열정적으로 함께 일하는 팀이다. 이 책의 번역에는 김한주 팀장, 김소현 책임, 최바울 책임, 박영준 주임연구원 그리고 홍성진 수석이 참여했다

안랩 기반기술팀의 다른 상품

삼성전자에서 GNU 컴파일러를 기반으로 ARM CORE 컴파일러 포팅/개발 프로젝트를 수행했다. 이후 보안 분야와 디바이스 드라이버에 관심을 두고 데브그루를 공동으로 창업해 다양한 장치/보안 드라이버를 개발했고, 다수의 드라이버 강의나 세미나, 교육을 진행했다. (주)안랩의 기반 기술 팀에서 보안 관련 시스템 프로그램 개발 업무를 수행했다. 현재는 여행 사진에 관심이 많다. 주요 번역서로는 『Windows Internals 7/e Vol.1』(에이콘, 2018), 『THE GARBAGE COLLECTION HANDBOOK』(에이콘, 2016), 『실전 윈도우 디버깅』(에이콘
삼성전자에서 GNU 컴파일러를 기반으로 ARM CORE 컴파일러 포팅/개발 프로젝트를 수행했다. 이후 보안 분야와 디바이스 드라이버에 관심을 두고 데브그루를 공동으로 창업해 다양한 장치/보안 드라이버를 개발했고, 다수의 드라이버 강의나 세미나, 교육을 진행했다. (주)안랩의 기반 기술 팀에서 보안 관련 시스템 프로그램 개발 업무를 수행했다. 현재는 여행 사진에 관심이 많다.

주요 번역서로는 『Windows Internals 7/e Vol.1』(에이콘, 2018), 『THE GARBAGE COLLECTION HANDBOOK』(에이콘, 2016), 『실전 윈도우 디버깅』(에이콘, 2008), 『WDF』(에이콘, 2008) 등이 있다.

김점갑의 다른 상품

관련 분류

품목정보

발행일
2023년 12월 22일
쪽수, 무게, 크기
2480쪽 | 188*235*100mm

출판사 리뷰

『Windows Internals 7/e Vol.1』

이 책의 대상 독자

이 책은 독자가 파워유저 수준의 윈도우 작업에 익숙하며, CPU 레지스터와 메모리, 프로세스, 스레드와 같은 운영체제 및 하드웨어 개념을 기본적으로 이해하고 있다고 가정한다. 함수와 포인터, C 프로그래밍 언어 구문에 대한 이해는 일부 절에서 유용하다.

이 책의 구성

제6판과 동일하게 2권으로 나뉘어 있으며, 이 책이 첫 번째 권이다. 1장, '개념과 툴'에서는 윈도우 내부 개념에 대한 일반적인 소개를 하고, 책 전반에 걸쳐 사용되는 주요 툴을 소개한다. 책의 나머지 부분에 필요한 배경 지식을 제공하기 때문에 1장을 먼저 읽는 것이 중요하다. 2장, '시스템 아키텍처'에서는 윈도우를 구성하는 아키텍처와 주요 구성 요소를 보여주고, 이들을 심도 있게 알아본다. 이들 개념 중 일부는 후속 장에서 좀 더 세부적으로 다룬다. 3장, '프로세스와 잡'에서는 윈도우에서 프로세스가 구현되는 방법과 이를 처리하는 다양한 방법을 자세히 설명한다. 또한 잡은 프로세스 집합을 제어하고 윈도우 컨테이너 지원을 활성화하는 수단임을 설명한다.

4장, '스레드'에서는 윈도우에서 스레드를 관리하고 스케줄하며 조작하는 방법을 세부적으로 설명한다. 5장, '메모리 관리'에서는 메모리 관리자가 물리적 메모리와 가상 메모리를 사용하는 방법과 프로세스와 드라이버가 비슷하게 메모리를 조작하고 사용할 수 있는 다양한 방법을 보여준다. 6장, 'I/O 시스템'에서는 윈도우의 I/O 시스템이 어떻게 작동하고 I/O 주변 장치와 작업하기 위한 메커니즘을 제공하는 디바이스 드라이버와 어떻게 통합되는지 살펴본다. 7장, '보안'에서는 익스플로잇에 대처하기 위해 시스템의 일부가 된 완화책을 비롯해 윈도우에 내장된 다양한 보안 메커니즘을 상세히 설명한다.

『Windows Internals 7/e Vol.2』

컴퓨터 네트워크, 사회연결망, 생물학적 네트워크를 포함하는 네트워크 연구는 최근 몇 년 동안 엄청난 관심을 끌었다. 인터넷의 급부상과 함께 저렴하고 폭넓게 이용할 수 있는 컴퓨터의 도움으로 전례 없이 큰 규모의 네트워크 데이터를 수집하고 분석할 수 있게 됐으며, 새로운 이론적 도구 개발로 다양한 종류의 네트워크에서 새로운 지식을 얻을 수 있게 됐다. 네트워크 연구는 광범위한 학제 간 연구이며 수학, 물리학, 컴퓨터 및 정보과학, 생물학, 사회과학을 포함한 많은 분야에서 발전이 있어왔다. 이 책은 이러한 각 분야에서의 가장 중요한 발견을 모아 각기 다른 분야의 업적들 간의 강한 상호 연결을 강조하며 통일된 방식으로 제시하고자 한다.

이 책에서 다루는 내용

- ALPC, 객체 관리자, 동기화, WNF, WoW64 및 프로세서 실행 모델을 포함해 장치 드라이버 및 애플리케이션을 제공하기 위한 시스템 메커니즘 이해
- 트랩 프로세싱, 세그먼테이션 및 사이드 채널(side channel) 보안 취약점을 포함한 기본 하드웨어 아키텍처 분석
- OS 취약점으로부터 윈도우 가상화 및 가상화 기반 보안(VBS)이 보호하는 방법 이해
- 레지스트리, 윈도우 서비스, WMI, 작업 스케줄링을 포함한 주요 관리 및 구성 메커니즘 이해
- 윈도우 이벤트 추적(ETW) 및 DTrace와 같은 분석 서비스 이해
- 캐시 관리자와 파일 시스템 드라이버가 어떻게 상호작용해 파일, 디렉터리 및 디스크를 안정적으로 지원 이해(NVDIMM(영구 메모리) DAX장치 포함)
- NTFS, ReFS 및 기타 윈도우 파일 시스템 이해
- 윈도우 시작/종료 작업 및 부팅 흐름에 관련된 OS 구성 요소 분석
- UEFI 기반 보안 부팅, 측정된 부팅 및 보안 부팅 분석

이 책의 대상 독자

독자가 고급 사용자 수준의 윈도우 환경에 익숙하고 CPU 레지스터, 메모리, 프로세스, 스레드와 같은 운영체제 및 하드웨어 개념을 기본적으로 이해하고 있다고 가정한다. 함수, 포인터 및 유사한 C 프로그래밍 언어 구조에 대한 기본적인 이해가 있어야 내용을 이해하기에 유리하다.

이 책의 구성

7판은 6판과 마찬가지로 2권으로 나뉘며, 지금 이 책이 두 번째 책이다. 8장, ‘시스템 메커니즘’에서는 ALPC, 객체 관리자, 동기화 루틴 등 운영체제가 디바이스 드라이버와 애플리케이션에 주요 서비스를 제공하는 데 사용하는 중요한 내부 메커니즘에 대한 정보를 제공한다. 또한 트랩 처리, 세분화 및 사이드 채널 취약성을 비롯해 윈도우가 실행되는 하드웨어 아키텍처와 이를 해결하는 데 필요한 해결 방법에 대한 세부 정보를 알아본다. 9장, ‘가상화 기술’에서는 윈도우 OS가 최신 프로세서가 제공하는 가상화 기술을 사용해 사용자가 동일한 시스템에서 여러 가상 머신을 생성하고 사용할 수 있게 하는 방법을 설명한다. 또한 가상화는 새로운 수준의 보안을 제공하고자 윈도우에서 폭넓게 사용한다. 따라서 9장에서는 보안 커널 및 격리된 사용자 모드를 자세히 알아본다.

10장, ‘관리, 진단, 추적’에서는 관리, 구성, 진단을 위해 운영체제에서 구현된 기본 메커니즘을 자세히 설명한다. 특히 윈도우 레지스트리, 윈도우 서비스, WMI 및 작업 스케줄링과 함께 윈도우용 이벤트 추적ETW 및 DTrace와 같은 진단 서비스를 살펴본다. 11장, ‘캐싱과 파일 시스템’에서는 가장 중요한 ‘스토리지’ 구성 요소인 캐시 관리자와 파일 시스템 드라이버가 어떻게 상호작용해 파일, 디렉터리 및 디스크 장치에서 효율적이고 안전한 방식으로 작동하는지 보여준다. 또한 윈도우에서 지원하는 파일 시스템, 특히 NTFS와 ReFS를 자세히 알아본다. 12장, ‘시작과 종료’에서는 시스템을 시작하고 종료할 때 발생하는 작업 흐름과 부팅 흐름에 관여하는 운영체제 구성 요소를 살펴본다. 또한 보안 부팅, 측정 부팅 및 보안 실행과 같은 UEFI의 새로운 기술도 살펴본다.

추천평

큰 성공을 거둔 윈도우 3.1 운영체제의 내부를 사용하고 살펴본 필자는 1993년 마이크로소프트가 윈도우 NT 3.1을 출시했을 때 세상을 바꿀 윈도우 3.1의 잠재력을 즉시 알아챘다. 윈도우 NT의 아키텍트이자 엔지니어링 리더였던 데이비드 커틀러는 안전하고 안정적이며 확장성이 뛰어나면서도 사용자 인터페이스와 소프트웨어 실행 기능이 이전 버전과 동일한 윈도우 버전을 만들었다. 헬렌 커스터의 책 『Inside Windows NT』(Microsoft Press, 1992)는 디자인과 아키텍처에 대한 훌륭한 지침서였지만 실제 작동에 대해 더 깊이 있게 다룬 책이 필요하고 수요가 있다고 생각했다. 데이비드 커틀러의 이전 개발에 대한 최종 가이드인 『VAX/VMS Internals and Data Structures』(Digital Press, 1984)는 텍스트로 얻을 수 있는 소스코드에 가까운 책이었고, 필자는 그 책의 윈도우 NT 버전을 집필하기로 생각했다.

하지만 진척은 더디기만 했다. 박사 학위를 마치고 작은 소프트웨어 회사에서 경력을 시작하느라 바빴기 때문이다. 윈도우 NT에 대해 배우고자 문서를 읽고 코드를 리버스엔지니어링하고, Regmon 및 Filemon과 같은 시스템 모니터링 도구를 코딩하고, 이를 사용해 윈도우 NT의 작동 방식을 내부적으로 살펴봄으로써 구조를 이해하는 데 도움이 되는 도구를 개발했다. 그렇게 배운 지식을 윈도우 NT 관리자를 위한 잡지인 〈Windows NT Magazine〉에서 매달 ‘NT 내부’ 칼럼을 통해 공유했다. 이 책은 IDG 출판사와 집필 계약을 맺은 책인 『Windows Internals』에 실을 내용의 기초가 됐다. 이 책의 마감일은 풀타임 업무와 창업한 윈터널스 소프트웨어(Winternals Software)의 시스인터널스(Sysinternals)(당시 NT인터널스) 프리웨어 및 상용 소프트웨어를 작성하느라 집필이 더디게 진행됐다. 그러던 중 1996년 데이브 솔로몬(Dave Solomon)이 『Inside Windows NT, Second Edition』(Microsoft Press, 1997)을 출간했을 때 충격을 받았다.

이 책이 인상적이면서도 실망스러웠다. 헬렌의 책을 완전히 재집필한 이 책은 계획했던 대로 윈도우 NT의 내부를 더 깊고 폭넓게 다루고 있었으며, 윈도우 NT 리소스 키트와 디바이스 드라이버 개발 키트(DDK)의 기본 제공 도구 및 진단 유틸리티를 사용해 주요 개념과 동작을 시연하는 새로운 실습을 포함하고 있었다. 그는 기준을 매우 높게 끌어올렸기 때문에 그가 달성한 품질과 수준에 맞는 책을 쓴다는 것은 내가 계획했던 것보다 훨씬 더 큰 의미가 있다는 것을 알았다. 나는 윈도우 콘퍼런스 강연을 통해 데이브(Dave)를 알고 있었기 때문에, ‘피할 수 없다면 즐겨라’라는 속담처럼 책이 출간된 지 몇 주 만에 데이브에게 다음 판의 공동 집필을 제안하는 이메일을 보냈다. 이 책은 당시 윈도우NT 5라고 불렸고 나중에 윈도우2000으로 이름이 바뀌게 될 내용을 담고 있었다. 데이브가 포함하지 않은 주제에 대한 나의 NT 내부 칼럼을 기반으로 한 새로운 장을 추가하고, 나의 시스인터널 도구를 사용한 새로운 실습에 대한 글도 쓰기로 했다. 거래를 성사시키고자 책과 함께 배포하는 일반적인 소프트웨어 배포 방식인 CD에 전체 시스인터널즈 도구 모음을 포함시킬 것을 제안했다.

데이브는 흔쾌히 동의했다. 하지만 먼저 마이크로소프트의 승인을 얻어야 했다. 나는 윈도우 NT 워크스테이션과 윈도우 NT 서버가 레지스트리 설정에 따라 동작이 다른 동일한 코드라는 사실을 공개적으로 폭로해 마이크로소프트의 홍보에 어려움을 겪은 적이 있었다. 데이브는 윈도우 NT 소스 전체에 대한 액세스 권한이 있었지만 나는 그렇지 않았고 문서화되지 않은 API에 의존하는 시스인터널스나 윈터널스 소프트웨어에 지적 재산권 문제를 일으키지 않고자 계속 그렇게 하고 싶었다. 데이브가 마이크로소프트에 요청했을 때 나는 주요 윈도우 엔지니어들과의 관계를 회복하고 있었고 마이크로소프트도 암묵적으로 승인했기 때문에 운이 좋은 시기였다. 데이브와 함께 『Inside Windows 2000』을 집필하는 일은 정말 즐거웠다. 우연의 일치인지 모르겠지만 데이브는 나와 20분 정도 떨어진 곳에 살았다(나는 코네티컷(Connecticut) 주 댄버리(Danbury)에 살았고 데이브는 코네티컷 주 셔먼(Sherman)에 살았다). 우리는 서로의 집을 방문해 마라톤 글쓰기 세션을 진행하면서 함께 윈도우 내부를 탐색하고, 괴상한 농담과 말장난에 웃고, 기술적 질문을 던져 답을 찾고자 경쟁하곤 했는데, 데이브는 소스코드를 샅샅이 뒤지고 나는 디스어셈블러, 디버거, 시스인터널스 도구를 사용했다.

그렇게 해서 나는 역사상 가장 상업적으로 성공한 운영체제 중 하나의 내부 작동을 설명하는 결정적인 책의 공동 저자가 됐다. 윈도우 XP와 윈도우 비스타를 다룬 5판에는 알렉스 이오네스쿠를 참여시켰다. 알렉스는 세계 최고의 리버스 엔지니어이자 운영체제 전문가로, 가독성과 세부 사항에 대한 당사의 높은 기준에 부합하거나 그 이상으로 책의 폭과 깊이를 더해줬다. 새로운 기능과 하위 시스템으로 성장하는 윈도우 자체와 함께 책의 범위가 넓어지면서 6판은 5판의 단행본 출판 한계를 초과해 2권으로 나눴다. 6판 집필이 시작될 무렵 나는 이미 애저로 자리를 옮겼고 7판을 준비할 무렵에는 더 이상 책에 기여할 시간이 없었다. 데이브 솔로몬은 은퇴했고 윈도우가 몇 년마다 주요 릴리스와 버전 번호로 출시되던 것에서 윈도우 10이라는 이름으로 불리며 지속적으로 기능 업그레이드를 통해 출시되면서 책을 업데이트하는 작업은 더욱 어려워졌다. 파벨 요시포비치(Pavel Yosifovitch)가알렉스의 1권을 도와줬지만, 그 역시 다른 프로젝트로 바빠 2권에 참여하지 못했다. 알렉스 역시 자신의 스타트업 크라우드스트라이크(CrowdStrike)로 바빴기 때문에 2권에 참여할 수 있을지 확신할 수 없었다.

다행히 안드레아가 도와줬다. 알렉스와 함께 2장에서 시작 및 종료 프로세스, 레지스트리 하위 시스템, UWP 등 시스템의 광범위한 부분을 업데이트했다. 단순히 새로워진 내용뿐 아니라 하이퍼V, 캐싱 및 파일 시스템, 진단 및 추적에 대해 자세히 설명하는 3개의 새로운 장도 추가했다. 역사상 가장 중요한 소프트웨어 중 하나인 윈도우의 내부 작동에 대해 기술적으로 가장 심도 있고 정확하게 설명하는 윈도우 내부 책 시리즈의 명성은 안전하며, 내 이름이 여전히 목록에 남아 있다는 사실에 자부심을 느낀다. 내 경력에서 기억에 남는 순간은 데이비드 커틀러(David Cutler)에게 『Inside Windows 2000』의 서문을 써 달라고 부탁했을 때였다. 데이비드 솔로몬과 나는 윈도우 엔지니어들을 만나고자 몇 차례 마이크로소프트를 방문한 적이 있었고, 그중 몇 차례 데이비드를 만난 적이 있었다. 하지만 그가 동의할지 몰랐기 때문에 그가 동의했을 때 매우 기뻤다. 데이비드에게 부탁했을 때와 비슷한 입장이 돼 반대편에 서 있는 지금이 조금은 믿기지 않는데, 기회가 주어져 영광이다. 내가 쓴 추천의 글을 통해 이 책이 『Inside Windows 2000』 구매자들에게 데이비드 커틀러의 책이 그랬던 것처럼 신뢰할 수 있고 명확하고 종합적이라는 믿음을 드릴 수 있기를 기대한다. - 마크 러시노비치 (Mark E. Russinovich, 마이크로소프트 애저 최고 기술 책임자 겸 기술 펠로우)

리뷰/한줄평7

리뷰

9.0 리뷰 총점

한줄평

10.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정