HOME > 상세정보

상세정보

디컴파일링 안드로이드 (3회 대출)

자료유형
단행본
개인저자
Nolan, Godfrey 박수현, 역
서명 / 저자사항
디컴파일링 안드로이드 / 가드프리 놀란 지음 ; 박수현 옮김
발행사항
서울 :   길벗,   2012  
형태사항
349 p. : 삽화 ; 25 cm
원표제
Decompiling android
ISBN
9788966184347
일반주기
색인수록  
부록: 옵코드 표  
일반주제명
Application software -- Development
000 00831camcc2200289 c 4500
001 000045726500
005 20121127144015
007 ta
008 120917s2012 ulka 001c kor
020 ▼a 9788966184347 ▼g 03000
035 ▼a (KERIS)BIB000012915255
040 ▼a 211062 ▼c 211062 ▼d 244002
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.268 ▼2 23
085 ▼a 005.268 ▼2 DDCK
090 ▼a 005.268 ▼b 2012z20
100 1 ▼a Nolan, Godfrey
245 1 0 ▼a 디컴파일링 안드로이드 / ▼d 가드프리 놀란 지음 ; ▼e 박수현 옮김
246 1 9 ▼a Decompiling android
260 ▼a 서울 : ▼b 길벗, ▼c 2012
300 ▼a 349 p. : ▼b 삽화 ; ▼c 25 cm
500 ▼a 색인수록
500 ▼a 부록: 옵코드 표
650 0 ▼a Application software ▼x Development
700 1 ▼a 박수현, ▼e
900 1 0 ▼a 가드프리 놀란, ▼e

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.268 2012z20 등록번호 151312735 도서상태 대출가능 반납예정일 예약 서비스 C

컨텐츠정보

책소개

좋고 나쁜 안드로이드 애플리케이션이 어떻게 만들어지는지 그리고 애플리케이션을 어떻게 하면 해킹으로부터 더 안전하게 만들 수 있는지를 설명하고 있다. 이 책에서는 안드로이드 애플리케이션을 다운로드하고 원래의 자바 소스나 HTML5, CSS 코드를 얻는 것이 얼마나 쉬운 일인지를 잘 보여주고 있으며 그로 인해 안드로이드 애플리케이션들의 소스가 악의적인 의도를 가지고 접근하려는 사람들로부터 강력하게 대응할 수 있는 방법을 설명하고 있다. 즉, 코드를 보호하고 백도어를 제거함으로써 애플리케이션에 포함될 수도 있는 신용카드 정보나 백엔드 시스템 로그인 정보와 같은 민감한 데이터를 보호하는 방법을 설명하고 있다.

내가 만든 소스 코드를 지키려면 먼저 상대가 어떻게 뚫고 들어오는지를 알아야 한다.
안드로이드 애플리케이션 소스 코드가 어떻게 파괴되는지 그리고 어떻게 하면 막을 수 있는지 알아본다.
안드로이드 애플리케이션은 모바일 기기에서 동작하며 쉽게 접근이 가능하고 역공학을 통해서
원래의 소스 코드를 알아내는 것도 쉽다. 디컴파일이라는 것은 기계어 형태의 코드를 사람이 읽을 수
있는 형태로 변환하는 과정이다. 실행 파일이나 자바 클래스 파일, DLL 파일 등을 디컴파일하게 되면
원래의 소스 코드와는 사뭇 다른 형태의 코드를 얻을 수 있다. 이 코드는 비록 불완전하고 읽기에도
쉽지는 않지만 그래도 기계어에 비하면 원래의 코드를 알아내는데 훨씬 더 수월한 편이다.

이 책 디컴파일링 안드로이드에서는 다른 일반적인 출판물에서는 쉽게 볼 수도 없으며 다루지 못하고 있는 내용을 설명하고 있다. 원래의 소스 코드를 얻어내기 위해서 노력하는 많은 사람들이 사용하는 도구나 기법을 재조명하고 이들부터 개발자가 힘들여 만든 안드로이드 애플리케이션의 코드를 보호할 수 있는 난독화와 같은 기법을 아울러 설명하고 있다.
디컴파일링 안드로이드는 일반적인 안드로이드 프로그래밍 가이드북이 아니다. 일반적으로 프로그래밍 책은 개발자의 아이디어를 어떻게 소스 코드로 구현하는지 설명하지만 이 책은 정 반대이다. 이 책을 통해서 안드로이드 옵코드(opcode)들을 원래의 소스 코드로 변환하고, 이를 통해서 프로그램을 개발한 사람이 어떤 생각을 가지고 있었는지 추측하게 된다. 따라서 언어 구조를 구체적으로 다루는 대신 DVM과 옵코드에 관련된 내용 위주로 자세히 설명하고 있다. 이 책에서 중요한 것은 언어의 문법이 아니라 저수준에서 가상 머신이 어떻게 동작하느냐이다.
결론적으로 저자는 이 책을 통해 많은 개발자들이 힘들게 만든 안드로이드 애플리케이션을 소중하게 생각하고 스스로를 어떻게 하면 지킬 수 있는지 그 길을 제시하고 있다.

