Top

디스어셈블링의 모든 것, 원리부터 실습까지 한 번에 (세트)

  • 원서명The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler, Hacker Disassembling Uncovered (2nd Edition)
  • 지은이크리스 카스퍼스키, 크리스 이글
  • 옮긴이서준석, 고현영
  • ISBN : 9788960775091
  • 72,000원
  • 2013년 12월 31일 펴냄
  • 페이퍼백 | 1,500쪽 | 188*250mm
  • 시리즈 : 해킹과 보안

책 소개

세트 구성: 전2권
『해킹의 꽃 디스어셈블링 Hacker Disassembling Uncovered』 소개

이 책은 고급 해커의 필수 능력인 디스어셈블링 기법을 집중적으로 다룬다. 분석에 필요한 기본 도구와 어셈블리어 분석을 시작으로 각종 보안 메커니즘을 우회할 수 있는 방법을 설명한다. 디버깅, 디스어셈블링에 대한 기본 지식부터 커널 분석, 고급 패치 기술 등 분석 과정에서 마주칠 수 있는 깊이 있는 주제들을 다양한 관점과 예제를 통해 학습할 수 있는 훌륭한 분석 길잡이가 되어 줄 것이다. .

이 책에서 다루는 내용

디스어셈블이 필요한 상황, 특정 언어 구조체를 분석하기 위한 시작점, 보호 메커니즘 개발자가 숨겨 놓은 트랩에 빠지지 않고 수백 메가에 육박하는 코드 밀림에서 길을 잃지 않는 방법을 알려주는 책이다. 특히 이 개정2판에서는 실제 디스어셈블링 기법에 관련된 내용이 추가됐다. 특히 메모리 덤프 분석, 합법적인 소프트웨어 보호 메커니즘, 악성 프로그램 관련 내용이 새로운 단원으로 추가됐다. 또한 관련 예제와 원리들은 최신 동향에 맞춰 수정했다. 안티디버깅 기법 우회, 패킹, 암호화, 다형성, 간단한 난독화 코드 극복과 관련된 내용에 주안점을 두고 작성했다.

『The IDA Pro Book (2nd Edition) 한국어판』 소개

IDA Pro를 사용해보고 싶은데 어떻게 시작해야 할지 잘 모른다면 이 책으로 시작해보길 바란다. 이 책은 IDA Pro에 대한 훌륭한 가이드로, IDA Pro의 구성부터 기본적인 기능, 스크립트와 SDK를 활용한 당면한 문제를 쉽게 해결할 수 있는 방법 등 IDA의 모든 것을 알려준다. 이 책을 보고 나면 IDA Pro를 이용한 리버스 엔지니어링의 마스터가 되어 있을 것이다.

이 책에서 다루는 내용

■ 내비게이션, 주석, 디스어셈블리를 수정할 수 있다.
■ 라이브러리 루틴 파악으로 사용자 코드에 좀 더 집중할 수 있다.
■ 코드 그래프 기능으로 상호 참조와 함수 호출 관계를 쉽게 파악할 수 있다.
■ SDK로 신규 프로세서와 파일 타입을 지원 가능하게 한다.
■ IDA 스크립트를 좀 더 쉽게 만들 수 있는 플러그인을 찾는다. 공동으로 리버스 엔지니어링 작업 등을 할 수 있다.
■ IDA의 내장 디버거로 어렵고 난해한 코드를 파헤칠 수 있다.

저자/역자 소개

저자 소개

크리스 카스퍼스키(Kris Kaspersky)

유명 기술 서적 저자로서, Hacker Uncovered 시리즈 도서들과, 『Code Optimization: Effective Memory Usage(코드 최적화: 효율적인 메모리 사용)』, 『CD Cracking Uncovered: Protection Against Unsanctioned CD Copying(알려지지 않은 CD 크래킹: 승인되지 않은 CD 복사를 방지하는 보호 기술)』, 『Data Recovery Tips & Solutions: Windows, Linux, and BSD(데이터 복구 팁 & 솔루션: 다양한 관점에서 보는 윈도우)』 등의 저서, 그리고 리눅스, BSD 해킹, 디스어셈블링, 코드 최적화 등과 관련한 다양한 기고문을 발표했다. 주로 컴파일러 개발, 최적화 기술, 보안 메커니즘 연구, 실시간 OS 커널 개발, 소프트웨어 보호 메커니즘, 안티 바이러스 프로그램 개발과 관련된 보안 및 시스템 프로그래밍을 주로 다룬다.

크리스 이글(Chris Eagle)

캘리포니아 몬테레이의 네이벌(Naval) 대학원에서 컴퓨터 과학과 부교수로 재직 중이다. 다수의 IDA 플러그인을 개발한 프로그래머이며, 『Gray Hat Hacking』(McGraw-Hill)의 공동 저자다. 블랙햇(Blackhat), 데프콘(Defcon), 투어콘(Toorcon), 시무콘(Shmoocon) 등의 보안 컨퍼런스에서도 발표한 바 있다.

옮긴이 소개

서준석

(주)한국정보보호교육센터에서 교육 관련 사업 관리 및 콘텐츠 연구를 수행했다. 온라인 보안 기술 커뮤니티인 보안프로젝트에서는 메타스플로잇 분석, 취약점 분석 부문 연구를 담당하고 있다. 다양한 시스템에 존재하는 취약점 연구에 관심이 있으며 최근에는 커널 시스템 분석에 초점을 맞춰 연구를 수행 중이다. 현재 고려대학교 정보보호대학원에 진학을 앞두고 있다. 『Nmap NSE를 활용한 보안 취약점 진단』(에이콘출판, 2013년)을 공저했다.

고현영

