메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Windows 시스템 실행파일의 구조와 원리

Windows 시스템 실행파일의 구조와 원리

한빛미디어

집필서

절판

  • 저자 : 이호동
  • 출간 : 2005-05-25
  • 페이지 : 576 쪽
  • ISBN : 897914332x
  • 물류코드 :1332
  • 초급 초중급 중급 중고급 고급
4.5점 (2명)
좋아요 : 59
Windows OS구조와 원리를 학습하는 또 다른 방법
- 프로그램의 실행 원리를 아는 것이 시스템(OS)을 이해하는 것이다

이 책이 다루는 정확한 영역은 우리가 보통 애플리케이션이라고 부르는 EXE 파일과 EXE 실행시에 함께 로드되는 동적 라이브러리인 DLL의 구조와 포맷 분야이다. 각 구조에 대한 상세한 설명뿐만 아니라 예제 덤프를 통해 생생하게 그 구조를 파악하게끔 구성하고 있다. 디버깅 툴 제작이나 탐침 혹은 백신 프로그램, API 후킹 프로그램과 같은 고급 영역에 밀접하게 관계되어 있지만, 실제로는 Win32 시스템 영역 즉 OS 영역을 이해하는 데 더할 나위 없이 좋은 학습 영역이기도 하다. 윈도우즈 프로그래밍을 다소 깊게 하다 보면 자연스레 부족한 부분을 느낄 것이고 이 책이 그러한 부분을 상당 부분 해소시켜 줄 것이다.

주요 내용
  • 모든 장에서 예제 덤프를 통한 생생한 구조 분석
  • 실행 파일 분석을 통한 VMM(Virtual Memory Manager)과 실행파일의 관계
  • DLL 익스포트와 임포트의 과정 및 포맷 분석을 통한 실행 파일 내에서의 DLL 정보 추출 그리고 개발자가 놓치고 있던 DLL 관련 사항 정리
  • Windows 2000부터 지원되는 새로운 DLL 로딩 방식인 DLL 지연 로딩과 그 과정에 대한 철저한 분석
  • 실행파일 내부에 존재하는 리소스와 리소스 타입별(아이콘, 메뉴 등등) 포맷 상세 분석 및 실행 파일에서 필요한 리소스를 뽑아낼 수 있는 방법 연구
  • DLL 재배치의 의미와 그 과정 및 재배치 섹션 구조에 대한 상세 분석
앞으로는 이 책의 내용이 개발 중에 또는 코딩 중에 한번쯤 고려하게 되는 항목으로 머리 속에 자리 잡을 것이라고 생각한다. 디버깅을 위해서 디버그 옵션을 넣을 때마다 프로그램의 리소스를 추가할 때마다 프로그램 크래쉬가 발생되어 메모리 주소가 나올 때마다 자신도 모르게 이 책에서 읽어 두었던 내용이 자연히 떠오르거나 다시 한번 확인해보고 싶어질 것을 믿어 의심치 않는다. - 문기은(NHN, ClientPlatform Team, TeamLeader)

이호동 저자

이호동

연세대 전자공학과를 졸업했지만 학창시절 C와 어셈블리어에 빠진 이후 계속 소프트웨어 개발자의 길을 걷고 있다. 학창시절 IT 환경이 무르익기 전부터 IT 월간지에 기사를 연재하면서 정보 공유와 집필 욕구를 키웠다. 16년간의 직장 생활에서 경험한 대용량 서버 사이드 개발, 클라이언트 보안 및 디바이스 드라이버 개발 등을 바탕으로 오랫동안 연구하고 학습하여 고급 개발 영역에서 꼭 필요한 분야를 집필하게 되었다.
주로 어셈블리, C/C++, COM, C#, JAVA를 다루며, 현재는 ㈜허니냅스에서 S/W 개발 팀장으로 생체 신호 관련 임베디드 리눅스 S/W 및 서버 개발을 담당하고 있다.
 
저서_ 『Windows 시스템 실행 파일의 구조와 원리』
저서_ 『IT EXPERT 윈도우 시스템 프로그램을 구현하는 기술』

1장 Win32 실행 파일(PE)의 구조
1.1 PE 파일의 전체 구조	
1.2 PE 분석을 위한 개념 정리	
1.3 PE 분석을 위한 유틸리티	

2장 실행 파일(PE) 헤더
2.1 IMAGE_DOS_HEADER 구조와 DOS 스텁	
2.2 IMAGE_NT_HEADERS 구조	
2.3 IMAGE_SECTION_HEADER	

3장 코드와 데이터 섹션
3.1 코드 섹션	
3.2 데이터 섹션	
 
4장 DLL 생성과 익스포트 섹션(.edata)
4.1 DLL의 생성	
4.2 익스포트 섹션(Export Section - .edata)	
4.3 DllMain의 사용	
4.4 DLL 함수 포워딩(Forwarding)	
4.5 익스포트 섹션 분석기	

5장 DLL 로딩과 임포트 섹션(.idata)
5.1 DLL의 사용	
5.2 임포트 섹션(Import Section - .idata)	
5.3 DLL 바인딩	
5.4 API Hooking	

6장 DLL 지연 로딩 섹션(.didat)
6.1 DLL 지연 로딩	
6.2 지연 로딩 임포트 섹션	
6.3 지연 로딩 섹션 분석기	

7장 기준 재배치 섹션(.reloc)
7.1 기준 재배치의 의미와 과정	
7.2. 기준 재배치(.reloc) 섹션	
7.3 기준 재배치 수행의 문제점	

