모바일2014. 10. 28. 13:58

 

 

오늘은 다른 방법으로 APK파일을 디 컴파일 하는 방법에 대해서 알아보자 

우리가 APK파일을 디 컴파일 하는 가장 큰 이유는 

필요한 부분을 소스 코드 부분에 첨가 하기 위해서도 하지만, 

소스를 디 컴파일해서 어떻게 코딩이 되어 있는지 확인하여 루틴을 이해하는 것도 

한 가지 목적이다.



먼저 필요한 Tool은 

 1) java 설치는 필수이다.

 2) Dex2Jar 를 다운 받아야 한다.

 3) jd-GUI 가 필요하다.(소스 파일로 변환해서 보기 위해)



○ 툴 다운로드 받기 


    1) Java의 경우는 너무나도 유명하고 이 앞전에도 다운받는 위치를 설명 

        했기 때문에 별도로 설명하지 않겠지만, 

        java가 설치되어 있지 않다면 java를 다운로드 받아 설치하기 바랍니다.


    2) Dex2jar 

        - 다운로드 주소 : https://code.google.com/p/dex2jar/downloads/list


       해당 페이지에서 가장 최신 버전을 다운로드 받으면 되겠다.


   3) jd-GUI 

       - 다운로드 주소 : https://code.google.com/p/innlab/downloads/list

      

      해당 페이지에서 자산의 OS 버전에 맞는 것으로 다운로드 받으면 되겠다.

              


○ APK 디컴파일 하기 


    1) 디컴파일 하고자 하는 APK 파일의 확장자를 zip으로 변경 

   

    2) 변경한 압축파일을 압축해제 후 classes.dex 파일을 추출함

    

    3) Dex2jar 를 활용하여 추출한 classes.dex 파일을 변환 

        하지만, Dex2jar를 활용할 때 APK을 직접 주어도 변환이 되고 있음


      - 실행 예시 화면 - 



    4) 변환된 파일을 jd-GUI 툴로 불러서 소스 코드 확인




    5) 필요한 경우 소스 코드를 저장하여 활용 하거나 검색을 활용하여 필요한 부분 확인



안드로이드 특성상 디 컴파일이 가능하기 때문에 

난독화를 하거나 디 컴파일 하더라도 분석이 어렵도록 하기 위한 방법들이 

많이 동원 되고 있다.



 

 

Posted by IT초보아빠