광운대학교 전자통신공학과와 동대학원을 졸업했다. 현재 Made In Heaven이라는 IT회사에서 근무 중이다. 보안과 클라우드 컴퓨팅에 관심이 많고, 번역서로는 『구글앱스 활용과 관리』(비팬북스), 『OBJECTIVE-C 프로그래밍』(비팬북스), 『Ajax 보안』(에이콘출판) 등이 있다.

목차

목차
  • 『해킹의 꽃 디스어셈블링 Hacker Disassembling Uncovered』

  • 1부 해킹 툴의 소개

  • 1장 해킹 툴 입문
    • 디버거
    • 디스어셈블러
    • 디컴파일러
    • 헥스 편집기
    • 언패커
    • 덤퍼
    • 리소스 편집기
    • 스파이
    • 감시 프로그램
    • 수정 프로그램
    • 보호 CD 복사기

  • 2장 유닉스용 해킹 툴
    • 디버거
    • 디스어셈블러
    • 스파이
    • 헥스 편집기
    • 덤퍼
    • 자동화된 보호 툴

  • 3장 디버거 에뮬레이션과 에뮬레이터
    • 에뮬레이터 소개
    • 역사적 개요
    • 대표적인 에뮬레이터
    • 에뮬레이터 선택

  • 4장 어셈블러 소개
    • 어셈블리어의 철학
    • C 예제로 어셈블리 개념 설명
    • 작업공간으로서 어셈블리 삽입
    • 사용 가능한 툴
    • 어셈블리 번역기의 개요와 비교

  • 2부 기본 해킹 기술

  • 5장 기본 해킹 기술 익히기
    • 비밀 키 유형에 따른 보호 메커니즘 분류
    • 보호 강도
    • 상용 솔루션의 단점
    • 사용 기술의 구현 에러
    • 심각한 결과를 야기하는 사소한 오류의 정리

  • 6장 시작 준비
    • 보호 기술 제작과 크랙
    • 디스어셈블러 익히기
    • 실전 크랙 예제
    • 정리

  • 7장 애플리케이션 디버깅 익히기
    • 디버깅 소개
    • 디스어셈블러와 디버거를 같이 사용
    • API 함수에 브레이크 포인트 설정
    • 메시지에 브레이크 포인트 설정
    • 데이터에 브레이크 포인트 설정
    • 스택 역추적
    • DLL 디버깅
    • 정리

  • 8장 유닉스와 리눅스 환경에서의 디버깅 특성
    • GDB 기반의 Ptrace
    • GDB에서 바이너리 파일 디버깅

  • 9장 Linice로 수행하는 커널 디버깅의 기초
    • 시스템 요구 사항
    • Linice 컴파일과 설정
    • 시스템 부팅과 디버거 실행
    • Linice로 작업할 때 지켜야 할 기본 원칙
    • 정리

  • 10장 고급 디버깅 주제
    • 소프트아이스를 로그 수집기로 사용
    • 무작위 브레이크 포인트로 해킹 트릭 사용
    • 범위 설정을 통한 크래킹
    • 정리

  • 3부 고급 디스어셈블링 기술

  • 11장 32비트 PE 파일 디스어셈블링
    • 다양한 실행 환경에서 PE 파일 구조의 특징
    • 일반적인 개념과 PE 파일의 요구 사항
    • PE 파일 구조
    • PE 파일에 코드를 삽입하거나 제거하는 기술
    • 정리

  • 12장 리눅스와 BSD에서 ELF 파일 디스어셈블링
    • 필요한 도구
    • ELF 파일 구조
    • ELF 파일에 외부 코드 삽입
    • 리눅스에서 간단한 크랙미 프로그램을 디스어셈블링
    • 정리

  • 13장 x86-64 아키텍처에서 수행하는 디스어셈블링
    • 소개
    • 필요한 도구
    • x86-64 아키텍처의 개요
    • 64비트 모드로 전환
    • x86-64 환경에서 만드는 ‘Hello, World’ 프로그램
    • 정리

  • 14장 리눅스 커널 디스어셈블링과 해킹
    • 디스어셈블링 리눅스 커널
    • 커널 해킹의 비밀

  • 15장 고급 패칭 기법
    • 온라인 패칭의 비밀과 트릭
    • 클라이언트 프로그램을 크래킹하는 잘 알려지지 않은 방법
    • 윈도우 NT/2000/XP 커널 핵
    • BSOD 이후의 세계가 존재하는가?
    • 참고 사이트
    • 정리

  • 16장 기타 형식의 파일 디스어셈블링
    • PDF 파일 디스어셈블링
    • 정리

  • 4부 실제 코드 연구

  • 17장 윈도우에서의 숨바꼭질
    • 윈도우 환경을 위한 안티디버깅 기법
    • 윈도우 환경에서 사용되는 스텔스 기법
    • 정리

  • 18장 패커 극복법
    • 예비 분석
    • 언패킹과 대체 방안
    • 언패킹 알고리즘
    • 오리지널 진입점 검색
    • 보호된 애플리케이션을 덤프
    • 정리

  • 19장 난독화 극복법
    • 난독화 도구의 작동 원리
    • 난독화된 프로그램을 크랙하는 방법
    • 블랙박스 접근법
    • 가상머신 지하 감옥
    • 정리

  • 20장 리눅스와 BSD에서의 패커 극복법
    • 패커가 성능에 미치는 영향
    • UPX
    • Burneye
    • Shiva
    • 패커 비교
    • 정리

  • 21장 악성코드 디버깅과 디스어셈블링
    • 디버거를 활용한 방첩 활동
    • 공격 코드 감사와 디스어셈블링
    • 참고 자료
    • 정리
  • 찾아보기

  • 『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 무료 버전 사용

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안