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

한빛출판네트워크

리버스 엔지니어링 1권(파일 구조 편)

윈도우 실행 파일 구조와 원리로 배우는

한빛미디어

집필서

판매중

  • 저자 : 이호동
  • 출간 : 2016-09-28
  • 페이지 : 848 쪽
  • ISBN : 9788968484872
  • 물류코드 :2487
  • 초급 초중급 중급 중고급 고급
5점 (1명)
좋아요 : 34

리버스 엔지니어라면 반드시 소장해야 할 최고의 명저

 

이 책은 PE 파일 포맷을 완벽하게 분석하여 리버스 엔지니어 필독서로 꼽히던 『Windows 시스템 실행 파일의 구조와 원리』의 확장 개정판이다. 총 2권 구성으로 1권에서는 64비트 PE+의 각 세션에 대해 알아본다. 2권은 1권에서 미처 다루지 못한 PE 세션을 알아보고, 디버거를 만들면서 악성코드 침투에 대응한 메모리 침투 방법을 다룬다. 이 책은 이론과 실전 기법 모두를 제공해주는 리버스 엔지니어링 최고의 바이블이다.

 

detail.png

 

이호동 저자

이호동

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

[1부 PE 입문]

 

01장 윈도우 실행 파일 – PE의 구조

_1.1 PE 파일 소개

___1.1.1 왜 PE 파일인가?

___1.1.2 PE+란 무엇인가?

_1.2 PE 파일의 전체 구조

_1.3 PE 분석을 위한 개념

___1.3.1 RVA와 섹션

___1.3.2 가상 주소 공간과의 관계

_1.4 PE 분석 툴과 프로젝트 소개

___1.4.1 PE 분석 툴 소개

___1.4.2 구현할 프로젝트 소개

 

02장 PE 파일 헤더

_2.1 IMAGE_DOS_HEADER 구조와 DOS 스텁

_2.2 IMAGE_NT_HEADERS 구조

___2.2.1 DWOD Signature

___2.2.2 IMAGE_FILE_HEADER 구조

___2.2.3 IMAGE_OPTIONAL_HEADER 구조

_2.3 섹션 헤더와 데이터 디렉터리

___2.3.1 IMAGE_DATA_DIRECTORY 구조체 배열

___2.3.2 IMAGE_SECTION_HEADER

___2.3.3 RVA, 데이터 디렉터리와 섹션 헤더

_2.4 PE Explorer 프로젝트 구조

___2.4.1 PE 구조체 XML 스키마

___2.4.2 PEAnals 클래스

___2.4.3 프로젝트 PE Explorer의 구조

 

03장 코드와 데이터 섹션

_3.1 프로그램 메모리 구조

_3.2 코드 섹션

___3.2.1 코드 섹션에 대하여

___3.2.2 ImageBase, AddressOfEntryPoint, 그리고 프로그램의 시작

___3.2.3 증분 링크

_3.3 데이터 섹션

___3.3.1 .data 섹션

___3.3.2 .rdata 섹션

_3.4 런타임 시작 함수와 전역 초기화

___3.4.1 C/C++ 런타임 시작 함수 WinMainCRTStartup

___3.4.2 초기화 콜백 함수 호출

___3.4.3 프로그램 종료 처리

 

04장 기준 재배치 섹션

_4.1 기준 재배치의 의미와 과정

_4.2 기준 재배치 섹션의 구조

___4.2.1 IMAGE_BASE_RELOCATION과 TypeOffset 배열

___4.2.2 .reloc 섹션 분석

___4.2.3 64비트의 .reloc 섹션

_4.3 기준 재배치를 위한 코드

___4.3.1 기준 재배치 의사 코드

___4.3.2 PE Explorer에서의 기준 재배치 섹션 처리

_4.4 기준 재배치 고려사항

___4.4.1 32비트에서의 기준 재배치

___4.4.2 64비트에서의 기준 재배치

 

[2부 DLL과 PE]

 

05장 DLL 생성과 내보내기 섹션

_5.1 DLL의 생성

___5.1.1 함수/변수 내보내기

___5.1.2 내보내기 이름 데코레이션의 문제

