책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 윈도우 프로그래밍
· ISBN : 9788960771284
· 쪽수 : 772쪽
책 소개
목차
1장 크래시 덤프
크래시 덤프란?
올바른 크래시 덤프
크래시란?
행이란?
심볼 파일이란?
크래시와 행의 차이
선행적 크래시 덤프
2장 전문적인 크래시 덤프 분석
미니 덤프 분석
스크립트와 WinDbg 명령
컴포넌트 식별
로 스택 데이터 분석
심볼과 이미지
인터럽트와 예외에 대한 설명
예외 설명에 앞서
X86 인터럽트
x64 인터럽트
인터럽트 프레임과 스택 재구성
X86 트랩 명령
x64 트랩 명령
유저 모드의 예외
첫 번째와 두 번째 예외를 구별하는 방법
포스트모텀 디버거는 누가 호출하는가?
비스타 에러 리포팅의 구조
페이지 폴트에 대한 다른 시각
몇 가지 버그체크
NMI_HARDWARE_FAILURE
IRQL_NOT_LESS_OR_EQUAL
KERNEL_MODE_EXCEPTION_NOT_HANDLED
KMODE_EXCEPTION_NOT_HANDLED
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
CAFF
CF
스택 트레이스를 재구성하는 방법
WinDbg 팁과 트릭
덤프에서 문자열 찾기
프로세스를 디버깅하는 중에 Win32 API 추적
익스포트된 NTDLL과 커널 구조체
간단한 리스트 탐색
스레드 일시 중지
힙 스택 트레이스
하이퍼텍스트 명령
행 분석을 빠르게
삼중 역참조
건초 더미에서 바늘 찾기
스택 트레이스 추정하기
없는 심볼 정보 복사
심볼 메시지 해결
태그 검색
오래된 덤프, 새로운 익스텐션
객체 이름과 대기 중인 스레드
가상 이미지에서의 메모리 덤프
프로세스 필터링
WinDbg 스크립트
첫 번째 스크립트
기타 WinDbg 스크립트
데드락과 크리티컬 섹션
보안 문제
수백 개의 크래시 덤프
매개변수를 가진 스크립트
보안 이슈와 스크립트
모든 스레드의 로 스택 덤프(프로세스 덤프)
모든 스레드의 로 스택 덤프(컴플리트 덤프)
사례 연구
코드 안의 루프 탐지
크래시 덤프 분석 체크리스트
크래시 덤프 분석 포스터(HTML 버전)
3장 크래시 덤프 분석 패턴
다중 예외
동적 메모리 훼손
긍정 오류 덤프
외측 손상
최적화된 코드
유효하지 않은 포인터
일치하지 않는 덤프
숨겨진 예외
데드락(크리티컬 섹션)
변화된 환경
부정확한 스택 트레이스
OMAP 코드 최적화
컴포넌트 심볼 없음
불충분한 메모리(커밋된 메모리)
스파이킹 스레드
모듈 다양성
스택 오버플로우(커널)
데드락(익스큐티브 리소스)
불충분한 메모리(핸들 릭)
관리된 코드 예외
잘려진 덤프
스레드 대기 시간
데드락(혼합된 객체들)
메모리 누수(프로세스 힙)
잃어버린 스레드
알려지지 않은 컴포넌트
메모리 누수(닷넷 힙)
이중 해제(프로세스 힙)
이중 해제(커널 풀)
우연히 일치하는 심볼 정보
스택 트레이스
가상화된 프로세스(WOW64)
스택 트레이스 모음
결합된 프로세스
극심한 경쟁
우연한 락
수동적인 스레드(유저 공간)
메인 스레드
불충분한 메모리(커널 풀)
분주한 시스템
역사적 정보
IRP 분포 이상
지역 버퍼 오버플로우
수동적인 시스템 스레드(커널 공간)
초기 크래시 덤프
후킹된 함수
사용자 정의 예외 핸들러
데드락(LPC)
특별한 스택 트레이스
수동 덤프(커널)
대기 체인(일반적인)
수동 덤프(프로세스)
대기 체인(크리티컬 섹션)
4장 크래시 덤프 분석 안티 패턴
외래 컴포넌트
ZIPPOCRICY
입소문
잘못된 덤프
문제 기술서 무시
크래시 덤프가 필요한데...
‘~이다’의 사용
축약어에 속다
5장 과학적 접근
메모리 덤프 - 수학적 정의
추상 공간에 꼬여있는 끈과 같은 스레드
메모리 덤프 분석이란?
메모릴리온과 쿼드메모릴리온
크래시 덤프의 네 가지 원인
복잡성과 메모리 덤프
소프트웨어 결함이란?
6장 재미있는 크래시 덤프
덤프 분석과 음성 인식
덤프와 함께 짧은 메시지 보내기
계산기도 되는 WinDbg
덤프와 디버거, 가상화
뮤지컬 덤프
디버거를 디버깅하기
뮤지컬 덤프: Dump2Wave
덤프 토모그래피
가장 작은 프로그램
프로세스 공간에서의 음성
크래시 덤프 분석 명함
컴퓨터 메모리 듣기
메모리 덤프 가시화
메모리 누수 가시화
컴퓨터 메모리 그리기
유니코드 보기
2진에서 10진으로의 변환법 가르치기
크래시 덤프와 글로벌 음모
7장 GDB와 WinDbg
AT&T와 인텔 구문
설치
디스어셈블러
스택 트레이스(백 트레이스)
지역변수
8장 소프트웨어 트러블슈팅
네 개의 기둥
5개의 황금 룰
비판적인 사고
디버깅할 때의 트러블슈팅
9장 시트릭스 사
풀태그
시트릭스 사의 서비스 목록
시트릭스 사의 씬와이어 리버스 엔지니어링
10장 보안
메모리 시각화
WinDbg는 개인 정보 친화적
크래시 덤프와 보안
11장 크래시 덤프의 근원
JIT 서비스 디버깅
비스타에서의 지역 크래시 덤프
COM+ 크래시 덤프
userdump.exe에 대한 마이크로소프트 사의 기사 정정
어디서 발생한 크래시 덤프인가?
비스타의 사용자 정의 포스트모텀 디버거
비스타에서 Dr. Watson의 부활
프로세스 충돌 - 수동으로 덤프 얻기
Dr. Watson 업그레이드
savedump.exe와 페이지 파일
비스타 덤프하기
중단 없이 프로세스 덤프하기
64비트에서의 userdump.exe
X64 윈도우에서의 NTSD
덤프가 필요한가요? 공통 유스케이스
12장 툴
엑셀을 사용한 메모리 덤프 분석
testdefaultdebugger.net
심볼 서버의 단점
StressPrinters: 강제 프린터 자동 생성
인스턴트 덤프(JIT 프로세스 덤퍼)
TestDefaultDebugger
DumpAlerts
DumpDepends
덤프 모니터 슈트
SystemDump
13장 기타 여러 가지
KiFastSystemCallRet이란?
I/O 컴플리션 포트의 이해
심볼 파일 경고문
비스타에서 윈도우 서비스 크래시 덤프
커널 공간으로 가는 길
메모리 덤프 분석가 면접용 질문
디버깅할 때 듣기 좋은 음악
PDBFinder
프로세스가 조용히 죽는 경우
ASLR: 주소 공간 레이아웃 랜덤화
비스타에서 프로세스와 스레드의 시작
단일 프로세서 머신에서의 경쟁 조건
ZW*와 NT* 함수 다시 보기
프로그래머 유니버설리스
닥터 왓슨 로그 분석
디버깅 이후의 난제
크래시 덤프 분석 스타일
비주얼 스튜디오에서 크래시 덤프 분석하기
64비트 덤프에 있는 32비트 스택
어셈피디아
WINE이 크래시 덤프 분석에 도움이 되는 이유
레거시 디버깅의 공포
UML과 디바이스 드라이버
통계학: 모든 프로세스에 걸쳐서 CPU가 100%인 경우
부록 A
크래시 덤프 분석 포털
부록 B
참조 스택 트레이스