8장 리소스 섹션 1(.rsrc)
8.1 리소스 섹션 구조	
8.2 DlgApp.exe의 덤프 분석	
8.3 리소스 분석기	

9장 리소스 섹션 2(.rsrc)
9.1 대화상자	
9.2 커서, 아이콘, 비트맵	
9.3 메뉴	
9.4 가속기	
9.5 문자열	

10장 나머지 섹션들
10.1 디버깅 섹션	
10.2 스레드 지역 저장소(TLS) 섹션 - .tls	
10.3 .NET 런타임 헤더	
10.4 사용자 정의 섹션

이 책은 PE(Portable Executable)라고도 불리우는 윈도우즈 실행 파일의 내부 구조에 대해서 다룬다.
EXE, DLL, OCX, SYS, DRV 확장자들로 된 파일들이 모두 PE파일이다.

이런 파일들이 실행되는 순간에 메모리에 어떻게 매핑되고 그 자료구조는 어떻게 구성되는지를 하나 하나 따라가면서 친절하게 설명해준다.

이 책을 읽기 전에 제프리리처의 Windows Via C/C++ 중

13장 윈도우 메모리의 구조
14장 가상 메모리 살펴보기
17장 메모리 맵 파일
19장 DLL의 기본
20장 DLL의 고급 기법

부분을 읽어보는 것이 이 책을 이해하는데 많은 도움이 된다.

처음에는 헥사코드를 하나씩 따라가면서 정독해서 읽었는데, 관련 구조체들이 다 비슷비슷 하게 구성되어 있어서 중간쯤 부터는 그런 부분들을 제껴가면서 조금 더 편하게 읽었다.

개인적으로 DLL의 내부에 대해서 많은 것을 얻을 수 있어서 좋았고, 또 리소스에 대해서는 거의 아는 것이 없었는데, 이 부분을 많이 다루어 주어서 특히 좋았다.

이 책의 단점을 꼽자면, 그림이나 코드들이 보기에 너무 조잡하다는 것이다.
그리고 느낌표나 말줄임표를 잔뜩 붙여놓은 문장들이 곳곳에서 보이는데, 이는 잘 정제되지 못한 글의 느낌을 받게 한다. 마치 인터넷에 써서 올렸던 글을 추려서 책으로 낸듯이 말이다.
저자는 프로그래머이지 글쟁이가 아니므로 이런 것들은 출판사에서 신경을 써준다면 좋을 것 같다.

비슷한 경우로 김상형의 Windows API 정복이라는 명서가 있는데, 나는 이 책을 국내에서 출판된 가장 잘 쓰여진 프로그래밍 책이라고 생각하지만, 책 안의 그림들이 참 조잡하다.
이 책은 가남사에서 출판되었다가 한빛미디어에서 개정되었는데, 그림들이나 표는 그대로 옮긴 것 같다.

저자가 그린 그림을 제출하면 편집없이 그대로 실는 것 같은 느낌인데, 만약 정말 그렇다면 앞으로는 그렇게하지 않았으면 좋겠다.
오라일리 같은 출판사에서 발행하는 책들은 그림이나 표가 참 이쁘게 그려져있다. 그 책을 쓰는 저자들이 모두 그림을 잘 그려서 그런 것은 아닐 것이다.

출판사에 바라는 점을 몇 가지 정리하면 다음과 같다.
1. 코드 조각은 회색 박스로 둘러싼다.
2. 코드 폰트는 고정폭 폰트를 쓴다.(그리고 제발 좀 이쁜 폰트로)
3. 지저분한 그림이나 표는 예쁘게 다시 그린다.

쓰다보니 단점의 내용이 길어져 버렸는데, 이 책은 정말 좋은 책이다.
이런 지식을 얻으려면, Matt Pietrek이 쓴 다음과 같은 글들을 눈 빠지게 읽어야 하는데
보기만해도 질려버린다.

Peering Inside the PE: A Tour of the Win32 Portable Executable File Format

An In-Depth Look into the Win32 Portable Executable File Format

An In-Depth Look into the Win32 Portable Executable File Format, Part 2

이미 이 책의 저자가 다 공부해서 한글로 써주었으니 참 고마울 뿐이다.

이 책이 개정판이 또 나올 것 같지는 않지만 혹시 개정된다면, 위에서 말한 부분들의 교정과 함께 64bit PE나 Managed PE에 대해서도 살짝 다루어주면 좋겠다.

개발관련 사이트를 다니다 보면 간간히 후킹이나 파일구조의 간략한 강좌정도는 있었지만



지금까지 시중에 나와있는 국내서적중에 윈도우기반의 실행파일에 대해서



이렇게 자세히 나와 있는책은 없었던거 같다.



필자가 종종 윈도우시스템에 대한 서평을 쓸대는 거론하는 파괴의 광학에서도



부분적으로만 다루어 실질적인 개발보다는 분석에 중심을 두었다고 밖에 볼수 없었는데



응용프로그램 개발자에게 꼭 필요한 책이 나온거 같다.



실행가능한 파일의 구조부터 세부적인 영역에 대한 설명...



후킹이나 디버깅에 관련된 정보들...



내부적인 깊이있는 지식을 갖지 않고서는 쓸수 없는 분야에 대해 자세히 다룬에 대해



감사를 드린다 ^^

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
Windows 시스템 실행파일의 구조와 원리
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Windows 시스템 실행파일의 구조와 원리
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Windows 시스템 실행파일의 구조와 원리
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실