_5.2 내보내기 섹션

___5.2.1 IMAGE_EXPORT_DIRECTORY 구조체

___5.2.2 내보내기 섹션 구조

_5.3 DllMain의 사용

_5.4 함수 포워딩 및 NONAME, PRIVATE 내보내기

___5.4.1 DLL 함수 포워딩

___5.4.2 PRIVATE와 NONAME 함수

_5.5 내보내기 섹션 분석 코드

 

06장 DLL 로딩과 가져오기 섹션

_6.1 DLL의 사용

___6.1.1 암시적 로딩

___6.1.2 명시적 로딩

_6.2 가져오기 섹션

___6.2.1 IMPORT 엔트리

___6.2.2 IAT 엔트리

___6.2.3 DLL 선(先) 바인딩

_6.3 가져오기 섹션 분석 코드

___6.3.1 IMPORT 엔트리 분석

___6.3.2 IAT 엔트리 분석

___6.3.3 BOUND_IMPORT 엔트리 분석

_6.4 API 후킹

___6.4.1 후킹 DLL 구현

___6.4.2 DLL 주입기 작성

___6.4.3 DLL 후킹 테스트

 

07장 DLL 지연 로드 섹션

_7.1 DLL 지연 로드

___7.1.1 지연 로드의 사용

___7.1.2 DLL 언로드 및 바운드 해제

___7.1.3 예외 처리

___7.1.4 지연 로드 훅 설정

_7.2 지연 로드 섹션

___7.2.1 ImgDelayDescr 구조체

___7.2.2 DLL 지연 로드 과정

___7.3 지연 로드 섹션 분석 코드

 

[3부 나머지 PE 섹션]

 

08장 TLS, 로드 환경 설정, 보안 및 사용자 정의 섹션

_8.1 TLS와 .tls 섹션

___8.1.1 동적 TLS

___8.1.2 정적 TLS와 섹션

___8.1.3 TLS 관련 분석 코드

_8.2 사용자 정의 섹션

___8.2.1 섹션 지정 관련 #pragma

___8.2.2 사용자 정의 섹션 예

___8.2.3 DLL 데이터 공유

___8.2.4 생성자 지연 호출

_8.3 로드 환경 설정

___8.3.1 IMAGE_LOAD_CONFIG_DIRECTORY

___8.3.2 로드 환경 설정 확인

_8.4 보안 디렉터리

___8.4.1 속성 인증서 엔트리 구조

___8.4.2 PKCS#7 디지털 서명 확인하기

___8.4.3 무결성 체크 관련 요소

_8.5 .NET 런타임 헤더

 

09장 리소스 섹션

_9.1 리소스

_9.2 리소스 섹션 구조

___9.2.1 IMAGE_RESOURCE_XXXX 구조체

___9.2.2 디렉터리 엔트리의 3단계 구조

_9.3 DlgApp.exe의 리소스 섹션 분석

___9.3.1 루트 RES_DIR

___9.3.2 아이콘 타입 RES_DIR

___9.3.3 대화상자 타입 RES_DIR

___9.3.4 그룹 아이콘 타입 RES_DIR

_9.4 리소스 섹션 분석 코드

___9.4.1 FindResource 함수의 구현

___9.4.2 PE Explorer의 리소스 섹션 분석

 

10장 리소스 섹션의 개별 리소스

_10.1 샘플 리소스 제작

_10.2 커서, 아이콘 & 비트맵

___10.2.1 비트맵의 구조

___10.2.2 아이콘과 그룹 아이콘

___10.2.3 커서와 그룹 커서

___10.2.4 아이콘, 커서, 비트맵 추출기

_10.3 메뉴, 단축키, 문자열 테이블

___10.3.1 메뉴 리소스

___10.3.2 단축키 테이블

___10.3.3 문자열 테이블

_10.4 대화상자

___10.4.1 대화상자 템플릿 분석

___10.4.2 대화상자 항목 템플릿 분석

_10.5 나머지 리소스

___10.5.1 버전 정보

___10.5.2 매니페스트

___10.5.3 사용자 정의 리소스

