HOME > 상세정보

상세정보

안드로이드 애플리케이션 리버스 엔지니어링 : 기초부터 고급까지 안드로이드 앱 리버싱

안드로이드 애플리케이션 리버스 엔지니어링 : 기초부터 고급까지 안드로이드 앱 리버싱 (12회 대출)

자료유형
단행본
개인저자
남대현 류재형, 저
서명 / 저자사항
안드로이드 애플리케이션 리버스 엔지니어링 = Android application reverse engineering : 기초부터 고급까지 안드로이드 앱 리버싱 / 남대현, 류재형 지음
발행사항
서울 :   에이콘,   2017  
형태사항
290 p. : 삽화 ; 24 cm
총서사항
에이콘 해킹·보안 시리즈 = Hacking security series
ISBN
9788960779983 9788960771048 (Set)
일반주기
색인수록  
000 00000cam c2200205 c 4500
001 000045924392
005 20171228142748
007 ta
008 171228s2017 ulka 001c kor
020 ▼a 9788960779983 ▼g 94000
020 ▼a 9788960771048 (Set)
035 ▼a (KERIS)BIB000014495612
040 ▼a 211048 ▼c 211048 ▼d 211009
082 0 4 ▼a 005.8 ▼2 23
085 ▼a 005.8 ▼2 DDCK
090 ▼a 005.8 ▼b 2017z16
100 1 ▼a 남대현
245 1 0 ▼a 안드로이드 애플리케이션 리버스 엔지니어링 = ▼x Android application reverse engineering : ▼b 기초부터 고급까지 안드로이드 앱 리버싱 / ▼d 남대현, ▼e 류재형 지음
246 3 0 ▼a 안드로이드 앱 리버싱
260 ▼a 서울 : ▼b 에이콘, ▼c 2017
300 ▼a 290 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a 에이콘 해킹·보안 시리즈 = ▼x Hacking security series
500 ▼a 색인수록
700 1 ▼a 류재형, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.8 2017z16 등록번호 121242819 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

안드로이드 애플리케이션 설치 방법부터 동적 디버깅에 이르는 다양한 분석 방법을 담은 책이다. 안드로이드 애플리케이션 설치 방법부터 동적 디버깅에 이르는 다양한 분석 방법을 담았다. 저자들의 다년간 모의해킹 및 취약점 분석으로 터득한 노하우를 바탕으로 분석 환경 구성부터 동적 디버깅, APK 후킹 방법 등 고급 활용까지 다루고 있다.

안드로이드 애플리케이션 보안을 처음 접하거나 개발자 및 시큐리트 파트에서 보안 점검을 담당하는 독자, 모의해킹 컨설턴트에게 두루 적합하다. 난독화 및 분석 방지 솔루션 등 분석이 막혔을 때, 돌파구를 찾을 수 있을 것이다.

안드로이드 애플리케이션 설치 방법부터 동적 디버깅에 이르는 다양한 분석 방법을 담은 책이며, 난독화 및 분석 방지 솔루션 등 분석이 막혔을 때, 돌파구를 찾을 수 있는 책이다. 저자들의 다년간 모의해킹 및 취약점 분석으로 터득한 노하우를 바탕으로 분석 환경 구성부터 고급 활용까지 모두 다뤘다.

★ 이 책에서 다루는 내용 ★
■ 안드로이드 애플리케이션 분석 환경 설정
■ 무료 도구를 이용한 정적 분석 방법
■ 상용 도구를 이용한 난독화 애플리케이션 분석 방법
■ 분석 방지 솔루션이 적용된 애플리케이션 분석 방법
■ 공유 라이브러리 동적 디버깅 방법
■ 해킹 대회 문제를 통한 실전 응용
■ 개발을 통한 APK 후킹 방법

★ 이 책의 대상 독자 ★
■ 안드로이드 애플리케이션 보안을 처음 접하거나 이제 막 시작하려는 독자
■ 개발자 및 시큐리트 파트에서 보안 점검을 담당하는 독자
■ 안드로이드 애플리케이션 취약점 점검 모의해킹 컨설턴트
■ 안드로이드 애플리케이션 리버스 엔지니어링에 관심이 많은 독자

★ 이 책의 구성 ★
1장, '안드로이드 기본 개념'에서는 안드로이드 애플리케이션 분석에 앞서 분석을 어느 부분부터 해야 하는지 모르는 독자들에게 안드로이드 애플리케이션의 네 가지 구성요소에 대한 개념 설명으로 어느 부분부터 분석을 시작해야 모르는 독자들이 개념을 바탕으로 관련 코드를 쉽게 분석해 나갈 수 있도록 액티비티(Activity), 서비스(Service), 브로드케스트 수신자(Broadcast Receiver), 콘텐츠 제공자(Contents Provider)에 관해 설명한다.