이 책을 통해 배울 수 있는 것들

안드로이드 애플리케이션을 디컴파일하고 보호하는 도구 및 기법
잠재적인 보안 위협을 진단하고 피할 수 있는 팁
JVM과 Dalvik VM의 차이점에 대한 분석
안드로이드 디컴파일러 및 난독화 도구를 만드는 자세한 방법
자바 바이트 코드와 옵코드에 대한 이해가 쉬우면서도 자세한 설명
DEX 파일과 옵코드에 대한 구조를 설명하고, 자바 클래스 파일과의 차이점을 비교
안드로이드 APK 파일을 디컴파일하는 다양한 예제


이 책의 독자
안드로이드 애플리케이션 개발자를 대상으로 하고 있으며 classes.dex 파일을 어떻게 디컴파일하고, 어떤 보호 기법을 사용할 수 있는지에 대해 관심이 있는 독자를 대상으로 하고 있다.


정보제공 : Aladin

저자소개

가드프리 놀란(지은이)

MI, Southfield의 RISS LLC 창립자인 동시에 회장이다. 소프트웨어 개발 팀에서 20년 이상 일한 경험을 가지고 있다. Ireland Dublin에서 태어났으며 University College Dublin에서 기계공학을 전공하고 West of England 대학에서 컴퓨터 과학 석사를 마쳤다. 또한 2004년 Apress에서 출판된 Decompiling Java의 저자이기도 하다.

박수현(옮긴이)

홍익대학교 컴퓨터 공학 학사부터 박사까지 마쳤으며, 현재 현대오토에버에 재직 중이다. 약 12년간에 걸친 홍대 생활로 인하여 잘 놀 것 같다는 오해를 자주 받고 있다. 사실 홍대 앞 번화가에 대해서는 잘 모르지만, 홍대 근처 어느 집에서 자장면을 시켜야 맛있는지는 조언해 줄 수 있다. 운영체제, 시스템 프로그래밍에 관심이 많다.

정보제공 : Aladin

목차

Chapter 01 디컴파일링의 기초  
01­ 컴파일러와 디컴파일러 
02­ 가상 머신 디컴파일러 
03­ 왜 자바인가? 
04­ 왜 안드로이드인가? 
05­ 디컴파일러의 역사 
06­ 디컴파일에 관련된 법적 문제 
07­ 도덕적 문제 
08­ 여러분 스스로를 보호하는 방법 
09­ 정리 

Chapter 02 기계 속의 유령  
01­ 태생적으로 디컴파일에 취약한 구조를 가진 JVM 
 02­ 간단한 스택 머신 구조의 JVM 
 03­ 클래스 파일의 내부 
04­ 정리 

Chapter 03 DEX 파일 구조 
01­ 기계에서 사는 유령(제2탄) 
02­ DEX 파일을 각각의 영역으로 나누기 
03­ 정리 

Chapter 04 디컴파일링에 유용한 프로그램들  
01­ APK 다운로드 
02­ APK 파일 디컴파일링 
03­ 디어셈블러 
04­ 디컴파일러 
05­소스 코드 보호하기 
06­정리 

Chapter 05 디컴파일러 디자인  
01­ 설계에 대한 기본 지식 
02­ 무엇이 문제인가 
03­ (디)컴파일러를 만들기 위해 필요한 도구들 
JLex와 CUP 210 
 04­ 파서 디자인 결정하기 
05­ 파서 디자인 
06­ 정리 

Chapter 06 디컴파일러 구현  
01­ DexToXML 
 02­ DexToSource 
 03­ 예제 1 : Casting.java 
 04­ 예제 2 : Hello World 
 05­ 예제 3 : if 구문 
06­ 재구성(Refactoring) 
 07­ 정리 

Chapter 07 예가 아니면 보지도, 듣지도, 말하지도, 행하지도 말라  
01­ 난독화 사례 연구 
02­ 근거없는 주장들 
03­ 해결책 1 : ProGuard 
 04­ 해결책 2 : DashO 
 05­사례 연구에 대한 리뷰 
06­ 정리 

Appendix 옵코드(opcode) 표

관련분야 신착자료

이창현 (2021)