Project apk 디컴파일과 난독화(with Proguard)

Slides:



Advertisements
Similar presentations
모바일 프로그래밍 개론 UNIT 01 로봇 SW 컨텐츠 교육원 조용수. 학습 목표 모바일 프로그래밍이란 ? Embedded System 특성 Mobile OS Hybrid and Native SDK and NDK 2.
Advertisements

플레이스토어가 아닌 곳에서 다운받은 스마트폰 어플리케이션 설치방법 1. 스마트폰에 있는 환경설정 어플리케이션을 찾은후에 실행 시킨다.( 본 기종은 갤럭시노트 2)
10장. 시기별 학급경영 11조 염지수 이 슬 권용민 신해식.
일본 근세사. (1) 에도막부의 개창 ( ㄱ ) 세키가하라의 전투 (1600) - 히데요시의 사후 다섯 명의 다이로 ( 大老 ) 가운데 최대 영지 (250 만석 ) 를 보유하고 있던 도쿠가와 이에야스가 급부상. 이에 이에야스와 반목해 온 이시다 미쓰나리 ( 石田三成 ),
NICE SMART PAY 사용설명서 판매자 ( 영업사원 ) 용 안드로이드 폰 아이폰 &.
아니마 / 아니무스 송문주 조아라. 아니마 아니마란 ? 남성의 마음속에 있는 여성적 심리 경향이 인격화 한 것. 막연한 느낌이나 기분, 예견적인 육감, 비합리적인 것에 대 한 감수성, 개인적인 사랑의 능력, 자연에 대한 감정, 그리.
대구가톨릭대학교 체육교육과 06 학번 영안중학교 체육교사 신웅섭 반갑습니다. 반야월초등학교 축구부 대륜중학교 축구부 대륜고등학교 대구가톨릭대학교 차석 입학 대구가톨릭대학교 수석 졸업 2014 년 경북중등임용 체육 차석 합격 영안중학교 체육교사 근무 소개.
교수님 영상 제 2 장 관세법 일반 제 1 절 통칙 제 2 절 법 해석의 원칙 등 제 3 절 기한과 기간 제 4 절 서류의 송달 등 제 5 절 관세의 부과 및 징수 제 6 절 납세의무의 소멸 등.
일장 - 1 일 24 시간 중의 명기 ( 낮 ) 의 길이 ( 밤은 암기, 낮은 명기 ) 광주기성 - 하루 중 낮의 길이의 장단에 따라 식물의 꽃눈 형성이 달라지는 현상 일장이 식물의 개화현상을 조절하는 중요한 요인 단일식물 - 단일조건에서 개화가 촉진되는 식물 장일식물.
2 학년 6 반 1 조 고은수 구성현 권오제 김강서.  해당 언어에 본디부터 있던 말이나 그것에 기초하여 새로 만들어진 말  어떤 고장 고유의 독특한 말  Ex) 아버지, 어머니, 하늘, 땅.
Couple Tetris 제안서 맨땅에해딩 (GNU-A3) 06 안대웅, 06 박순응. CONTENTS 1. 프로젝트 정의 및 목적 2. 프로젝트 결과물의 개요 2.1. 프로젝트 결과물의 구조도 2.2. 프로젝트 결과물의 흐름도 2.3. 프로젝트 결과물의 그림 2.4.
혁신! < 테마 프로젝트 > 운영Flow
2014년도 교원 및 기간제교사 성과상여금 전달교육 개 회 국기에 대한 경례 - 인사말
선진 고양교육 “유아교육 행정 업무 연수” 유치원 회계실무 및 유아학비 연수 경기도고양교육청.
안드로이드 악성코드 분석론 및 리버싱 27th OCTOBER 2013.
Chapter 1. 운영체제의 개요 이태호.
묵자 겸애, 비명, 비공, 상현, 상동, 천지, 명귀, 삼표 법.
* 그룹 상시 연락망 : 각사 조직도 기준 연락망으로 대체함
내 아이를 위한 구강관리.
14주차 1교시 강화계획 [학습목표] 1. 강화계획의 정의를 안다 [학습내용] 1. 단순한 강화계획 2. 간헐적 강화 3. 복합 계획 4. 선택과 대응법칙 [사전학습] 강화계획이 일어날 수 있는 사례를 생각해본다.
제16장 원무통계 • 분석 ☞ 통계란 특정의 사실을 일정한 기준에 의하여 숫자로 표시한 것을 말한다.통계로서 활용할 수 있는 조건으로는 ① 동질성을 지녀야 하고 ② 기준이 명확하고 ③ 계속성이 지속되어야 하며 ④ 숫자로 표시하여야 한다 경영실적의.
03. 인쇄광고 알아보기.
Chapter 13 모바일 보안.
목 차 Chapter 1 컴퓨터와 프로그램 Chapter 2 프로그래밍과 운영체제
서울지방세무사회 부가세 교육 사진클릭-자료 다운 세무사 김재우.
치매의 예방 김 은민 윤금 노인요양원 치매의.
국내 IT인재 일본진출 현황 및 성과 한 국 정 보 통 신 산 업 협 회 부설 한국정보통신인력개발센터.
안드로이드 개요 2005년 휴대폰 소프트웨어 개발사인 Android를 구글이 인수 2007년 11월 오픈소스로 공개
3주차 Android Application ANDROID App..
(PROJECT명: Web Server관리)
07. 메뉴와 대화상자 제목. 07. 메뉴와 대화상자 제목 메뉴를 작성하고 사용하는 방법을 배운다. 토스트의 다양한 출력 방법을 알아본다. 대화상자의 사용법을 익힌다.
Android를 이용한 Snake Game
Edus 충남 통합인증을 위한 교과부 표준보안 모듈 설치 안내 (smart.edus.or.kr)
02. 처음으로 만드는 안드로이드 애플리케이션 제목.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
마산에 대하여 만든이 : 2204 김신우, 2202 권성헌.
CHAP. 2 안드로이드 개발 도구 설치.
객체지향 프로그래밍 (강의소개)
글사랑 캡션 편집 안드로이드 앱 담당 교수님 전진우 교수님 진세훈 정상기 글사랑.
보상사업 제안서 반룡일반산업단지 사업시행자 성창아이엔디㈜ 대표 정연교님 귀하 주 식 회 사 한 국 보 상 원.
타대학 학점인정 신청 매뉴얼 ○포털시스템에 접속하여 로그인.
한국IT교육원 팀장 : 도신욱 팀원 : 박영준 윤상철 여성모
Android 한글 키보드 설치하기.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
Hadoop Chapter 2. 맵리듀스 김영지.
좋은징조 담당교수 : 조성제 김도엽 김현일 이상훈.
Linux/UNIX Programming APUE (Thread Programming)
가계부 자동작성 APP Ucloud를 이용한 카드 내역 자동 작성 정보통신공학과 김대웅
업무 메뉴얼 1. 사무용품/소모품 청구의뢰서 작성요령 2. 법인 등기부등본/법인 인감증명 발급 요청서 작성요령
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
The day Project 강사클럽 성공 나누기 프로젝트 Class Contents day - #1 – 동영상 소속
6장 마케팅 조사 박소현, 김중호, 박기찬.
05. 레이아웃 익히기 제목.
한밭대학교 창업경영대학원 회계정보학과 장 광 식
기술 진화와 진보.
2015년 2학년 1반.
음양오행과 물리학 조 원 : 김용훈, 양범길, 박수진, 윤진희, 이경남, 박미옥, 박지선 (11조)
CHAP. 2 안드로이드 개발 도구 설치.
C언어 개요 프로그래밍이란 프로그래밍 언어란 컴퓨터와의 의사소통을 위한 표현 방법 세대별 언어의 발전을 거듭함
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
이야기 치료에 대하여 <8조 학문적 글쓰기 발표> 주희록 최은지
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
운영체제보안 3번 과제 설명 팀 기반의 설계 프로젝트 박민재
과목명: IT 표준 (표준화강좌) 교재: - 스마트 시대와 표준, KSA 한국표준협회, 2016
컴퓨터 소프트웨어 설계 및 실험 2016년 1학기 실험계획.
이용기관 안내 자료 目 次 전자금융거래법 시행에 따른 전자금융법의 개요 이용기관 준비사항 담당자 안내
박 현 미 울산여자상업고등학교 창업포스터 만들며 포토샵과 친해지기 박 현 미 울산여자상업고등학교.
상사용 역량진단 시스템 사용안내 1. 역량진단 시스템 프로세스 2. 상사진단 - 상사진단 1차 - 상사진단 2차.
중국문학개론 한부와 겅건안문학 중어중국학과 ㅇ이진원 한부와 건안문학.
Presentation transcript:

Project apk 디컴파일과 난독화(with Proguard) 201310016 이준형

목차 Decompile 언어적특성(Java) 난독화의 종류 난독화 툴 결론

Decompile .jar .class .java .xml Decompile .apk Easy to Decompile !!

Decompile Jar

Decompile Jar

Decompile Exe(Embedded Jar)

Decompile Exe(Embedded Jar) Copy & Save (.zip) 그 다음은 Jar과 같음

Decompile apk

Decompile apk Dex2jar 이용 Jar을 추출한 이후부터 Java와 동일

난독화의 필요성 증가 언어적 특성 다음은 언어별 역공학과 관련된 특성이다. Android 역시 Managed code의 형태 이므로 난독화가 쉬움 CPU 명령어 체계로 컴파일되지 않고 중간 언어(Intermediate Language)로 컴파일이 되기 때문에 역공학에 필요한 유용한 정보를 많이 포함 때문에 Native code에 비해 역공학이 용이함. 난독화의 필요성 증가

난독화의 종류 구획 난독화(Layout obfuscation) 구획 난독화는 클래스, 변수, 메소드 등의 식별자명을 의미없는 문자열로 변경하거나 디버깅 정보를 제거하는 기술을 말함. 의미없는 이름들로 채워진 소스의 루틴을 직접 분석하는 것은 어려움. 이 기술의 장점을 난독화 적용 전과 후를 비교해 보았을 때 실행 성능을 저하시키지 않는 장점이 있음

