CodeEngn Logo

Book


국내 리버스엔지니어링 관련 서적을 쉬어가기, 초급, 중급, 고급으로 분류 하였습니다.

추가 및 변경 신청은 Contact 메뉴에서 요청 해주세요.



리버싱 윈도우


정보

저자 : 한주성
출판사 : 로드북
출간일 : 2013년 08월 23일
페이지 : 1052
ISBN-13 : 9788997924059
ISBN-10 : 8997924052
정가 : 48,000원


책소개

윈도우 리버싱 가이드. 윈도우 구조를 먼저 이해한 뒤, 실습을 통해 '리버싱'을 익히도록 안내한다. 부팅에서부터 모든 시스템 자원이 세팅되는 단계까지 체계적으로 정리되어 있어 기초실력부터 단단하게 다질 수 있다. 또한 단순 이론만 가르쳐주는 방식이 아니라 실제로 디버깅 환경을 구축해보고 내부 구조를 살펴보는 방식을 취하고 있다. 윈도우 시스템의 구조에 대한 이해를 바탕으로 어떻게 해킹이나 장애를 진단하고 해결해가는지를 직접 실습하며 익힐 수 있다.


저자소개

저자 : 한주성

http://itka.kr 마이크로소프트 기술지원부 플랫폼팀에서 근무하다 2008년 인젠에서 보안 컨설팅 업무를 수행했다. 삼주시스템, 윈디소프트를 거쳐 현재 아이덴티티게임즈 SE팀 팀장으로 주로 보안 업무를 담당하고 있다. CCIE-Security, CISA, CISSP, MCTS:Windows Internal 등의 자격증을 보유하고 있으며, 월간 마이크로소프트웨어에 2011년부터 현재까지 역분석과 관련된 다수의 글을 연재하였고, 현재 Enterprise Security MVP(마이크로소프트 전문가 활동 공로상)로 활동 중이다.


목차

1부. 윈도우 구조: MBR에서 로그온까지

1장. 부팅의 시작: MBR (실습) 
1.1 실습 준비 
1.2 MBR 영역 코드 분석 
1.3 MBR 영역 실시간 분석 
1.4 부트 섹터 

2장 Windbg 준비 (실습) 
2.1 실습 준비 
2.2 심볼 설정 
2.3 커널 디버깅 

3장 시스템 시작: 커널 생성 (Ntos****.exe) 
3.1 System과 Idle 

4장 커널과 유저의 소통: 시스템 프로세스 
4.1 서브시스템(Subsystem) 
4.2 세션 관리자 Smss.exe 
4.3 서브시스템 관리자 Csrss.exe 
4.3.1 LPC 
4.4 로그인 관리자 Winlogon.exe 
4.4.1 새로운 세션 0 관리자 Wininit.exe 
4.5 보안 관리자 - Lsass.exe 
4.6 서비스 관리자 Services.exe 
4.6.1 서비스 계정 
4.7 유저 초기화 - Userinit.exe 
4.8 아직 끝나지 않은 부팅 - 자동 실행 

5장 커널 진입: Ntdll.dll

6장 운영: 성능/관리 (실습) 
6.1 실습 준비 
6.2 성능 
6.2.1 성능 모니터링 
6.2.2 Xperf 
6.2.3 네트워크 
6.3 관리 
6.3.1 WMI 
6.4 덤프 분석 

2부 윈도우 내부 동작 이해

7장 프로세스, 스레드(실습) 
7.1 EPROCESS, KPROCESS 

8장 레지스터 

9장 어셈블리 (실습)
9.1 실습 준비 
9.2 MOV 명령 
9.3 CMP 명령 
9.4 ADD/SUB 명령 
9.5 PUSH/POP 명령 
9.6 INC/DEC 명령 
9.7 NOT/AND/OR/XOR 명령 
9.8 DIV/IDIV 명령 
9.9 CALL/JMP/RET 명령 

10장 스택 
10.1 함수 호출 규약 

11장 스레드 스케줄링 

12장 퀀텀 

