사이트내 검색
사이트내 검색
전체메뉴

전체메뉴

전체메뉴 닫기
검색

상세정보

Windows debugging : WinDbg로 배우는 윈도우 디버깅

최바울 [외]지음

책이미지

QRcode

QR Code
QRcode 사용방법
QRcode 사용방법
QR코드 정의
사각형의 가로세로 격자무늬에 다양한 정보를 담고 있는 2차원(매트릭스)형식의 코드로 스마트폰으로 QR코드를 스캔하면 각종 정보를 제공 받을 수 있습니다.
QR코드 인식프로그램
스마트폰 마켓에 들어가면 'QR코드 스캔 프로그램'을 검색해 무료 어플을 다운받아 사용하시면 됩니다.
도서정보 QR코드 이용하기
도서 상세정보에서 QR코드를 스캔하면, 모바일 웹페이지로 연결되어 해당 도서의 상세정보 및 소장정보 등을 확인 할 수있습니다.
닫기
상세정보
자료유형단행본
서명/저자사항Windows debugging: WinDbg로 배우는 윈도우 디버깅/ 최바울 [외]지음
판사항[개정판]
발행사항서울: 에이콘, 2019
형태사항1094 p.: 삽화; 24 cm
총서사항에이콘 윈도우 시스템 프로그래밍 시리즈;20
일반주기 공지은이: 이태화, 김희준, 김성현
서지주기찾아보기: p. 1084-[1095]
비통제주제어검증,평가,시험,측정,오류수정
개인저자최바울,이태화,김희준,김성현,
분류기호005.14
언어한국어
ISBN9791161752228
9788960770850(set)

소장정보

서비스 이용안내
  • 보존서고 신청보존서고 신청
  • 캠퍼스간대출캠퍼스간대출
  • 찾지못한자료찾지못한자료
  • 무인예약대출 이미지무인예약대출
메세지가 없습니다
No. 등록번호 청구기호 소장처/자료실 도서상태 반납예정일 예약 서비스 매체정보
1 928193 005.14 윈225최2 중앙도서관/성신관 2층 임시자료실/ 대출가능

초록

목차 일부

윈도우에서 WinDbg를 이용해 디버깅하는 방법을 중점적으로 설명한 책으로 최신 윈도우 10까지 내용을 수록했다. 윈도우 디버깅 전문가들인 저자들이 현장에서 우러난 실전 경험을 바탕으로 한 다양한 예제를 제시하고 있는 완벽 가이드이다. 초보자부터 고급 개발자까지 쉽게 읽을 수 있도록 WinDbg 설치법부터 구체적인 디버깅 사례와 해결책, 툴의 기능 확장과 ...

목차 전체

윈도우에서 WinDbg를 이용해 디버깅하는 방법을 중점적으로 설명한 책으로 최신 윈도우 10까지 내용을 수록했다. 윈도우 디버깅 전문가들인 저자들이 현장에서 우러난 실전 경험을 바탕으로 한 다양한 예제를 제시하고 있는 완벽 가이드이다. 초보자부터 고급 개발자까지 쉽게 읽을 수 있도록 WinDbg 설치법부터 구체적인 디버깅 사례와 해결책, 툴의 기능 확장과 고급 디버깅 팁, 커널 리버싱 방법까지 수록했다. 
WinDbg를 전혀 모르는 사람이라도 중간까지 읽다 보면 WinDbg란 어떤 것이고 어떤 식으로 사용하는지에 대한 기초를 배울 수 있다. 또한 중간부터 마지막까지는 조금 더 복잡하거나 어려운 상황에 대한 응용 방법을 엿볼 수 있다. 
예제를 통한 유저모드 디버깅과 커널 모드 디버깅 케이스 스터디, 덤프 파일 활용에 관한 실전 팁, WinDbg를 활용한 윈도우 커널 분석, 성능 모니터를 활용한 디버깅 기법, 각종 유틸리티를 활용한 문제 해결 방법의 소개, 쉬운 디버깅과 유지보수를 위한 팀 협업 개발환경을 갖추는 방법 등을 다루고 있다. 제공되는 예제에는 곧바로 실행하며 테스트할 수 있도록 빌드된 실행파일, 심볼 및 MAP 파일, 본문 내용을 직접 따라가며 명령어를 실행해 볼 수 있는 덤프 파일, 책의 소스코드를 수록했다. 현업에서 종사하는 개발자나 분석가를 위한 다양한 실전 분석 기법과 커널 리버싱 방법도 수록해 분석력을 기를 수 있다.