2장, '안드로이드 리버스 엔지니어링을 위한 환경 구축'에서는 분석에 앞서 디바이스에 접속하기 위해 ADB 접속을 위한 USB디버깅 활성화하는 방법, 필요한 명령어 등을 사용하기 위해 Busybox 등을 설치하는 방법 및 윈도우, 우분투 환경에 맞게 자바 버전 확인 및 안드로이드 스튜디오(Android Studio)를 이용해 SDK를 설치하는 방법을 시작하는 사람들을 기분으로 자세히 설명한다.

3장, '안드로이드 앱 구성 및 코드 분석'에서는 안드로이드 애플리케이션의 구성, 안드로이드 애플리케이션 생성 과정과 apktool을 이용한 기본적인 APK Repackage 과정을 설명하고 무료로 쉽게 구할 수 있는 JD-GUI, JADX, Androguard, ByteCodeViewer를 이용해 분석하는 방법에 대해 설명한다. 또한 안드로이드 애플리케이션 분석 용도로 많이 사용되고 있는 JEB, JEB2를 이용한 자세한 분석 방법과 JEB2에서 제공하는 동적 디버깅을 할 수 있는 방법에 대해 자세히 설명한다.

4장, '안드로이드 앱 정적 분석'에서는 분석을 위해 설치된 안드로이드 애플리케이션 추출부터 분석방지 솔루션이 적용된 애플리케이션의 실행코드 추출 방법 및 유용한 팁을 예제를 바탕으로 설명하고, 레벨 테스트 용도로 제작된 안드로이드 애플리케이션의 정적 분석 방법에 대해 안드로이드 기본 개념부터, 코드 활용까지 차근차근 설명한다.

5장, '안드로이드 앱 동적 분석'에서는 이장의 내용은 대부분 고급과정에 속하며 개발에 대한 사전지식이 필요하다. 따라서 앱을 직접 분석하지 않고 동적 환경을 구성해 어떤 이벤트가 발생하는지 확인하기 위해 안드로이드 LKM(Loadable Kernel Module), 대표적인 프레임워크를 활용한 자바 API 후킹을 통해 분석해나가는 방법, API 후킹을 하는 방법에 대해서 자세히 설명한다.

6장, '안드로이드 앱(APK) 디버깅'에서는 GDB, IDA, JEB2를 통해서 안드로이드 애플리케이션 코드에 대한 동적 디버깅 환경 구축 및 동적 디버깅 방법, JNI 라이브러리 디버깅 방법에 대해서 자세히 설명한다.


정보제공 : Aladin

저자소개

남대현(지은이)

해커이자 보안 연구원이다. 3년 정도 스마트TV의 취약점을 진단했고, 모바일 사업부 취약점 진단, 커널 취약점 진단, 모의해킹 진단을 다년간 해오고 있다. NHN, SK텔레콤, 사이버 사령부 시스템 해킹 강의, SANS ITL 아카데미 강의를 했고, 모바일 환경의 In-App 우회 취약점 다수 발견했다. 모바일 환경의 보안 및 암호화된 메시지 복호화 등에도 관심이 많고, 강의를 통해서 지식을 나누고 싶다.

류재형(지은이)

사이버 수사관이다. 모바일 카메라의 소프트웨어 검증 업무를 수행하면서 안드로이드의 구조에 대해 깊이 있는 이해를 바탕으로 초창기 버전 안드로이드 모델부터 최신 버전의 안드로이드 펌웨어 및 안드로이드 앱 분석을 하면서 안드로이드 보안에 대해 큰 관심을 갖고 있으며, 특히 모바일 기기에서 사용되는 경량화 암호의 복호화와 최신 안드로이드폰에 아이폰과 같은 강력한 암호화 방식이 적용되고 있는데, 포렌식적 관점에서 획득과 분석을 하는 데 큰 관심을 갖고 연구를 하고 있다.

정보제공 : Aladin

목차

1장. 안드로이드 기본 개념 
__1.1 안드로이드 필수 구성 요소 
____1.1.1 액티비티 
____onCreate( ) 
____startActivity( ) 
____startActivityForResult( ) 
____setResult( ) 
____액티비티 생명주기 
____1.1.2 서비스 
____서비스 생명주기 
____1.1.3 브로드캐스트 수신자 
____1.1.4 콘텐츠 제공자 

2장. 안드로이드 리버스 엔지니어링을 위한 환경 구축 
__2.1 디바이스 설정 
____2.1.1 ADB 접속을 위한 USB 디버깅 활성화 
____2.1.2 루팅 
____2.1.3 다양한 명령을 사용하기 위한 BusyBox 설치 
__2.2 안드로이드 SDK, NDK 설치 
____2.2.1 윈도우 환경에서 안드로이드 SDK 설치 
____자바 버전 확인 
____자바 다운로드 
____자바 설치 
____2.2.2 안드로이드 스튜디오를 이용한 안드로이드 SDK 설치 
____안드로이드 스튜디오 다운로드 
____안드로이드 SDK 설치 
____환경 변수 등록 
__2.3 우분투 환경에서 안드로이드 SDK 설치 
____2.3.1 자바 버전 확인 및 설치 
____자바 버전 확인 
____자바 설치 
____자바 버전 확인 
____2.3.2 안드로이드 SDK의 다운로드와 설치 
____2.3.3 안드로이드 SDK 환경 변수 설정 
____2.3.4 안드로이드 NDK 다운로드 및 설치 
____압축 해제 
____2.3.5 안드로이드 NDK 환경 변수 등록 

