서브메뉴

본문

파이썬 해킹 프로그래밍 (프로그래머라면 누구나 할 수 있는)
파이썬 해킹 프로그래밍 (프로그래머라면 누구나 할 수 있는)
저자 : 저스틴 지이츠
출판사 : 에이콘출판
출판년 : 2010
정가 : 25000, ISBN : 9788960771161

책소개


파이썬은 쉽고 빠르게 작성할 수 있고 로우레벨을 지원하며 해커들을 행복하게 해주는 다양한 라이브러리를 제공한다는 장점이 있는 프로그래밍 언어로 해커와 리버스 엔지니어, 소프트웨어 테스터들이 애용한다. 그러나 파이썬을 이용한 해킹 방법을 설명하는 참고서적은 드물었고, 관련 포럼에 올라온 글이나 도움말을 뒤지거나 코드가 제대로 동작하도록 일일이 코드를 수정해야만 했다. 이 책은 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명하고 있다. 또한 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 배울 수 있게 구성하였다.

해커와 리버스 엔지니어가 꼭 알아야 할 손쉽고 빠른 파이썬 해킹 프로그래밍. 디버거, 트로이목마, 퍼저, 에뮬레이터 같은 해킹 툴과 해킹 기술의 기반 개념을 설명하며, 기존 파이썬 기반 보안 툴의 사용법과 기존 툴이 만족스럽지 않을 때 직접 제작하는 방법도 알려준다. 리버싱과 보안 분석 작업의 자동화 노하우, 자신만의 디버거 제작 방법, 코드와 라이브러리 인젝션 기술, 소프트 후킹과 하드 후킹 기술 등의 내용을 다루고 있다.

목차


1장 개발 환경 구축
1.1 운영체제 요구 사항
1.2 파이썬 2.5 설치
1.2.1 윈도우에서의 파이썬 설치
1.2.2 리눅스에서의 파이썬 설치
1.3 이클립스와 PyDev 설치
1.3.1 ctypes
1.3.2 동적 라이브러리 이용
1.3.3 C 데이터 타입
1.3.4 레퍼런스를 통한 파라미터 전달
1.3.5 구조체와 유니언 정의

2장 디버거
2.1 범용 CPU 레지스터
2.2 스택
2.3 디버그 이벤트
2.4 브레이크포인트
2.4.1 소프트 브레이크포인트
2.4.2 하드웨어 브레이크포인트
2.4.3 메모리 브레이크포인트

3장 윈도우 디버거 개발
3.1 디버기
3.2 CPU 레지스터 상태 얻기
3.2.1 스레드 리스트
3.2.2 종합
3.3디버그 이벤트 핸들러 구현
3.4브레이크포인트
3.4.1 소프트 브레이크포인트
3.4.2 하드웨어 브레이크포인트
3.4.3 메모리 브레이크포인트
3.5 정리

4장 PyDbg - 순수 파이썬 윈도우 디버거
4.1 브레이크포인트 확장
4.2 접근 위반 핸들러
4.3 프로세스 스냅샷
4.3.1 프로세스 스냅샷 얻기
4.3.2 종합

5장 Immunity 디버거
5.1 Immunity 디버거 설치
5.2 Immunity 디버거 101
5.2.1 PyCommand
5.2.2 PyHooks
5.3 공격 코드 개발
5.3.1 공격 코드에서 사용할 명령 찾기
5.3.2 문자 필터링
5.3.3 윈도우의 DEP 우회
5.4 악성 코드의 안티 디버깅 루틴 무력화
5.4.1 IsDebuggerPresent
5.4.2 반복적인 프로세스 탐지 기법 우회

6장 후킹
6.1 PyDbg를 이용한 소프트 후킹
6.2 Immunity 디버거를 이용한 하드 후킹

7장 DLL과 코드 인젝션
7.1 원격 스레드 생성
7.1.1 DLL 인젝션
7.1.2 코드 인젝션
7.2 백도어 제작
7.2.1 파일 숨기기
7.2.2 백도어 코딩
7.2.3 py2exe로 컴파일하기

8장 퍼징
8.1 버그의 유형
8.1.1 버퍼 오버플로우
8.1.2 정수 오버플로우
8.1.3 포맷 스트링 공격
8.2 파일 퍼저
8.3 추가 고려 사항
8.3.1 코드 커버리지
8.3.2 자동화된 정적 분석

9장 Sulley
9.1 Sulley 설치
9.2 Sulley 프리미티브
9.2.1 문자열
9.2.2 구분자
9.2.3 정적, 랜덤 프리미티브
9.2.4 바이너리 데이터
9.2.5 정수
9.2.6 블록과 그룹
9.3 Sulley를 이용한 WarFTPD 퍼징
9.3.1 FTP 기초
9.3.2 FTP 프로토콜의 골격 생성
9.3.3 Sulley 세션
9.3.4 네트워크와 프로세스 모니터링
9.3.5 퍼징과 Sulley 웹 인터페이스

10장 윈도우 드라이버 퍼징
10.1 드라이버 통신
10.2 Immunity 디버거를 이용한 드라이버 퍼징
10.3 Driverlib - 드라이버 정적 분석 툴
10.3.1 디바이스 이름 알아내기
10.3.2 IOCTL 디스패치 루틴 찾기
10.3.3 IOCTL 코드 찾기
10.4 드라이버 퍼저 작성

11장 IDAPython - IDA Pro 스크립팅
11.1 IDAPython 설치
11.2 IDAPython 함수
11.2.1 유틸리티 함수
11.2.2 세그먼트
11.2.3 함수
11.2.4 교차 참조
11.2.5 디버거 후킹
11.3 스크립트 예제
11.3.1 위험한 함수에 대한 교차 참조 찾기
11.3.2 함수 코드 커버리지
11.3.3 스택의 크기 계산

12장 PyEmu - 스크립트 가능한 에뮬레이터
12.1 PyEmu 설치
12.2 PyEmu 개요
12.2.1 PyCPU
12.2.2 PyMemory
12.2.3 PyEmu
12.2.4 실행
12.2.5 메모리와 레지스터 변경자
12.2.6 핸들러
12.3 IDAPyEmu
12.3.1 함수 에뮬레이트
12.3.2 PEPyEmu
12.3.3 실행 파일 팩커
12.3.4 UPX 팩커
12.3.5 PEPyEmu를 이용한 UPX 언팩