목차

목차 일부

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.1.1 유저모드 디버깅 
________1.2.1.2 ...

목차 전체

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.1.1 유저모드 디버깅 
________1.2.1.2 커널모드 디버깅 
____1.2.2 라이브 디버깅과 덤프 디버깅 
________1.2.2.1 라이브 디버깅 
________1.2.2.2 덤프 디버깅 
____1.2.3 유저 덤프와 커널 덤프 
________1.2.3.1 유저 덤프 
________1.2.3.2 커널 덤프 
__1.3 WinDbg 디버깅 용어 
____1.3.1 디버거와 디버기 
____1.3.2 블루스크린 
____1.3.3 버그체크 
____1.3.4 디버그 심볼 파일 
________1.3.4.1 비주얼 스튜디오 2017에서 MyApp 속성 설정 
________1.3.4.2 비주얼 스튜디오 2017에서 MyDrv 속성 설정 
________1.3.4.3 비주얼 스튜디오 2015에서 MyApp 속성 설정 
__1.4 WinDbg 지원 범위 
____1.4.1 윈도우 NT 계열 운영체제 
____1.4.2 64비트 지원 
__1.5 WinDbg 명령 
____1.5.1 WinDbg 명령이란 
________1.5.1.1 일반 명령 
________1.5.1.2 메타 명령 
________1.5.1.3 확장 명령 
____1.5.2 명령줄 구분 
____1.5.3 명령별 사용 조건 
__1.6 실습 환경 구성 
____1.6.1 WinDbg 다운로드 
____1.6.2 비주얼 스튜디오 2017과 WDK 설치 
____1.6.3 Windows SDK로 WinDbg만 설치 
____1.6.4 WinDbg 버전 
____1.6.5 예제 구성 
__1.7 정리 

2장. WinDbg 시작하기 
__2.1 유저모드 라이브 디버깅 
____2.1.1 WinDbg 실행 
____2.1.2 디버거 연결 
________2.1.2.1 WinDbg에서 MyApp.exe 실행하기(디버거에서 디버기 실행하기) 
 ________2.1.2.2 실행 중인 MyApp.exe에 WinDbg 붙이기(디버거를 디버기에 붙이기) 
 ________2.1.2.3 MyApp.exe 실행 중 문제가 발생했을 때 자동으로 WinDbg 실행하기 
____2.1.3 심볼 파일 로드 
________2.1.3.1 운영체제 심볼 경로 설정과 로드 
________2.1.3.2 MyApp.exe 심볼 경로 설정과 로드 
____2.1.4 실행 및 정지 
____2.1.5 브레이크 포인트 설정과 해제 
________2.1.5.1 브레이크 포인트 설정 
________2.1.5.2 브레이크 포인트 해제 
____2.1.6 콜 스택 확인 
____2.1.7 소스 연결해서 소스 창 열기 
____2.1.8 Trace, Step으로 진행 
____2.1.9 지역변수 확인 
____2.1.10 와치 창으로 전역변수 확인 
__2.2 커널모드 라이브 디버깅 
____2.2.1 디버거 시스템을 디버기 시스템에 붙이기 
________2.2.1.1 가상머신 연결 
________2.2.1.2 VirtualKD로 연결 
________2.2.1.3 네트워크로 연결 
________2.2.1.4 시리얼 케이블로 연결 
________2.2.1.5 IEEE 1394(firewire) 케이블로 연결하기 
________2.2.1.6 운영체제별 디버기 설정 
____2.2.2 MyDrv.sys 드라이버 실행 
____2.2.3 정지 및 실행 
____2.2.4 심볼 파일 로드 
____2.2.5 브레이크 포인트 설정과 해제 
____2.2.6 콜 스택 확인. 
 ____2.2.7 소스 연결해서 소스 창 열기 
____2.2.8 Trace, Step으로 진행 
____2.2.9 지역변수 확인 
____2.2.10 전역변수 확인 
__2.3 정리 

