책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 윈도우 프로그래밍
· ISBN : 9788960770867
· 쪽수 : 584쪽
· 출판일 : 2009-07-17
목차
1장 WinDbg에 대해
1.1 WinDbg란
1.1.1 WinDbg의 주요 기능
1.1.2 WinDbg의 용도
1.1.3 WinDbg와 SoftICE
1.2 WinDbg 디버깅의 종류
1.2.1 유저모드 디버깅과 커널모드 디버깅
1.2.2 라이브 디버깅과 덤프 디버깅
1.2.3 유저덤프와 커널덤프
1.3 WinDbg 디버깅 용어
1.3.1 디버거와 디버기
1.3.2 블루스크린
1.3.3 버그체크
1.3.4 디버그 심볼 파일
1.4 WinDbg 지원 범위
1.4.1 윈도우 NT 계열 운영체제
1.4.2 64비트 지원
1.5 WinDbg 명령
1.5.1 WinDbg 명령이란
1.5.2 명령줄 구분
1.5.3 명령별 사용 조건
1.6 다운로드와 설치
1.6.1 WinDbg 다운로드
1.6.2 WinDbg 설치
1.7 정리
2장 WinDbg 시작
2.1 유저모드 라이브 디버깅
2.1.1 WinDbg 실행
2.1.2 디버거 연결
2.1.3 심볼 파일 로드
2.1.4 실행과 정지
2.1.5 브레이크 포인트 설정과 해제
2.1.6 콜 스택 확인
2.1.7 소스 연결해서 소스 창 열기
2.1.8 Trace, Step으로 진행
2.2.9 지역변수 확인
2.1.10 와치 창으로 전역변수 확인
2.2 커널모드 라이브 디버깅
2.2.1 디버거 시스템을 디버기 시스템에 붙이기
2.2.2 MyDrv.sys 드라이버 실행
2.2.3 정지와 실행
2.2.4 심볼 파일 로드
2.2.5 브레이크 포인트 설정과 해제
2.2.6 콜 스택 확인
2.2.7 소스 연결해서 소스 창 열기
2.2.8 Trace, Seep으로 진행
2.2.9 지역변수 확인
2.2.10 와치 창으로 전역변수 확인
2.3 정리
3장 WinDbg로 디버깅하기
3.1 유저모드 덤프 디버깅
3.1.1 덤프 파일 수집
3.1.2 덤프 파일 열기
3.1.3 모듈 정보 보기
3.1.4 심볼 맞추기
3.1.5 콜 스택 보기
3.1.6 로컬 창으로 변수 보기
3.1.7 와치 창으로 메모리 보기
3.1.8 메모리 창으로 메모리 보기
3.1.9 프로세스와 스레드 보기
3.2 커널모드 덤프 디버깅
3.2.1 덤프 파일 수집
3.2.2 덤프 파일 열어보기
3.2.3 !analyze -v 메시지 보기
3.2.4 모듈 정보 보기
3.2.5 심볼 맞추기
3.2.6 콜 스택 보기
3.2.7 로컬 창으로 변수 보기
3.2.8 와치 창으로 메모리 보기
3.2.9 메모리 창으로 메모리 보기
3.3 정리
4장 유저모드 디버깅 케이스 스터디
4.1 기본 케이스 스터디
4.1.1 잘못된 메모리 사용
4.1.2 프로세스의 CPU 사용률이 100%를 기록할 때
4.1.3 데드락이 발생해 멈춘 경우
4.1.4 핸들 누수
4.1.5 메모리 누수
4.1.6 버퍼 오버플로우
4.2 어셈블리와 스택의 이해
4.2.1 어셈블리 기초
4.2.2 스택의 이해
4.2.3 호출 규칙
4.3 고급 케이스 스터디
4.3.1 예제 1: 잘못된 파라미터 전달
4.3.2 예제 2: Drwtsn32 로그 파일 분석
4.3.3 예제 3: MAP 파일을 이용한 분석
4.4 정리
5장 커널모드 디버깅 케이스 스터디
5.1 기본 케이스 스터디
5.1.1 BugCheck 0x50
5.1.2 BugCheck 0xD6
5.1.3 BugCheck 0xC1
5.1.4 BugCheck 0xC4-60
5.1.5 BugCheck 0xCE
5.1.6 BugCheck 0x7F
5.1.7 BugCheck 0xD1
5.1.8 BugCheck 0xF7
5.1.9 커널모드 행 디버깅
5.1.10 커널모드 데드락 디버깅
5.2 고급 케이스 스터디
5.2.1 BugCheck 0xA(분석 가능)
5.2.2 BugCheck 0xA(분석 불가능)
5.2.3 BugCheck 0x19(분석 가능)
5.2.4 BugCheck 0x19(분석 불가능)
5.2.5 BugCheck 0x8E
5.3 드라이버 확인 프로그램
5.3.1 드라이버 확인 프로그램 실행
5.3.2 명령 프롬프트에서 설정
5.4 정리
6장 고급 디버깅
6.1 WinDbg 사용팁
6.1.1 조건 브레이크 포인트
6.1.2 심볼 스토어 생성
6.1.3 유저모드 원격 디버깅
6.1.4 커널모드 원격 디버깅
6.1.5 커널모드 디버깅으로 유저모드 디버깅
6.1.6 커널모드 디버깅으로 유저모드 디버깅하기 2
6.1.7 Event ID 2019 비페이징 풀 부족 원인 찾기
6.2 WinDbg Tools
6.2.1 breakin.exe
6.2.2 logger.exe, logviewer.exe
6.2.3 ADPlus.vbs
6.3 WinDbg 스크립트
6.3.1 첫 번째 스크립트
6.3.2 두 번째 스크립트
6.4 WinDbg 확장 DLL
6.4.1 확장 DLL 만들기
6.4.2 확장 DLL 예제
6.5 정리
7장 WinDbg 명령
7.1 일반 명령
7.1.1 dt(Display Type)
7.1.2 s(Search Memory)
7.1.3 ds, dS(Display String)
7.1.4 da, du(Display Memory: ASCII, Unicode)
7.1.5 dl(Display Linked List)
7.1.6 dds(Display Words and Symbols)
7.1.7 x(Examine Symbols)
7.1.8 uf(Unassemble Function)
7.1.9 ub(Unassemble - b parameter)
7.1.10 ?(Evaluate Expression)
7.2 메타 명령
7.2.1 .kdfiles(Set Driver Replacement Map)
7.2.2 .reboot(Reboot Target Computer)
7.2.3 .dump(Create Dump File)
7.2.4 .hh(Open HTML Help File)
7.2.5 .symfix(Set Symbol Store Path)
7.2.6 .reload(Reload Module)
7.2.7 .enable_unicode(Enable Unicode Display)
7.2.8 .enable_long_status(Enable Long Integer Display)
7.2.9 .formats(Show Number Formats)
7.3 확장 명령
7.3.1 !object
7.3.2 !handle
7.3.3 !process
7.3.4 !stacks
7.3.5 !drvobj
7.3.6 !devobj
7.3.7 !devstack
7.3.8 !fileobj
7.3.9 !for_each_module
7.3.10 !vm
7.3.11 !sym
7.3.12 !poolfind
7.4 정리