소스코드를 분석하라 역공학 리버싱의 이론부터 IDA Pro 실전 활용까지
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
▶ 『소스코드를 분석하라 역공학 리버싱의 이론부터 IDA Pro 실전 활용까지(세트)』는 《The IDA Pro Book》과《리버싱》을 엮은 세트입니다. (전2권)
작가정보
저자(글) 크리스 이글
저자 크리스 이글(Chris Eagle)은 캘리포니아 몬테레이의 네이벌(Naval) 대학원에서 컴퓨터 과학과 부교수로 재직 중이다. 다수의 IDA 플러그인을 개발한 프로그래머이며, 『Gray Hat Hacking』(McGraw-Hill)의 공동 저자다. 블랙햇(Blackhat), 데프콘(Defcon), 투어콘(Toorcon), 시무콘(Shmoocon) 등의 보안 컨퍼런스에서도 발표한 바 있다.
저자(글) 엘다드 에일람
저자 엘다드 에일람(Eldad Eilam)은 리버스 엔지니어링 분야의 컨설턴트로서 고객에게 운영체제와 소프트웨어 리버스 엔지니어링의 전문 서비스를 제공한다. 수년간 개선되고 진일보된 리버스 엔지니어링 기술을 개발하려고 노력하는 중이다.
번역 고현영
역자 고현영은 광운대학교 전자통신공학과와 동대학원을 졸업했다. 현재 Made In Heaven이라는 IT회사에서 근무 중이다. 보안과 클라우드 컴퓨팅에 관심이 많고, 번역서로는 『구글앱스 활용과 관리』(비팬북스), 『OBJECTIVE-C 프로그래밍』(비팬북스), 『Ajax 보안』(에이콘출판) 등이 있다.
번역 윤근용
역자 윤근용은 시스템 프로그래머로서 시스템에 대한 다양한 분야에 관심이 많으며 특히 보안 분야에 대한 관심이 높아 다년간 보안 업무에 종사하고 있다. 바이러스 보안 업체를 거쳐 현재는 NHN에서 보안 관련 프로젝트를 수행 중이다. 에이콘출판사에서 펴낸 『웹 애플리케이션 해킹 대작전』, 『실전해킹 절대내공』, 『루트킷』을 번역했다.
목차
- 『The IDA Pro Book (2nd Edition) 한국어판』
1부 IDA 소개
1장 디스어셈블리 소개
___디스어셈블리 이론
___디스어셈블리란?
___디스어셈블리가 필요한 이유
___디스어셈블리의 방법
2장 리버싱과 디스어셈블리 툴
___분류 툴
___요약 툴
___심층 조사 툴
3장 IDA 프로 배경 지식
___헥스레이 사의 저작권 침해 대책
___IDA Pro의 획득
___IDA 지원 사이트
___IDA 설치
___IDA 사용자 인터페이스 고찰
2부 IDA 기본 사용법
4장 IDA 시작
___IDA 시작
___IDA 데이터베이스 파일
___IDA 데스크탑 소개
___초기 분석 과정 중 데스크탑의 진행 상황
___IDA 데스크탑 팁과 트릭
___버그 보고
5장 IDA 데이터 디스플레이
___기본 IDA 디스플레이
___보조 디스플레이 화면
___기타 IDA 디스플레이
6장 디스어셈블리 살펴보기
___기본 탐색 기능
___스택 프레임
___데이터베이스 검색
7장 디스어셈블리 다루기
___이름과 이름 지정
___IDA의 주석
___기본 코드 변환
8장 데이터 타입과 데이터 구조
___데이터 구조 파악
___IDA 구조체 생성
___구조체 템플릿 활용
___신규 구조체 가져오기
___표준 구조체 활용
___IDA TIL 파일
___C++ 리버스 엔지니어링 기초
9장 상호 참조와 그래프
___상호 참조
___IDA 그래프
10장 여러 가지 IDA
___콘솔 모드 IDA
___IDA 일괄처리 모드 사용
___3부 IDA 고급 사용법
11장 IDA 커스터마이징
___환경설정 파일
___기타 IDA 환경설정 파일 옵션
12장 FLIRT 시그니처로 라이브러리 인식
___고속 라이브러리 식별과 인식 기술
___FLIRT 시그니처 적용
___FLIRT 시그니처 파일 생성
13장 IDA 심층 탐구
___추가된 함수 정보
___loadint로 미리 정의된 주석 보강
14장 바이너리 패칭과 IDA 제약 사항
___혼란을 야기하는 메뉴
___IDA 출력 파일과 패치
15장 IDC 스크립팅
___기본적인 스크립트 실행
___IDC 언어
___IDC 스크립트 단축키
___유용한 IDC 함수
___IDC 스크립트 예제
___IDAPython 스크립트 예제
16장 IDA SDK
___SDK 소개
___IDA API
17장 IDA 플러그인 아키텍처
___플러그인 개발
___플러그인 작성
___플러그인 설치
___플러그인 환경설정
___IDC 확장
___플러그인 사용자 인터페이스 옵션
___스크립트 플러그인
18장 바이너리 파일과 IDA 로더 모듈
___알지 못하는 파일 분석
___수작업으로 PE 파일 로딩
___IDA 로더 모듈
___IDA 로더 작성
___다른 로더 전략
___스크립트 로더 작성
19장 IDA 프로세서 모듈
___파이썬 바이트 코드
___파이썬 인터프리터
___프로세서 모듈 빌드
___프로세서 모듈 아키텍처
___프로세서 모듈 스크립트
5부 실제 애플리케이션
20장 다양한 컴파일러
___점프 테이블과 switch문
___RTTI 구현
___디버그 바이너리와 릴리스 바이너리
___기타 호출 규약
21장 난독화된 코드 분석
___안티정적 분석 기법
___안티동적 분석 기법
___IDA를 이용한 정적 바이너리 역난독화
___가상 머신 기반 난독화
22장 취약점 분석
___신규 취약점 발견
___IDA로 취약점을 발견한 후
___IDA와 취약점 개발 절차
___셸코드 분석
23장 실제 IDA 플러그인
___IDAPython
___collabREate
___ida-x86emu
___MyNav
6부 IDA 디버거
24장 IDA 디버거
___디버거 시작
___디버거 디스플레이
___프로세스 제어
___디버깅 자동화
25장 디스어셈블러/디버거 통합
___배경
___IDA 데이터베이스와 디버거
___난독화 코드 디버깅
___IdaStealth
___예외 처리
26장 추가 디버거 기능
___IDA를 이용한 원격 디버깅
___Bochs 활용 디버깅
___Appcall
부록 A IDA 5.0 무료 버전 사용
___IDA 무료 버전 제약 사항
___IDA 무료 버전 사용
부록 B IDC/SDK 상호 참조
『리버싱』
1부 리버싱 101
1장 기초
___리버스 엔지니어링
___소프트웨어 리버스 엔지니어링: 리버싱
___리버싱 적용
______보안 관련 리버싱
_________악성코드 소프트웨어
_________암호 알고리즘 리버싱
_________디지털 저작권 관리
_________프로그램 바이너리 감사
______소프트웨어 개발에서의 리버싱
_________소프트웨어 간의 상호 운용
_________경쟁 제품 분석
_________소프트웨어의 품질과 안정성 측정
___로우레벨 소프트웨어
______어셈블리 언어
______컴파일러
______가상 머신과 바이트 코드
______운영체제
___리버싱 절차
______시스템 레벨 리버싱
______코드 레벨 리버싱
___사용 툴
______시스템 모니터링 툴
______디스어셈블러
______디버거
______디컴파일러
___리버싱은 합법적인 작업인가
______상호 운용성
______경쟁
______저작권법
______영업 비밀과 특허권
______디지털 밀레니엄 저작권법
______DMCA 사례
______사용권 계약
___예제 코드와 툴
___정리
2장 로우레벨 소프트웨어
___하이레벨 관점
______프로그램 구조
_________모듈
_________공통 구성 요소
______데이터 처리
_________변수
_________사용자 정의 데이터 구조체
_________리스트
______제어 흐름
______하이레벨 언어
_________C
_________C++
_________자바
_________C#
___로우레벨 관점
______로우레벨 데이터 처리
_________레지스터
_________스택
_________힙
_________실행 데이터 섹션
______제어 흐름
___어셈블리 언어 입문
______레지스터
______플래그
______명령 포맷
______기본 명령
_________데이터 이동
_________산술 연산
_________비교 연산
_________조건 분기
_________함수 호출
______코드 예
___컴파일러 기초
______컴파일러란
______컴파일러 아키텍처
_________프런트엔드
_________중간 표현
_________최적화기
_________백엔드
______리스팅 파일
______사용 컴파일러
___실행 환경
______소프트웨어 실행 환경(가상 머신)
_________바이트 코드
_________인터프리터
_________Just-in-Time 컴파일러
_________리버싱 전략
______최신 프로세서에서의 하드웨어 실행 환경
_________Intel NetBurst
_________μops(Micro-Ops)
_________파이프라인
_________분기 예측
___정리
3장 윈도우 기초
___컴포넌트와 기본 아키텍처
______간략한 역사
______특징
______지원 하드웨어
___메모리 관리
______가상 메모리와 페이징
_________페이징
_________페이지 폴트
______워킹 셋
______커널 메모리와 유저 메모리
______커널 모드 공간
______섹션 객체
______VAD 트리
______유저 모드 메모리 할당
______메모리 관리 API
___객체와 핸들
______네임드 객체
___프로세스와 스레드
______프로세스
______스레드
______컨텍스트 스위칭
______동기화 객체
______프로세스 초기화 과정
___애플리케이션 프로그래밍 인터페이스
______Win32 API
______네이티브 API
______시스템 콜 메커니즘
___실행 포맷
______기본 개념
______이미지 섹션
______섹션 정렬
______동적 링크 라이브러리
______헤더
______임포트와 익스포트
______디렉터리
___입력과 출력
______I/O 시스템
______Win32 서브시스템
_________객체 관리자
___구조화된 예외 처리
___정리
4장 리버싱 툴
___다양한 리버싱 방법
______오프라인 코드 분석(Dead-Listing)
______라이브 코드 분석
___디스어셈블러
_________IDA Pro
______ILDasm
___디버거
______유저 모드 디버거
_________OllyDbg
_________WinDbg를 이용한 유저 모드 디버깅
_________IDA Pro
_________PEBrowse Professional Interactive
______커널 모드 디버거
_________WinDbg를 이용한 커널 모드 디버깅
_________Numega SoftICE
_________가상 머신에서의 커널 디버깅
___디컴파일러
___시스템 모니터링 툴
___패치 툴
______Hex Workshop
___기타 리버싱 툴
______실행 이미지 덤프 툴
_________DUMPBIN
_________PEView
_________PEBrowse Professional
___정리
2부 리버싱 응용
5장 리버싱 실전
___리버싱과 상호운용성
___기본 원칙
___문서화되지 않은 API를 찾는 방법
______찾고자 하는 것
___사례 연구: NTDLL.DLL의 Generic Table API
______RtlInitializeGenericTable
______RtlNumberGenericTableElements
______RtlIsGenericTableEmpty
______RtlGetElementGenericTable
_________셋업과 초기화
_________로직과 구조
_________검색 루프 1
_________검색 루프 2
_________검색 루프 3
_________검색 루프 4
_________소스코드 추출
______RtlInsertElementGenericTable
_________RtlLocateNodeGenericTable
_________RtlRealInsertElementWorker
_________Splay 트리
______RtlLookupElementGenericTable
______RtlDeleteElementGenericTable
______분석한 내용 종합
___정리
6장 파일 포맷 분석
___Cryptex
___Cryptex 사용
___Cryptex 리버싱
___패스워드 검증 과정
______“Bad Password” 메시지 잡아내기
______패스워드 변환 알고리즘
______패스워드 해싱
___디렉터리 구조
______디렉터리 처리 코드 분석
______파일 엔트리 분석
___디렉터리 구조 덤프
___파일 추출 과정
______파일 목록 검색
______파일 복호화
______부동소수점 연산
______복호화 루프
______해시 값 검증
___정리
___좀 더 자세히
___결론
7장 프로그램 바이너리 감사
___문제점 정의
___보안 취약점
______스택 오버플로우
_________간단한 스택 보안 취약점
_________내부 구현
_________스택 검사
_________비실행 가능 메모리
______힙 오버플로우
______문자열 필터
______정수 오버플로우
_________사용자 입력 정수에 대한 산술 연산
______형 변환 에러
___사례: IIS 인덱싱 서비스 보안 취약점
______CVariableSet::AddExtensionControlBlock
______DecodeURLEscapes
___정리
8장 악성코드 리버싱
___악성코드의 종류
______바이러스
______웜
______트로이 목마
______백도어
______모바일 코드
______애드웨어/스파이웨어
___스틱키 소프트웨어
___미래의 악성코드
______정보 탈취 웜
______바이오스/펌웨어 악성코드 331
___악성코드의 목적
___악성코드 취약점
___다형성
___변종
___안전한 리버싱 환경 구축
___Backdoor.Hacarmy.D
______실행 파일 언패킹
______최초 실행
______설치
______네트워크 연결
______서버에 연결
______채널에 접속
______백도어와 통신
______SOCKS4 서버 실행
______자체 제거
___Backdoor.Hacarmy.D: 명령 레퍼런스
___정리
3부 크래킹
9장 저작권 침해와 불법 복사 방지
___저작권
___사회적 측면
___소프트웨어 저작권 침해
______문제 정의
______보안 결함
______필요 조건
______이론적으로 크랙이 불가능한 모델
___보호 유형
______매체 기반 보호
______시리얼 번호
______질의 응답과 온라인 인증
______하드웨어 기반의 보호
______서비스로서의 소프트웨어
___진보된 보호 개념
______크립토 프로세서
___디지털 저작권 관리
______DRM 모델
_________윈도우 미디어 저작권 관리자
_________시큐어 오디오 패스
___워터 마크
___신뢰 컴퓨팅
___복사 방지 기술 공격
___정리
10장 안티 리버싱 기술
___안티 리버싱이 필요한 이유
___기본적인 안티 리버싱 방법
___심볼 정보 제거
___코드 암호화
___안티 디버거 기술
______디버거 기본
______IsDebuggerPresent API
______SystemKernelDebuggerInformation
______싱글 스텝 인터럽트를 이용한 SoftICE 탐지
______트랩 플래그
______코드 체크섬
___안티 디스어셈블러
______선형 스윕 디스어셈블러
______Recursive Traversal 디스어셈블러
______적용
___코드 난독화
___제어 흐름 변환
______Opaque Predicates
______안티 디컴파일러
______Table Interpretation
______인라인닝과 아웃라이닝
______인터리빙 코드
______순서 변환
___데이터 변환
______변수 인코딩
______배열 재구성
___정리
11장 보호 기술 파괴
___패치
___Keygen
___키 생성 알고리즘 추출
___고급 크래킹: Defender
______Defender의 초기화 루틴 리버싱
______복호화된 코드 분석
______사라진 SoftICE
______스레드 리버싱
______“Killer” 스레드 무력화
______KERNEL32.DLL 로딩
______함수 재암호화
______엔트리 포인트로 다시 돌아가서
______프로그램 파라미터 파싱
______사용자 이름 처리
______사용자 정보 검증
______코드 복호화
______Defender에 대한 무작위 대입
___Defender의 보호 기술
______함수 레벨의 암호화
_________상대적으로 강력한 암호 블록 체인
_________재 암호화
______애플리케이션/운영체제와의 인터페이스 난독화
______프로세서 타임 스탬프 검증 스레드
______실행 시에 복호화 키 생성
_________상호 의존 키
_________사용자 입력 기반의 복호화 키
______인라이닝
___정리
4부 디스어셈블리 너머
12장 닷넷 리버싱
___기반 지식
___닷넷 기본
______매니지드 코드
______닷넷 프로그래밍 언어
______공통 타입 시스템
___중간 언어
______평가 스택
______활성화 레코드
______IL 명령
______IL 코드 샘플
_________Counting Items
_________링크드 리스트 샘플
___디컴파일러
___난독기
______심볼 이름 변경
______제어 흐름 변경
______디컴파일과 디스어셈블리 차단
___난독화된 코드 리버싱
______XenoCode
______Preemptive Solutions의 DotFuscator
______Remotesoft 난독기와 링커
______Remotesoft Protector
______어셈블리 프리컴파일
______어셈블리 암호화
___정리
13장 디컴파일
___네이티브 코드 디컴파일
___전형적인 디컴파일러의 구조
___중간 표현
______표현식과 표현식 트리
______제어 흐름 그래프
___프론트엔드
______의미 분석
______제어 흐름 그래프 생성
___코드 분석
______데이터 흐름 분석
_________단일 정적 할당
_________데이터 전달
_________레지스터 변수 구별
_________데이터 타입 전달
______타입 분석
_________기본 데이터 타입
_________복잡한 데이터 타입
______제어 흐름 분석
______라이브러리 함수의 구별
___백엔드
___실제 IA-32 디컴파일러
___정리
부록 A 코드 구조 해석
부록 B 컴파일된 연산의 이해
부록 C 프로그램 데이터 해석
부록 D 인용문
출판사 서평
★ 세트 구성: 전2권 ★
1) 『The IDA Pro Book (2nd Edition) 한국어판: 리버스 엔지니어링에 날개를 달다』
2) 『리버싱: 리버스 엔지니어링 비밀을 파헤치다』
『The IDA Pro Book (2nd Edition) 한국어판』 소개
IDA Pro를 사용해보고 싶은데 어떻게 시작해야 할지 잘 모른다면 이 책으로 시작해보길 바란다. 이 책은 IDA Pro에 대한 훌륭한 가이드로, IDA Pro의 구성부터 기본적인 기능, 스크립트와 SDK를 활용한 당면한 문제를 쉽게 해결할 수 있는 방법 등 IDA의 모든 것을 알려준다. 이 책을 보고 나면 IDA Pro를 이용한 리버스 엔지니어링의 마스터가 되어 있을 것이다.
이 책에서 다루는 내용
■ 내비게이션, 주석, 디스어셈블리를 수정할 수 있다.
■ 라이브러리 루틴 파악으로 사용자 코드에 좀 더 집중할 수 있다.
■ 코드 그래프 기능으로 상호 참조와 함수 호출 관계를 쉽게 파악할 수 있다.
■ SDK로 신규 프로세서와 파일 타입을 지원 가능하게 한다.
■ IDA 스크립트를 좀 더 쉽게 만들 수 있는 플러그인을 찾는다. 공동으로 리버스 엔지니어링 작업 등을 할 수 있다.
■ IDA의 내장 디버거로 어렵고 난해한 코드를 파헤칠 수 있다.
『리버싱』 소개
소프트웨어를 해부해서 설계와 구현 내용, 심지어 소스코드까지도 알아낼 수 있어서 최근 보안업계의 화두로 떠오른 리버싱. 복제방지기술 무력화와 상용보안대책 무력화로 무장한 해커들의 리버싱 공격 패턴을 파악하기 위한 최신 기술을 담은 해킹 보안 업계 종사자의 필독서. 소프트웨어의 약점을 찾아내 보완하고, 해커의 공격이나 악성코드를 무력화하며, 더 좋은 프로그램을 개발할 수 있도록 프로그램의 동작 원리를 이해하는 데도 효율적인 리버스 엔지니어링의 비밀을 파헤친다.
이 책에서 다루는 내용
■ IA-32 호환 프로세서용 컴파일러가 만든 어셈블리 언어 코드를 읽는 방법
■ 문서화되지 않은 파일 포맷이나 네트워크 프로토콜 해석
■ 리버스 엔지니어링이 합법인 경우와 불법인 경우, 그리고 불법일 때의 이유
■ 리버싱을 활용해 해커가 복사 방지 기술을 무력화하는 방법
■ 리버스 엔지니어링을 적용해 악성코드를 무력화하는 방법
■ 코드 리버싱을 막는 방어책과 효과적인 수행 방법
■ 닷넷 플랫폼 리버싱과 어셈블리 언어인 MSIL
■ 실제 악성코드 프로그램 분석 방법
■ 악성코드 프로그램을 이용해 공격자가 감염된 시스템 제어권을 획득하는 과정
기본정보
ISBN | 9788960773356 | ||
---|---|---|---|
발행(출시)일자 | 2012년 08월 23일 | ||
쪽수 | 1440쪽 | ||
크기 |
250 * 188
mm
|
||
총권수 | 2권 | ||
시리즈명 |
에이콘 해킹 보안 시리즈
|
||
원서명/저자명 | (The)IDA Pro Book/Eagle, Chris |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립