3장. 안드로이드 앱 구성 및 코드 분석 
__3.1 안드로이드 APK 구성 
__3.2 APK Repackage 
____3.2.1 Apktool 
__3.3 무료 도구를 활용한 코드 분석 
____3.3.1 JD - GUI 
____실행 문제 해결 
____3.3.2 JADX 
____3.3.3 Androguard 
____3.3.4 바이트코드 뷰어 
__3.4 상용도구를 활용한 코드 분석 
____3.4.1 JEB1 
____쉬운 해킹대회 문제 풀어보기 
____3.4.2 JEB2 
____UI 배치 
____아티팩트 추가 
____애플리케이션 동적 디버깅 
____SETPROPEX를 이용한 설정값 변경 
____CVE-2016-5195 취약점을 이용한 설정값 변경 
____JEB2 동적 디버깅 기능 사용 관련 문제 해결 
____JEB2를 이용한 애플리케이션 디버깅 

4장. 안드로이드 앱 정적 분석 
__4.1 안드로이드 APK 추출 
____4.1.1 ADB 
____4.1.2 아스트로 파일관리자 
__4.2 분석방지 솔루션 우회 
____예제 1 
____예제 2 
__4.3 안드로이드 애플리케이션 정적 분석 
____예제 1 
____예제 2 
__4.4 난독화된 애플리케이션 분석 
____예제 1. 
____예제 2. 

5장. 안드로이드 앱 동적 분석 
__5.1 안드로이드 LKM을 활용한 동적 분석 
____5.1.1 모바일 기기에 맞는 커널 다운로드 
____5.1.2 툴체인 다운로드 
__5.2 Java API Hooking을 활용한 동적 분석 
____5.2.1 Cydia Substrate를 이용한 자바 API 후킹 
____주입기 설치 
____자바 API 후킹 모듈 개발 
____분석 및 코딩 시작 
____직접 만들어보자 
____5.2.2 Xposed를 이용한 자바 API 후킹 
____개발 환경 구축 
____모듈 업데이트 
____후킹 모듈 개발 
__5.3 Frida 활용한 동적 분석 
____5.3.1 Frida 설치 
____5.3.2 Frida-trace를 이용한 시스템콜 후킹 
____5.3.3 Frida 모듈을 이용한 스크립트 작성 
____5.3.4 Frida를 이용한 자바 후킹 

6장. 안드로이드 앱(APK) 디버깅 
__6.1 GDB를 이용한 Android Remote Debugging 
____6.1.1 ADB를 이용한 안드로이드 기기 접속 
__6.2 IDA Pro를 이용한 APK 디버깅 
____6.2.1 환경 변수 설정 
____6.2.2 앱 설치 
____6.2.3 디버깅 시작 
____6.2.4 문제 해결 
__6.3 IDA 프로를 이용한 classes.dex & 공유 라이브러리 디버깅 
____6.3.1 환경 변수 등록확인 
____6.3.2 Android NDK 설치 
____6.3.3 환경 변수 등록 
____6.3.4 컴파일 
____6.3.5 custom_rules.xml 수정 
____6.3.6 두 개의 IDA 인스턴스 생성 
__6.4 IDA Pro를 이용한 JNI 공유 라이브러리 디버깅 방법 1 
____6.4.1 환경 구축 
____6.4.2 Linker 복사 
____6.4.3 공유 라이브러리 복사 
____6.4.4 도구 개발 
____6.4.5 Android.mk 파일 작성 
____6.4.6 Makefile 작성 
____6.4.7 컴파일 
____6.4.8 안드로이드 기기 작업 
____6.4.9 ADB 포트 포워딩 
____6.4.10 IDA Pro 설정 
____6.4.11 브레이크 포인트 설정 
____6.4.12 디버그 설정 
____6.4.13 안드로이드 기기 작업 
____6.4.14 포트 포워딩 
__6.5 IDA Pro를 이용한 JNI 공유 라이브러리 디버깅 방법 2 
__6.6 IDA Pro를 이용한 JNI 공유 라이브러리 디버깅 방법 3 
____6.6.1 STEP 1 달빅 런타임 후킹 
____6.6.2 STEP 2 SDK에 포함된 ddms 실행 
____6.6.3 STEP 3 안드로이드 서버 전송 및 실행 
____6.6.4 STEP 4 adb forward 
____6.6.5 STEP 5 애플리케이션 설치 및 실행 
____6.6.6 STEP 6 IDA 실행 및 디버거 연결 
__6.7 마치며

관련분야 신착자료