이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
[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 파일의 구조뿐만 아니라 코드의 구성과 디버거 구현 원리, 리버스 엔지니어링을 이해하게 될 것이다.
|