13장 디스패칭 
13.1 Interrupt Dispatching 
13.2 System Service Dispatching 
13.3 Exception Dispatching 
13.3.1 1st Chance, 2nd Chance 확인/분석 
13.3.2 KiDebugRoutine 

14장 메모리 관리 
14.1 메모리 풀 
14.2 힙 
14.3 페이지 테이블 엔트리(PTE) 
14.4 데스크탑 힙(Desktop heap) 

15장 I/O Request 
15.1 드라이버, 디바이스, 파일 개체 

3부 윈도우 역분석: 해킹과 장애

16장 인지의 중요성 
16.1 해킹 진행 절차 
16.1.1 정보 수집 단계 
16.1.2 취약점 확인(공격) 단계 

17장 역분석의 묘미: 프로그램 역분석 (실습) 
17.1 기계어를 분석한다 
17.2 디어셈블러(디버거) 
17.3 디컴파일러 
17.3.1 C/C++ 
17.3.2 .NET (C#) 
17.3.3 그외 
17.4 분석 준비 ? PE 구조 (실습) 
17.4.1 실습 준비 
17.4.2 PE 구조(Header) 
17.4.2.1 DOS Header 
17.4.2.2 NT Header 
17.4.2.3 IMAGE_OPTIONAL_HEADER32 
17.4.2.4 Section Header 
17.4.2.5 IAT(Import Address Table), EAT(Export Address Table) 
17.5 프로그램 정적 분석 
17.5.1 PEiD 
17.5.2 Strings 
17.5.3 Virustotal 
17.6 프로그램 동적 분석 

18장 증거 확보/분석을 위한 데이터 수집(실습) 
18.1 실습 준비 
18.2 휘발성 데이터 
18.2.1 시스템 이름 
18.2.2 시스템 시간 
18.3.3 디스크 정보 수집 
18.2.4 로그인 유저 
18.2.5 사용 중인 프로세스 리스트 
18.2.6 사용 중인 서비스 리스트 
18.2.7 사용중인 핸들 
18.2.8 사용 중인 Dll 
18.2.9 변조된 시스템 파일 
18.2.10 숨김 파일 
18.2.11 최근에 접근한 파일 
18.2.12 네트워크 인터페이스 정보 
18.2.13 네트워크 사용 정보 
18.2.14 네트워크 공유 리스트 
18.2.15 메모리 
18.2.15.1 메모리와 프로그램(실행 파일) 분석의 차이와 이유 
18.2.15.2 프로세스별 메모리 덤프 생성 
18.2.15.3 전체 메모리 덤프 생성 
18.2.16 클립보드 및 명령 사용 내역 
18.3 비휘발성 데이터 
18.3.1 이벤트 로그 
18.3.2 레지스트리 
18.3.3 디스크 데이터 
18.3.4 MBR 영역 
18.4 수집 방법 
18.4.1 로컬 수집 
18.4.2 원격 수집 
18.4.2.1 Psexec 
18.4.2.2 Netcat 
18.4.2.3 FSP와 FRUC 
18.5 MPSReport - 종합 로그 수집 도구 

19장 분석 
19.1 로그 분석 
19.1.1 분석을 위한 준비 
19.1.2 tr 
19.1.3 awk 
19.1.4 uniq 
19.1.5 sort 
19.2 메모리 분석 
19.2.1 Volatility 
19.3 레지스트리 분석 
19.3.1 키, 값 
19.3.2 하이브 
19.3.3 Regripper 
19.3.3.1 System 
19.3.3.2 Software 
19.3.3.3 Security 
19.3.3.4 Sam 
19.3.4 삭제된 레지스트리 확인 
19.4 패킷 분석 
19.4.1 TCP/IP 4계층 
19.4.2 패킷 분석 
19.4.3 패킷 수집 
19.4.3.1 Tcpdump 
19.4.3.2 Tshark 
19.4.4 패킷 통계(세션) 
19.4.4.1 Argus 
19.5 파일 분석 
19.5.1 파일 헤더 
19.5.2 Autopsy 
19.5.3 삭제 파일 
19.5.4 파일 복구 
19.5.5 파일 복구 방지 

20장 증명할 수 있는 근거: 무결성 
20.1 Fciv 
20.2 FileVerifier++ 

21장 난 네가 한 일을 알고 있다: 사용자 추적 
21.1 실행 프로그램 - Userassist Keys 
21.2 실행 프로그램 - MUICache 
21.3 열어본 문서와 입력 실행 ? MRUList, RunMRU 
21.4 인터넷 흔적 - Typedurls 
21.5 메일 추적 - Exchange 

22장 보초를 세우다: 감시 
22.1 시스템 감시 - 파일 
22.2 시스템 감시 - 로그 
22.3 네트워크 감시 
22.3.1 Windows에서 스구일 클라이언트 실행하기 
22.3.2 IP 역추적 
22.3.3 IP 확인 
22.3.4 Nmap 
22.3.4.1 오픈 포트 스캔 
22.3.4.2 차단 포트 스캔형(스텔스 스캔) 
22.3.4.3 스캔 부가 옵션 

4부 끝나지 않는 이슈: 보안과 운영

23장 후킹 
23.1 유저 모드 후킹 
23.1.1 SetWindowsHookEx 
23.1.2 CreateRemoteThread 
23.2 커널 모드 후킹 
23.2.1 IRP 후킹 
23.2.2 SSDT 후킹 
23.3 루트킷 탐지 
23.3.1 HookShark 
23.3.2 GMER 869
23.3.3 Kaspersky TDSSKiller 
23.3.4 Avast Anti-Rootkit 
23.3.5 Sophos Anti-Rootkit 

24장 안티 디버깅: 프로그램 보호 
24.1 디버거 탐지 
24.1.1 INT3 (예외 처리) 
24.1.2 GetTickCount (시간차) 
24.1.3 BeingDebugged (프로세스 정보) 
24.1.4 CheckRemoteDebuggerPresent (API) 
24.1.5 HardwareBreakpoint (브레이크 포인트) 
24.1.6 FindWindow (프로세스 확인) 
24.2 프로세스(프로그램) 보호 
24.2.1 스레드 ID 
24.2.2 스택 영역 
24.2.3 DKOM 
24.3 패킹?프로그램 암호화 
24.3.1 패커 분석 
24.3.2 패킹 도구-더미다 
24.3.3 JunkCode 

25장 네트워크 보호 
25.1 ACL 기본 
25.1.1 일반형(Standard) Access-list 
25.1.2 확장형(Extended) Access-List 
25.1.3 왜 인바운드(Inbound)를 차단할까? 
25.1.4 Established를 통한 인바운드 트래픽 필터링 설정 
25.2 DDoS 보호 설정 
25.2.1 사설, 내부 네트워크, Broadcast Spoofing 필터링 구성 
25.2.2 RPF(Reverse Path Forwarding)를 이용한 Source IP Spoofing 필터링 
25.2.3 TCP Syn Flooding 필터링 
25.2.4 Rate limit 설정을 통한 필터링 
25.3 논리적 격리 VLAN 
25.4 IP 숨기기, 속이기 

26장 IP 기반 로그인 보안 프로세스 구성과 개발 (실습) 
26.1 현재 로그인 보안 프로세스 
26.2 우리가 알아야 할 것 
26.3 어떻게 통제할 것인가? 
26.4 실습 준비 
26.5 실전 개발?웹 부분 
26.5.1 10초 이내 로그인 방지 
26.5.2 블록(차단) IP 확인 
26.5.3 1시간 이내 로그인 성공 계정 보호, 공격 IP 설정 
26.6 실전 개발 - 저장 프로시저 부분 

27장 NoSQL?!: 부하 분산 (실습) 
27.1 실습 준비 
27.2 SqlCacheDependency를 이용한 ASP 캐시 

28장 유용한 도구들 
28.1 Paros 
28.2 CooxieBar 
28.3 Cppcheck 
28.4 DumpbinGUI 
28.5 Fiddler2 
28.6 Websecurify 
28.7 Gflags

Linode is a privately owned virtual private server provider based in Galloway, New Jerse