본문 바로가기

android apk decompile 방법

mobile/android by 낼스 2015. 1. 2.



★ 설정 프로그램압축 

apk_reversing.zip



가. apk 추출
  방법1. ES 파일탐색기에서 프로그램 백업을 통해 apk를 추출할 수 있다.

  방법2. adb 를 이용
     1. android sdk 설치
         선행조건 : android sdk가 설치되어있어야한다.( http://developer.android.com/sdk/index.html )
          ※ 참고 : http://eaglos.tistory.com/8

 

     2. Win+R(실행) : cmd  [ adb 사용법 : http://developer.android.com/tools/help/adb.html ]

       adb devices : 연결된 장치 목록을 보여줍니다.
       adb -s 시리얼번호 명령어
       adb -s 시리얼번호 shell

       c:\> adb shell
       shell@c1skt:/ $ pm list packages -f hanflower
       pm list packages -f hanflower
       package:/data/app/com.hanflower-1.apk=com.hanflower
       exit

   ■ apk 다운로드
     c:\> adb pull -s 시리얼 /data/app/com.hanflower-1.apk c:\hanflower.apk

 

나. android apk decompile 방법
    1. apktool 다운로드
       http://code.google.com/p/android-apktool/downloads/list
       1-1. 디렉토리 생성 : c:\apkreversing
       1-2. c:\apkreversing\apktool 디렉토리 생성
            - apktool-install-windows-r05-ibot.tar.bz2 압축해제.

    2. Dex2jar 다운로드
       http://code.google.com/p/dex2jar/downloads/list 
       2-1. c:\apkreversing\dex2jar 디렉토리 생성
            - dex2jar-0.0.9.15.zip 압축해제.

    3. 환경변수 path 설정
       환경변수 path에 위에 압축 해제한
        3.1 aapt.exe가 있는 경로추가
            ex) set path=%path%;C:\WEB_APP_ADT\apk_reversing\apktool-install-windows-r05-ibot
        3.2 *.bat가 있는 경로추가
            ex) set path=%path%;C:\WEB_APP_ADT\apk_reversing\dex2jar-0.0.9.15
  
    4. class파일 추출
       실행:> c:\dex2jar classes.dex

 

다. jad : Java Decompiler
  JD-GUI : http://jd.benow.ca/
  다운로드 설치후 위에서 얻어진 jar파일을 오픈합니다.


라. 진입점이되는 java파일 파악하기
    apk파일내의 xml이 바이널리로 존재한다.
    AXMLPrinter를 이용하여 아래처럼 추출한다.
    xml파일 decompile : AXMLPrinter

    1. 다운로드
       http://code.google.com/p/android4me/downloads/list

    2. 실행방법
      ex) java -jar .\AXMLPrinter2.jar AndroidManifest.xml Mainfest.xml

 

'mobile > android' 카테고리의 다른 글

anroid life cycle  (0) 2015.02.17
android icon 해상도  (0) 2015.01.02
안드로이드 액티비티 생명주기(android life cycle)  (1) 2015.01.02
andorid jquery - aquery  (0) 2014.12.10
android tutorial  (0) 2014.11.21

댓글