이미 소장하고 있다면 판매해 보세요.
|
『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 ■ 실제 악성코드 프로그램 분석 방법 ■ 악성코드 프로그램을 이용해 공격자가 감염된 시스템 제어권을 획득하는 과정 |