woong's

안드로이드 ProGuard 사용하기 본문

Develop/Android

안드로이드 ProGuard 사용하기

dlsdnd345 2016. 2. 13. 23:36

안드로이드 ProGuard 사용하기


프로가드는 널리 사용되고 있는 코드 난독화 툴로, 여러분의 어플리케이션을 크래커의 공격으로 부터 보다 안전하게 보호하고 동시에, 코드 사이즈를 줄여주며, 그리고 약간의 최적화도 곁들여 주는 아주 아주 훌륭한 오프소스 툴

 

진저브레드 버전 부터는 아예 ADT 단에서 프로가드 사용을 지원



 1. ProGuard 를 사용하기 위해서는 현재 사용하고 계신 ADT 를 최신 버전(8.0.1 이 후 버전)을 설치

 2. 업데이트를 마친후에 프로젝트를 생성해보면 
proguard-project.txt, project.properties  가 생긴것을 확인 할수 있습니다.


3. project.properties 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
"ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
 
# Project target.
target=android-18
 

이렇게 코드가 작성 되어 있는데 

# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

이부분의 주석을 제거 해주시고 배포 하시면 크래커의 공격으로 부터 안전하게 보호하고 , 코드 사이즈를 줄여주게 됩니다.

난독화가 되고 안되고는 apk 파일을 디컴파일 해보아야하는데 제가 난독화가 된것과 안된것의 차이를 보여드리는 것으로 

마치겠습니다.(디컴파일에 대해서는 올릴수 있으면 블로그에 올리도록 하겠습니다.)

4. proguard 폴더 안의 파일들

dump.txt : 여러분의 어플리케이션에서 사용중인 클래스들의 내부 구조에 대한 대략적인 정보를 나타냅니다.

mapping.txt : 난독화 과정에서 기존 클래스 혹은 메서드가 어떤 새로운 난독화된 이름으로 매핑되었는지 그 목록을 표시
seeds.txt : 난독화 되지 않은 클래스와 멤버들의 목록

usage.txt : 사용되지 않기 때문에, apk 파일에서 제거된 코드들의 목록


5. 난독화 되지 않은 프로젝트 



이처럼 클래스 name 메서드 name 변수 name 등이 한눈이 다 알아 볼수있습니다.

6. 난독화 된 프로젝트 





이처럼 클래스 및 메서드 , 변수가 난독화 된것을 보실수 있습니다 .


Comments