logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Windows Debugging 2/e

Windows Debugging 2/e

(WinDbg로 배우는 윈도우 디버깅)

최바울, 이태화, 김희준, 김성현 (지은이)
에이콘출판
55,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 44,000원 -10% 2200원 37,400원 >

책 이미지

Windows Debugging 2/e
eBook 미리보기

책 정보

· 제목 : Windows Debugging 2/e (WinDbg로 배우는 윈도우 디버깅)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 윈도우 프로그래밍
· ISBN : 9791161752228
· 쪽수 : 1096쪽
· 출판일 : 2018-11-29

책 소개

윈도우에서 WinDbg를 이용해 디버깅하는 방법을 중점적으로 설명한 책으로 최신 윈도우 10까지 내용을 수록했다. 윈도우 디버깅 전문가들인 저자들이 현장에서 우러난 실전 경험을 바탕으로 한 다양한 예제를 제시하고 있는 완벽 가이드이다.

목차

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 정리

저자소개

김성현 (지은이)    정보 더보기
안랩에서 10년 이상 V3Pro2002, V3Pro2004, V3 Internet Security 2007, V3 Lite 3.0, V3 Internet Security 9.0 등의 제품에 탑재되는 실시간 감시 필터 드라이버와 엔진 드라이버를 개발했고, 현재는 인지기술 팀에서 V3의 보안 기능을 향상시키는 연구개발을 책임지고 있다.
펼치기
이태화 (옮긴이)    정보 더보기
안랩, 마이크로소프트, 삼성 SDS를 거쳐 현재 Vmware에서 기술 전문가 역할을 수행하고 있다. 윈도우 기반의 커널 드라이버를 개발, 유지 보수하던 중에 윈도우 운영체제에 대해 더 깊이 알고 싶다는 생각에 마이크로소프트로 이직해 블루스크린, 행, 성능, 고가용성, 가상화 등 다양한 문제를 해결하면서 윈도우 전문가로 성장했다. 진정한 전문가가 되려면 윈도우 영역에서만 머무르지 말고 기업 IT 환경에 대한 이해와 DB, 리눅스, 네트워크 등 다양한 분야로 전문 영역을 넓혀야 한다고 생각하고 있다. 나이가 들어서도 전문가로서 살아가는 방법에 대해 계속 고민 중이다. 저서로 『WinDbg로 쉽게 배우는 Windows Debugging』(에이콘, 2009)이 있고, 옮긴 책으로는 『Windows Sysinternals Administroator's Reference 한국어판』(에이콘, 2013), 『시스인터널스 도구로 윈도우 문제 해결하기 2/e』(에이콘, 2018)이 있다.
펼치기
김희준 (지은이)    정보 더보기
안랩 기반기술 팀에서 드라이버와 보안 모듈을 개발했고, 현재는 애플리케이션 개발자로 일하고 있다. 인터넷 커뮤니티에서 주최하는 오프라인 세미나를 통해 미니필터나 SoftICE, WinDbg에 대한 공개 강의를 진행했고, 개인 사이트(https://heejune.me)를 운영하며 관련 내용들과 기타 드라이버 및 개발 자료들을 공유하고 있다.
펼치기
최바울 (지은이)    정보 더보기
안랩 기반기술 팀에서 필터링 프레임워크, 실시간 검사, 자체보호, 가상화, 루트킷, 취약점 대응 관련 드라이버를 개발하며 다양한 특허를 등록하는 등 기술 연구를 하고 있다. 전문 분야가 메모리 덤프 분석, 성능 분석 그리고 리버싱인 개발자를 가장한 분석가다. 글로벌 백신 성능 테스트에서 V3를 세계 1위로 만든 하이퍼 스캔(Hi-Per Scan) 기술을 개발했다. 현재도 V3의 기능 향상을 위해 열정적으로 연구 중이다. 옮긴 책으로는 『Windows Internals 제 6판』(에이콘, 2014)이 있다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791161757537