난독화의 종류 제어 흐름 난독화(Control flow obfuscation) 제어 흐름 난독화는 메소드 등의 제어 흐름을 변경하는 난독화 기술로 조건문이나 반복문을 변형하여 루틴을 파악하기 어렵게 하거나 별도의 제어 루틴을 추가하는 방식의 기술임. 불투명 술부는 항상 참이거나 거짓인 조건문을 삽입하는 기술로 결과적으로 수행되지 않는 불필요한 루틴이 추가됨.

난독화의 종류 제어 흐름 난독화(Control flow obfuscation) - 계속 루프 변환은 반복 루틴의 인덱싱에 변화를 주어 반복 루틴 분석을 방해하는 방식 ex) 메소드 변환은 여러 메소드 호출 루틴을 하나의 메소드로 변환하거나 하나의 메소드 호출을 여러 개의 메소드 호출로 변경하는 방식 이들 제어 흐름 난독화는 추가적인 루틴이 삽입되거나 변형되므로 최적화된 루틴 흐름이 변경되어 난독화 후의 성능이 저하되는 단점이 있음

난독화의 종류 그 외의 난독화 기술들 앞서 설명한 구획 난독화와 제어 흐름 난독화를 제외한 두 분류의 난독화가 추가로 존재함. 하지만 이들 역시 암호화-복호화를 거친다던지 무결성을 검증하는 루틴 등이 추가되어 있기 때문에 모두 성능의 저하를 불러온다.

Proguard 난독화 전 난독화 후 안드로이드에서 기본적으로 제공해주는 난독화 툴인 Proguard의 난독화 전과 후의 모습이다. 코드의 루틴은 변경되지 않았지만, 메소드 명과 변수명이 의미없는 알파뱃인 a, b, c, d, … 로 변경된 것을 볼 수 있다.

그 외의 난독화 툴들 위와 같이 Proguard는 식별자 변환과 디버깅 정보 제거 만을 제공해 주지만, 다른 상용 소프트웨어들도 존재함. 더 많은 기능을 제공해 주긴 하지만, 유료라는 단점이 있음. 또한 구획 난독화를 제외한 다른 난독화들을 수행하기 때문에 성능 저하는 피할 수 없음 Proguard는 구획 난독화만 수행하기 때문에 성능저하를 가져오지 않아서 적절한 모바일 환경에서의 난독화 기법이라고 볼 수 있음

결론 안드로이드는 Java와 마찬가지로 중간언어의 형태로 컴파일 된다. 이는 Java가 가졌던 장점과 마찬가지로 호환성에 있어서 아주 큰 장점을 주지만 반대로 소스코드를 노출할 수 밖에 없는 단점을 지니고 있음. 이 때문에 어플리케이션을 배포할 때 난독화를 시켜서 배포해야한다. 안드로이드에서 자체적으로 지원해주는 난독화 툴인 Proguard는 식별자 변환 및 디버깅 정보를 제거해 주긴 하지만, 이는 메소드 흐름이 그대로 남아있고, API 호출 정보 역시 남아 있어 리버싱을 통해 여전히 코드 분석이 쉽게 이루어질 수 있다. 기존 다른 난독화 툴들이 제공하는 기능들을 같이 이용하거나, 실행 파일을 패킹하는 것처럼 Java 코드를 암호화한 후 실행시점에서 제대로된 코드 형태가 되도록 만드는 방법을 적용시키는 것도 좋아보임. 하지만, 난독화 기법들을 많이 적용 시킬수록 성능이 저하되기 때문에 앱의 특성에 맞는 적절한 수준의 난독화 기법을 적용시키는 것이 좋음. (이것은 보안에 있어서 항상 화두가 됨. 보안성과 사용성이 적절히 조화되는 지점)

[1] 모바일 난독화 기술 동향 - Piao Yuxue, 정진혁, 이정현(2012.8) 참고 [1] 모바일 난독화 기술 동향 - Piao Yuxue, 정진혁, 이정현(2012.8) [2] 프로가드 난독화 도구 구조 및 기능 분석 - 위와 동일(2013.8) [3] http://biig.tistory.com/11 - apk파일 디컴파일하기