티스토리 뷰

APK를 뜯어보지 못하도록 처리를 해보자

 

적용 환경
Eclipse Indigo Service Release 2
Proguard v4.7
ADT Tools 21.0.0.v201210310015-519525

 

Proguard 적용방법

Eclipse 메뉴/ Window/ Android SDK Manager 를 실행하여 최신으로 업데이트.
Eclipse 메뉴/ Help/ Check for Updates 를 실행하여 ADT Tools 를 최신으로 업데이트

Proguard v4.8을 사이트에서 다운받아 ${sdk.dir}\tools\proguard에 설치함.(사이트에서 다운이 불가하여 적용안함. )


http://proguard.sourceforge.net/index.html#downloads.html


Project의 project.properties 에 다음 추가

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


Project에 proguard-project.txt 를 추가 하고 다음 내용을 추가


-optimizationpasses 5

 

    1. -dontusemixedcaseclassnames
      -dontskipnonpubliclibraryclasses
      -dontpreverify
      -verbose
      -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

      -keep public class * extends android.app.Activity
      -keep public class * extends android.app.Application
      -keep public class * extends android.app.Service
      -keep public class * extends android.content.BroadcastReceiver
      -keep public class * extends android.content.ContentProvider
      -keep public class * extends android.app.backup.BackupAgentHelper
      -keep public class * extends android.preference.Preference
      -keep public class com.android.vending.licensing.ILicensingService

      -keepclasseswithmembernames class * {
      native <methods>;
      }

      -keepclasseswithmembers class * {
      public <init>(android.content.Context, android.util.AttributeSet);
      }

      -keepclasseswithmembers class * {
      public <init>(android.content.Context, android.util.AttributeSet, int);
      }

      -keepclassmembers class * extends android.app.Activity {
      public void *(android.view.View);
      }

      -keepclassmembers enum * {
      public static **[] values();
      public static ** valueOf(java.lang.String);
      }

      -keep class * implements android.os.Parcelable {
      public static final android.os.Parcelable$Creator *;
      }

    2. Eclipse 메뉴/ File/ Export / Android/ Export Android Application 을 선택 후 Next 

    3. 프로젝트 선택 

    4. Keystore 선택 후 비밀번호 입력 

    5. Key Alias 선택 후 비밀번호 입력 

    6. APK 파일 선택 후 Finish


project에 proguard 폴더가 생기고 dump.txt, mapping.txt, seeds.txt, usage.txt가 생기면 완료

기타

proguard-project.txt 에 난독화 적용 제외 방법

-keepclasseswithmembers class javazoom.jl.decoder.**


난독화 후 디버깅에 대한 방법 연구 필요
스택트레이스를 mapping.txt와 비교하여 오류 위치 확인만 했음.

 

참고
안드로이드 이클립스에서 Proguard(프로가드) 사용하기
 blog.naver.com_PostPrint.nhn_blogId=huewu&logNo=11009914.pdf
Invalid proguard configuration file path Android Eclipse Error
 android.okhelp.cz_invalid-proguard-configuration-file-pa.pdf
APK 디컴파일 및 ProGuard 사용하기
 lsit81.tistory.com_entry_APK-디컴파.pdfadb shell 에서 dumpstate
 taehyo.egloos.com_4209035.pdf

 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함