이미 소장하고 있다면 판매해 보세요.
|
|
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) 표 Chapter 27 터치 스크린 01 MotionEvent에 대한 이해 02 멀티 터치 03 지도를 이용한 터치 04 제스처(Gesture) 05 참조 06 요약 Chapter 28 드래그 앤 드롭의 구현 01 드래그 앤 드롭에 대해 파고 들기 02 3.0 이상에서 드래그 앤 드롭의 기본 03 드래그 앤 드롭 예제 애플리케이션 04 예제 드래그 앤 드롭 애플리케이션 테스트하기 05 참조 06 요약 Chapter 29 센서 사용하기 01 센서란 무엇인가? 02 센서 이벤트 얻기 03 센서 데이터를 해석하기 04 참조 05 요약 Chapter 30 주소록 API 01 사용자 계정에 대한 이해 02 주소록 애플리케이션 이해 03 주소록 데이터 구조 이해 04 주소록 API 활용 05 연락처 통합 제어 06 동기화가 주소록에 미치는 영향 07 개인 프로필의 이해 08 참조 09 요약 Chapter 31 마켓 01 퍼블리셔 되기 02 애플리케이션 판매 준비 03 애플리케이션 업로드하기 04 마켓의 사용자 경험 05 다른 앱 스토어 06 참조 07 요약 |
|
내가 만든 소스 코드를 지키려면 먼저 상대가 어떻게 뚫고 들어오는지를 알아야 한다.
안드로이드 애플리케이션 소스 코드가 어떻게 파괴되는지 그리고 어떻게 하면 막을 수 있는지 알아본다. 안드로이드 애플리케이션은 모바일 기기에서 동작하며 쉽게 접근이 가능하고 역공학을 통해서 원래의 소스 코드를 알아내는 것도 쉽다. 디컴파일이라는 것은 기계어 형태의 코드를 사람이 읽을 수 있는 형태로 변환하는 과정이다. 실행 파일이나 자바 클래스 파일, DLL 파일 등을 디컴파일하게 되면 원래의 소스 코드와는 사뭇 다른 형태의 코드를 얻을 수 있다. 이 코드는 비록 불완전하고 읽기에도 쉽지는 않지만 그래도 기계어에 비하면 원래의 코드를 알아내는데 훨씬 더 수월한 편이다. 이 책 디컴파일링 안드로이드에서는 다른 일반적인 출판물에서는 쉽게 볼 수도 없으며 다루지 못하고 있는 내용을 설명하고 있다. 원래의 소스 코드를 얻어내기 위해서 노력하는 많은 사람들이 사용하는 도구나 기법을 재조명하고 이들부터 개발자가 힘들여 만든 안드로이드 애플리케이션의 코드를 보호할 수 있는 난독화와 같은 기법을 아울러 설명하고 있다. 디컴파일링 안드로이드는 일반적인 안드로이드 프로그래밍 가이드북이 아니다. 일반적으로 프로그래밍 책은 개발자의 아이디어를 어떻게 소스 코드로 구현하는지 설명하지만 이 책은 정 반대이다. 이 책을 통해서 안드로이드 옵코드(opcode)들을 원래의 소스 코드로 변환하고, 이를 통해서 프로그램을 개발한 사람이 어떤 생각을 가지고 있었는지 추측하게 된다. 따라서 언어 구조를 구체적으로 다루는 대신 DVM과 옵코드에 관련된 내용 위주로 자세히 설명하고 있다. 이 책에서 중요한 것은 언어의 문법이 아니라 저수준에서 가상 머신이 어떻게 동작하느냐이다. 결론적으로 저자는 이 책을 통해 많은 개발자들이 힘들게 만든 안드로이드 애플리케이션을 소중하게 생각하고 스스로를 어떻게 하면 지킬 수 있는지 그 길을 제시하고 있다. 이 책을 통해 배울 수 있는 것들 안드로이드 애플리케이션을 디컴파일하고 보호하는 도구 및 기법 잠재적인 보안 위협을 진단하고 피할 수 있는 팁 JVM과 Dalvik VM의 차이점에 대한 분석 안드로이드 디컴파일러 및 난독화 도구를 만드는 자세한 방법 자바 바이트 코드와 옵코드에 대한 이해가 쉬우면서도 자세한 설명 DEX 파일과 옵코드에 대한 구조를 설명하고, 자바 클래스 파일과의 차이점을 비교 안드로이드 APK 파일을 디컴파일하는 다양한 예제 이 책의 독자 안드로이드 애플리케이션 개발자를 대상으로 하고 있으며 classes.dex 파일을 어떻게 디컴파일하고, 어떤 보호 기법을 사용할 수 있는지에 대해 관심이 있는 독자를 대상으로 하고 있다. |