윈도우 EXE, DLL, SYS 파일 구조 완벽 분석과 디버거 실전 개발까지!

EXE, DLL, SYS 파일 등의 PE 파일 포맷과, 고급 디버깅 또는 리버스 엔지니어링에 관심이 있는 독자를 대상으로 한다. 총 두 권으로 구성되어 있고 PE 파일의 구조뿐만 아니라 코드의 구성과 디버거 구현의 원리와 리버스 엔지니어링 기법을 다룬다. 각 권의 구성은 다음과 같다.

 

<1권 파일 구조 편>

『Windows 시스템 실행 파일의 구조와 원리』의 개정판이라고 할 수 있으며, 거기에서 다루지 않았던 PE 파일의 섹션까지 포함하여 64비트 윈도우 실행 파일을 중심으로 설명한다. 총 3부로 구성되어 있으며, 윈도우 실행 파일의 헤더 및 텍스트, 데이터, 내보내기, 가져오기, 지연 로드 섹션 그리고 TLS 섹션, 리소스 섹션 등을 자세히 다룬다.

  • 1부 PE 입문 : PE 구조의 전반적인 이해를 위한 개괄적인 내용을 다룬다.
  • 2부 DLL과 PE : DLL 작성 및 로딩과 관련된 PE 파일에 대한 분석 내용을 다룬다.
  • 3부 나머지 PE 섹션 : 리소스 섹션을 포함하여 검토할 만한 기타 PE 섹션을 설명한다.

 

<2권 디버거 편>

PE의 관점에서 본 리버스 엔지니어링에 초점을 맞추어 간단한 디버깅 툴의 구현을 목적으로 한다. 총 3부로 구성되어 있으며, 32비트와 64비트 함수의 구조와 코드 디스어셈블, 디버그 섹션 및 PDB 파일 활용법, 윈도우의 32비트 및 64비트 구조적 예외 처리와 64비트 함수 분석에 매우 중요한 역할을 하는 .pdata 섹션 등을 다룬다. 또한 악성 코드의 메모리 침투에 대응하는 메모리 보호 방법과 윈도우 기반의 간단한 디버깅 툴의 구현을 소개한다.

  • 4부 코드 분석 : 디스어셈블러 구현을 위해 PE의 코드 섹션의 구조를 상세히 다룬다.
  • 5부 예외 처리 : 디스어셈블러 구현의 중요 요소인 구조체 예외 처리 및 보안 기능을 알아본다.
  • 6부 디버거 구현 : 디버거 구현 원리를 설명하고 실제 간단한 디버거를 구현한다.

 

 

이 책의 독자

이 책은 고급 디버깅, 리버스 엔지니어링에 관심이 있는 독자를 대상으로 한다. 다소 깊이 있는 주제임을 감안하여 가능한 한 쉽게 설명하고자 많은 예제 덤프와 그림을 제시하였다. 따라서 위에서 언급한 내용에 관심이 있고 C/C++ 언어에 익숙하고 윈도우 시스템에 대한 어느 정도 배경지식을 갖춘 독자라면, 이 책을 통해서 PE 파일의 구조뿐만 아니라 코드의 구성과 디버거 구현 원리, 리버스 엔지니어링을 이해하게 될 것이다.

 

직장생활하면서 틈틈이 시간내어 2달여만에 1회 정독했습니다.

정말 쉽게 설명하려는 좋은 예시들과 글의 전달력 덕분에 IT업계 2년차인 저조한 실력자임에도 불구하고 어렵지 않게 읽지 않았나 싶습니다.

그리고 딱딱하게 PE 파일의 분석만으로 그치지 않고 덤프파일 분석과 실제 메모리 상에서의 분석, 시스템적인 요소들에 대한 설명이 많은 도움이 되었습니다.

프로그래밍에 있어서 컴파일 타임 이후의 지식을 원하시면, 특히 윈도우 프로그래밍이라면 이 책을 읽어보는 것도 많은 도움이 되리라 생각합니다.

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
리버스 엔지니어링 1권(파일 구조 편)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
리버스 엔지니어링 1권(파일 구조 편)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
리버스 엔지니어링 1권(파일 구조 편)
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실