3장. WinDbg로 디버깅하기 
__3.1 유저모드 덤프 디버깅 
____3.1.1 덤프 파일 수집 
________3.1.1.1 윈도우 10에서 덤프 파일 수집 
________3.1.1.2 윈도우 XP에서 덤프 파일 수집 
____3.1.2 덤프 파일 열기 
____3.1.3 모듈 정보 보기 
____3.1.4 심볼 맞추기 
____3.1.5 콜 스택 보기 
________3.1.5.1 콜 스택 창에서 마지막 함수 살펴보기 
________3.1.5.2 문제가 발생한 이유 추측하기 
____3.1.6 로컬 창으로 변수 보기 
________3.1.6.1 죽은 함수를 호출한 함수 살펴보기 
________3.1.6.2 문제가 발생한 이유 분석하기 
________3.1.6.3 수정 방법 찾기 
____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.6.1 콜 스택 창에서 마지막 함수 살펴보기 
________3.2.6.2 죽은 이유 추측하기 
____3.2.7 로컬 창으로 변수 보기 
________3.2.7.1 죽은 함수를 호출한 함수 살펴보기 
________3.2.7.2 문제가 발생한 이유 분석하기 
________3.2.7.3 수정 방법 찾기 
____3.2.8 와치 창으로 메모리 보기 
____3.2.9 메모리 창으로 메모리 보기 
__3.3 정리 

4장. 유저모드 디버깅 케이스 스터디 
__4.1 기본 케이스 스터디 
____4.1.1 잘못된 메모리 사용 
____4.1.2 프로세스의 CPU 사용률이 100%를 기록할 때 
________4.1.2.1 프로세스 익스플로러를 이용한 방법 
________4.1.2.2 성능 모니터를 이용한 방법 
________4.1.2.3 WinDBG를 이용한 방법 
____4.1.3 데드락이 발생해 멈춘 경우 
________4.1.3.1 이벤트 찾기 
________4.1.3.2 크리티컬 섹션 찾기 
____4.1.4 핸들 누수 
________4.1.4.1 작업 관리자로 누수 확인 
________4.1.4.2 성능 모니터로 누수 확인 
________4.1.4.3 성능 로그를 통해 누수 확인 
________4.1.4.4 프로세스 익스플로러를 이용한 핸들 누수 찾기 
________4.1.4.5 WinDbg로 핸들 누수 찾기 
____4.1.5 메모리 누수 
________4.1.5.1 작업 관리자로 누수 확인 
________4.1.5.2 성능 모니터로 누수 확인 
________4.1.5.3 UMDH로 확인 
____4.1.6 버퍼 오버플로우 
__4.2 어셈블리와 스택의 이해 
____4.2.1 어셈블리 기초 
____4.2.2 스택의 이해 
____4.2.3 호출 규칙 
____4.2.4 64비트 스택의 이해 
________4.2.4.1 64비트 콜 스택 추적 
________4.2.4.2 64비트 콜 스택에서 파라미터 찾기 
__4.3 고급 케이스 스터디 
____4.3.1 예제 1: 잘못된 파라미터 전달 
____4.3.2 예제 2: Drwtsn32 로그 파일 분석 
____4.3.3 예제 3: MAP 파일을 이용한 분석 
____4.3.4 윈도우 에러 리포트 
__4.4 WinDbg Preview 
 ____4.4.1 WinDbg Preview 설치 
____4.4.2 WinDbg Preview Time Travel Debugging 
 __4.5 정리 

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.1.1 윈도우 XP에서 분석 
________5.2.1.2 윈도우 10에서 분석 
____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 BugCheck 0x50: UNICODE_STRING 
 ____5.3.2 BugCheck 0x50: 숨겨진 콜 스택 
____5.3.3 BugCheck 0x50: 해제된 핸들 
____5.3.4 BugCheck 0x1A: 페이지 손상 
____5.3.5 BugCheck 0xC5: 풀 헤더 손상 
____5.3.6 BugCheck 0xC5: 해제 리스트 손상 
____5.3.7 BugCheck 0x133: DPC_WATCHDOG_VIOLATION 
 ____5.3.8 Hang: CPU 과점유 
____5.3.9 Hang: 좀비 프로세스 
____5.3.10 Hang: 완료되지 않는 IRP 
 ____5.3.11 Hang: 위험한 락 사용 
__5.4 커널 리버싱 스터디 
____5.4.1 핸들 테이블 탐험 I 
 ____5.4.2 핸들 테이블 탐험 II 
 ____5.4.3 프로세스 경로 획득 
