리버싱과 시스템 해킹의 원리

리버싱과 시스템 해킹의 원리

$24.00
Description
리버싱과 시스템 해킹에 대한 기본을 탄탄히 다지는 책!
차근차근 원리 위주의 설명, 쉬운 예제들
이 책은 리버싱의 기초적인 개념을 설명하고, 윈도우즈 환경에서 리버싱 기법을 설명한다. 그리고 시스템 해킹의 원리와 악성코드의 분석 과정을 설명한다. 악성코드 분석과 시스템 해킹의 원리를 파악하기 위해서는 리버싱 기법을 익히고 시스템 동작의 원리를 파악하는 것이 중요하다. 특히 시스템의 스택, 데이터, 힙 메모리에서 값을 오염시키는 공격 행위가 이루어지는 과정을 설명하도록 노력하였다. 본문 내의 설명과 예제들을 통해 리버싱과 해킹의 기본을 탄탄히 다질 수 있다.

리버싱이나 시스템 해킹에 대한 책은 많이 나와 있다. 기초 수준으로 풀어서 설명되어 있는 것도 있고, 꽤 난이도가 있는 내용을 다루는 것도 있다. 중요한 것은 악성코드 분석과 시스템 해킹을 수행하기 위해서는 리버싱 기술이 필수적이라는 점이다. 그러나 이러한 부분을 모두 다루고 있으면서, 독자들의 수준에 맞게 설명된 책은 찾기 어렵다. 더구나 기존의 책에서 다루는 예제 코드는 특정 환경에서만 동작되는 경우도 허다하다. ‘실행파일’이란 결국 운영체제 환경에 영향을 받기 때문에 만약 실습환경이 바뀌면 원하는 결과를 얻지 못할 수도 있게 된다. 즉 이전 버전에서 가능했던 방법이 다음 버전에는 불가능한 경우가 많다. 이러한 결과로 독자들이 실습할 때 책의 내용과 다른 결과에 당황하는 상황이 발행하게 된다. 이 때문에 이 책에서는 소스 형태로 프로그램을 제공하고 원리 위주로 풀어서 설명하려고 노력하였다.
저자

김민수

한국인터넷진흥원(KISA)선임연구원,전남대학교시스템보안연구센터연구교수를거쳐현재국립목포대학교정보보호학과교수로해킹과바이러스,침입탐지와차단,운영체제,시스템프로그래밍등을강의하고있으며정보보안관리실태평가위원,정보보호및개인정보관리체계(ISMS-P)인증위원,한국정보보호학회이사및논문지편집위원한국정보기술학회이사로활동중이다.

목차

CHAPTER01리버싱과해킹의이해
1.1해킹의이해
1.1.1해커의의미
1.1.2해킹학습방법
1.1.3해킹의절차
1.2리버스엔지니어링
1.2.1리버싱적용분야
1.2.2리버싱방법
1.2.3리버싱의위험도

CHAPTER02컴퓨터시스템의명령어처리구조
2.1데이터표현방식
2.1.1데이터표현단위
2.1.2숫자의표현
2.1.3문자의표현
2.2프로그램의생성
2.2.1프로그램의생성
2.2.2컴파일러의역할
2.3프로세스
2.3.1프로세스상태
2.3.2프로세스의실행
2.3.3프로세스실행정보의확인
2.4레지스터의구성과역할
2.4.1레지스터종류
2.4.2컴퓨터명령어코드

CHAPTER03디버거의활용방법
3.1프로그램디버깅
3.1.1프로그래밍오류
3.1.2프로그래밍오류가자주발생하는지점
3.1.3프로그래밍오류찾기
3.2디버거종류
3.3디버거사용법(x64dbg)
3.3.1x64dbg설치하기
3.3.2x64dbg주요기능
3.3.3디버거를사용하여프로그램따라가기
3.3.4원하는코드위치로찾아가는방법

CHAPTER04어셈블리어의이해
4.1어셈블리어명령어
4.2프로그램코드의어셈블리어표현
4.2.1어셈블리어코드의이해
4.2.2디컴파일러기능활용

CHAPTER05코드분석과패치
5.1문자열패치
5.1.1문자열패치방법
5.1.2원본보다더긴문자열패치
5.1.3메모리변경내용을파일로보관
5.2코드패치
5.2.1제어흐름찾아가기
5.2.2제어흐름의변경
5.2.3패치공간의부족
5.3실행파일의코드분석연습
5.3.1패스워드찾기
5.3.2시리얼번호찾기
5.3.3리버싱문제풀이