____5.4.4 섹션 오브젝트에서 파일 경로 획득 
__5.5 드라이버 확인 프로그램 
____5.5.1 드라이버 확인 프로그램 실행 
____5.5.2 명령 프롬프트에서 설정 
__5.6 정리 

6장. 고급 디버깅 
__6.1 WinDbg 사용 팁 
____6.1.1 조건 브레이크 포인트 
____6.1.2 심볼 스토어 생성 
____6.1.3 유저모드 원격 디버깅 
________6.1.3.1 문제의 응용 프로그램(notepad.exe)이 실행 중인 PC1 
 ________6.1.3.2 WinDbg를 실행해 실제로 디버깅을 하려는 PC2 
 ____6.1.4 커널모드 원격 디버깅 
____6.1.5 커널모드 디버깅으로 유저모드 디버깅하기 1 
 ____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.exe(vbs) 
 ________6.2.3.1 크래시 모드 
________6.2.3.2 행 모드 
__6.3 WinDbg 스크립트 
____6.3.1 첫 번째 스크립트 
____6.3.2 두 번째 스크립트 
____6.3.3 세 번째 스크립트 
__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 .crash(Force System Crash) 
 ____7.2.4 .dump(Create Dump File) 
 ____7.2.5 .hh(Open HTML Help File) 
 ____7.2.6 .symfix(Set Symbol Store Path) 
 ____7.2.7 .reload(Reload Module) 
 ____7.2.8 .enable_unicode(Enable Unicode Display) 
 ____7.2.9 .enable_long_status(Enable Long Integer Display) 
 ____7.2.10 .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.3.13 !dml_proc 
 ____7.3.14 !fltkd 
 __7.4 MEX 디버그 익스텐션 명령 
____7.4.1 !mex.help 
 ____7.4.2 !mex.mheap 
 ____7.4.3 !mex.p 
 ____7.4.4 !mex.addr 
 ____7.4.5 !mex.eresource(eres) 
 ____7.4.6 !mex.deviceobject(devo) 
 ____7.4.7 !mex.driverobject(drvo) 
 ____7.4.8 !mex.dtpool(dtp) 
 ____7.4.9 !mex.evt 
 ____7.4.10 !mex.fileobject(fo) 
 ____7.4.11 !mex.foreachcpu(fec) 
 ____7.4.12 !mex.foreachprocess(fep) 
 ____7.4.13 !mex.listticks(lticks) 
 ____7.4.14 !mex.mirp 
 ____7.4.15 !mex.mirpfind 
 ____7.4.16 !mex.mreg 
 ____7.4.17 !mex.obj 
 ____7.4.18 !mex.parsemem 
 ____7.4.19 !mex.tag 
 ____7.4.20 !mex.tasklist(tl) 
 ____7.4.21 !mex.vadmodules(vadm) 
 ____7.4.22 !mex.vss 
 ____7.4.23 !mex.wq 
 ____7.4.24 !mex.count 
 ____7.4.25 !mex.cut 
 ____7.4.26 !mex.ddt 
 ____7.4.27 !mex.dumpinfo 
 ____7.4.28 !mex.grep 
 ____7.4.29 !mex.t 
 ____7.4.30 !mex.dumpstackstrings(dss) 
 ____7.4.31 !mex.executive 
 ____7.4.32 !mex.listthreads(lt) 
 ____7.4.33 !mex.ready 
 ____7.4.34 !mex.running(cpu) 
 ____7.4.35 !mex.searchthreadstacks(sts) 
 ____7.4.36 !mex.standby(sby) 
 ____7.4.37 !mex.suspended 
 ____7.4.38 !mex.uniquestacks(us) 
 ____7.4.39 !mex.userrequest 
 ____7.4.40 !mex.wrlpcreceive(lpcs) 
 ____7.4.41 !mex.wrresource 
 ____7.4.42 !mex.imports 
 ____7.4.43 !mex.mods 
 __7.5 정리

함께 비치된 도서

서평 (0 건)

*주제와 무관한 내용의 서평은 삭제될 수 있습니다.

서평추가

서평추가
별점
별0점
  • 별5점
  • 별4.5점
  • 별4점
  • 별3.5점
  • 별3점
  • 별2.5점
  • 별2점
  • 별1.5점
  • 별1점
  • 별0.5점
  • 별0점
제목입력
본문입력