CHAPTER06윈도우실행파일구조
6.1윈도우PE파일
6.1.1윈도우PE(PortableExecutable)파일이란?
6.1.2PE파일관련도구
6.2윈도우PE파일구조
6.2.1윈도우실행파일형식
6.2.2MS-DOS정보
6.2.3WindowsNT정보
6.2.4섹션정보
6.2.5메모리로딩시주소변환
6.3IAT(ImportAddressTable)
6.4EAT(ExportAddressTable)

CHAPTER07파일패킹과언패킹
7.1PE파일패킹(packing)
7.1.1패커의주요기능
7.1.2패커종류
7.1.3UPX패커
7.1.4패킹의증상
7.1.5패커시그니처탐지
7.2PE파일언패킹(unpacking)
7.2.1언패킹의목표
7.2.2언패킹방법
7.2.3도구를이용한자동언패킹
7.3수동언패킹(manualunpacking)
7.3.1UPX패커의언패킹과정디버깅
7.3.2디버거와IAT복구도구를이용한수동언패킹

CHAPTER08안티리버싱
8.1디버거탐지
8.1.1프로세스정보확인
8.1.2디버깅관련API활용
8.1.3중단점탐지
8.2난독화(Obfuscation)

CHAPTER09메모리오염공격
9.1시스템메모리
9.1.1시스템메모리영역
9.1.2함수호출시의스택구조
9.1.3버퍼오버플로우
9.1.4포맷문자열
9.2스택오버플로우공격
9.2.1스택오버플로우
9.2.2스택오버플로우공격실습
9.2.3공격코드작성
9.3데이터공간오버플로우공격
9.3.1힙오버플로우
9.3.2데이터공간의오버플로우공격
9.4UAF공격
9.4.1힙메모리영역관리방법
9.4.2UAF(UseAfterFree)공격

CHAPTER10방패와창
10.1스택오버플로우공격의특징
10.2데이터공간실행방지
10.2.1DEP(DataExecutionProtection)기능
10.3데이터공간오염방지
10.3.1카나리아(Canary)기능
10.3.2ASLR(AddressSpaceLayoutRandomization)
10.4공격방지기법의회피방법
10.4.1RTL(ReturnToLibrary)
10.4.2ROP(ReturnOrientedProgramming)
10.4.3ASLR우회

CHAPTER11코드인젝션
11.1PE재배치와코드패치원리
11.1.1PE재배치(relocation)
11.1.2재배치정보
11.1.3PE코드패치
11.2코드인젝션(CodeInjection)
11.2.1코드인젝션정의
11.2.2코드인젝션주요동작흐름
11.2.3코드인젝션관련주요API정보
11.2.4API후킹
11.3DLL인젝션
11.3.1DLL영역
11.3.2SetWindowHookEx()를이용한DLL인젝션
11.3.3원격쓰레드를이용한DLL인젝션
11.4쓰레드인젝션(ThreadInjecrion)
11.4.1CreateRemoteThread()API를이용한쓰레드인젝션
11.4.2쓰레드EIP변경을이용한쓰레드인젝션
11.4.3스텁코드삽입
11.5프로세스인젝션(ProcessInjection)
11.5.1프로세스할로잉
11.5.2프로세스도플갱잉

CHAPTER12악성코드분석
12.1악성코드분석준비
12.1.1정적분석도구
12.1.2동적분석도구
12.1.3상세분석도구
12.2악성코드샘플분석
12.2.1정적분석진행
12.2.2동적분석진행
12.2.3상세분석진행
12.2.4안티디버깅과안티가상화
12.2.5인코딩된PE바이너리얻어오기
12.3정보유출형악성코드
12.3.1정적분석하기
12.3.2동적분석하기
12.3.3상세분석하기
12.3.4악성코드분석할때주의사항

출판사 서평

어렵지않은리버싱,손에잡히는시스템해킹
이책은리버싱의기초적인개념을설명하고,윈도우즈환경에서의리버싱기법을설명한다.가장기초가되는리버싱에대한이해와함께,각각의리버싱기법들,그리고각종‘악성코드’들을직접분석해보기도한다.이과정들에서모든설명들은어렵지않게,또한손쉬운예제들을통해서하나씩진행된다.이러한내용들은저자가투여한1년여의집필시간,그리고많은강의들을통해학습자와의시각차이를좁혀온결과이기도하다.
내용을학습해나가면서,각각의기법들을차근차근익혀나간다면리버싱과시스템해킹에대한탄탄한기본기를갖추게될것이다.