developer tip

apk 파일의 코드를 추출하는 방법

copycodes 2020. 10. 24. 10:36
반응형

apk 파일의 코드를 추출하는 방법


이 질문에 이미 답변이 있습니다.

실제로 나는 cloudfilz.apk라는 .apk 파일의 코드를 추출하려고 시도하고 소스 코드에서 조작하고 싶었으므로 아래 단계를 따랐습니다.

새 폴더를 만들고 .apk 파일 (디코딩하려는)을 넣으십시오. 이제이 .apk 파일의 확장자를 .zip으로 바꾸고 (예 : filename.apk에서 filename.apk.zip으로 이름 바꾸기) 저장하십시오. .dex 파일 등 ...이 단계에서 드로어 블을 볼 수 있지만 xml 및 자바 파일은 볼 수 없습니다 ... 계속 ...

2 단계:

이제이 zip apk 파일을 동일한 폴더 (예 : NEW FOLDER)에서 추출합니다. 이제 http://code.google.com/p/dex2jar/ 링크에서 dex2jar을 다운로드 하고 동일한 폴더 (이 경우 새 폴더)에 압축을 풉니 다 ... 이제 명령 프롬프트를 열고 해당 폴더로 이동합니다. 이 경우 NEW FOLDER) .... "dex2jar classes.dex"에 도달 한 후 Enter 키를 누릅니다 ..... 이제 동일한 폴더에 classes.dex.dex2jar 파일이 생성됩니다.

=> 질문 :-나는 1 단계를 성공적으로 달성했지만 dex2jar classes.dex를 실행할 때 2 단계에서 명령 프롬프트에 오류가 발생합니다 java.lang.UnsupportedClassVersionError. 이것은 설치된 jdk 버전과 classes.dex jdk 버전 번호 간의 비 호환성 때문이라는 것을 알고 있습니다. 그래서 여기에 갇혀 있고 탈출구가 있습니다 ...


참고 : 다음 지침은 모두 별도로 지정하지 않는 한 보편적으로 적용됩니다 (모든 OS에 적용됨).


전제 조건

필요할 것이예요:

  • 작동하는 Java 설치
  • 작동하는 터미널 / 명령 프롬프트
  • 컴퓨터
  • APK 파일

단계

1 단계 : APK 파일의 파일 확장자 변경

  1. 의 파일 확장자 변경 .apk중 하나 추가하여 파일을 .zip파일 이름, 또는 변화에 확장 .apk.zip.

    예를 들어, com.example.apk이된다 com.example.zip거나 com.example.apk.zip. Windows 및 macOS에서는 파일 확장자를 변경할 것인지 묻는 메시지가 표시 될 수 있습니다. 클릭 OK또는 Add당신이 맥 OS를 사용하는 경우 :

macOS 추가 확장 확인 대화 상자

2 단계 : APK에서 자바 파일 추출

  1. 특정 폴더에 이름이 변경된 APK 파일을 추출합니다. 예를 들어, 해당 폴더를 demofolder.

    • 작동하지 않으면 WinZip 또는 7-Zip과 같은 다른 응용 프로그램에서 파일을 열어보십시오.

    • macOS의 경우 unzip터미널 (에서 사용 가능)에서 실행 시도 할 수 있습니다 /Applications/Terminal.app. 여기서 하나 이상의 인수 (압축 해제 할 파일 + 선택적 인수)가 필요합니다. man unzip문서 및 인수는를 참조하십시오 .

  2. 다운로드 (GitHub의 모든 릴리스 참조) 하고 이전 지점에서 설명한 것과 동일한 폴더에 해당 zip 파일의 압축을 풉니 다.dex2jar

  3. 명령 프롬프트 (또는 터미널)를 열고 현재 디렉터리를 이전 지점에서 만든 폴더로 변경하고 명령 d2j-dex2jar.bat classes.dex을 입력하고 Enter 키를 누릅니다. 이렇게하면 classes-dex2jar.jar동일한 폴더에 파일 이 생성 됩니다.

    • 맥 OS / 리눅스 사용자 : 교체 d2j-dex2jar.bat와 함께 d2j-dex2jar.sh. 즉, d2j-jar2dex.sh classes.dex터미널에서 실행 하고 Enter 키를 누릅니다.
  4. Java Decompiler (Github의 모든 릴리스 참조)를 다운로드 하고 압축을 푼 다음 실행 파일 / 응용 프로그램을 시작 (두 번 클릭)합니다.

  5. JD-GUI 창에서 생성 된 classes-dex2jar.jar파일을 끌어서 놓거나 File > Open File...jar 로 이동하여 찾아보십시오.

  6. 다음으로 메뉴에서 File > Save All Sources(Windows : Ctrl+ Alt+ S, macOS : + + S)로 이동합니다. 그러면 모든 패키지와 자바 파일로 구성된`classes-dex2jar.jar.src.zip '이라는 이름의 zip 파일을 저장할 위치를 묻는 대화 상자가 열립니다. (저장할 zip 파일의 이름을 바꿀 수 있습니다)

  7. 해당 zip 파일 ( classes-dex2jar.jar.src.zip)의 압축을 풀면 애플리케이션의 모든 Java 파일을 가져와야합니다.

3 단계 : xmlAPK에서 파일 가져 오기

  • 자세한 내용은 apktool웹 사이트 에서 설치 지침 등을 참조하십시오.
  • Windows :

    1. 다운로드 래퍼 스크립트 (옵션)apktool 항아리 (필수) (예를 들어 동일한 폴더에 넣습니다 myxmlfolder).
    2. 현재 디렉토리를 myxmlfolder폴더로 변경하고 apktool jar 파일의 이름을 apktool.jar.
    3. .apk같은 폴더 (예 :)에 파일을 배치합니다 myxmlfolder.
    4. 명령 프롬프트 (또는 터미널)를 열고 현재 디렉토리를 apktool저장된 폴더 (이 경우 myxmlfolder)로 변경합니다. 다음으로 명령을 입력하십시오 apktool if framework-res.apk.

      여기서 우리가하고있는 것은 프레임 워크를 설치하는 것입니다. 자세한 내용은 문서를 참조하세요 .

    5. 위의 명령은 "Framework installed ..."가됩니다.
    6. 명령 프롬프트에서 명령을 입력합니다 apktool d filename.apk(여기서는 filenameapk 파일의 이름). 파일을 디코딩해야합니다. 자세한 내용은 문서를 참조하세요 .

      그러면 파일 확장자가 없는 apk 파일의 원래 이름 인 폴더 filename.out가 출력 됩니다. 이 폴더에는 레이아웃, 드로어 블 등과 같은 모든 XML 파일이 있습니다.filename.apk

출처 : APK 파일에서 소스 코드를 얻는 방법-Comptech Blogspot


시장 또는 서명되지 않은 모든 .apk 파일

  1. If you apk is downloaded from market and hence signed Install Astro File Manager from market. Open Astro > Tools > Application Manager/Backup and select the application to backup on to the SD card . Mount phone as USB drive and access 'backupsapps' folder to find the apk of target app (lets call it app.apk) . Copy it to your local drive same is the case of unsigned .apk.

  2. Download Dex2Jar zip from this link: SourceForge

  3. Unzip the downloaded zip file.

  4. Open command prompt & write the following command on reaching to directory where dex2jar exe is there and also copy the apk in same directory.

    dex2jar targetapp.apk file(./dex2jar app.apk on terminal)

  5. http://jd.benow.ca/ download decompiler from this link.

  6. Open ‘targetapp.apk.dex2jar.jar’ with jd-gui File > Save All Sources to sava the class files in jar to java files.


step 1:

여기에 이미지 설명 입력Download dex2jar here. Create a java project and paste (dex2jar-0.0.7.11-SNAPSHOT/lib ) jar files .

Copy apk file into java project

Run it and after refresh the project ,you get jar file .Using java decompiler you can view all java class files

step 2: Download java decompiler here


Click here this is a good tutorial for both window/ubuntu.

  1. apktool1.5.1.jar download from here.

  2. apktool-install-linux-r05-ibot download from here.

  3. dex2jar-0.0.9.15.zip download from here.

  4. jd-gui-0.3.3.linux.i686.tar.gz (java de-complier) download from here.

  5. framework-res.apk ( Located at your android device /system/framework/)

Procedure:

  1. Rename the .apk file and change the extension to .zip ,

it will become .zip.

  1. Then extract .zip.

  2. Unzip downloaded dex2jar-0.0.9.15.zip file , copy the contents and paste it to unzip folder.

  3. Open terminal and change directory to unzip “dex2jar-0.0.9.15 “

– cd – sh dex2jar.sh classes.dex (result of this command “classes.dex.dex2jar.jar” will be in your extracted folder itself).

  1. Now, create new folder and copy “classes.dex.dex2jar.jar” into it.

  2. Unzip “jd-gui-0.3.3.linux.i686.zip“ and open up the “Java Decompiler” in full screen mode.

  3. Click on open file and select “classes.dex.dex2jar.jar” into the window.

  4. “Java Decompiler” and go to file > save and save the source in a .zip file.

  5. Create “source_code” folder.

  6. Extract the saved .zip and copy the contents to “source_code” folder.

  7. 여기에 소스 코드가 보관됩니다.

  8. apktool1.5.1.tar.bz2를 추출하면 apktool.jar생성됩니다.

  9. 이제“apktool-install-linux-r05-ibot.zip”의 압축을 풉니 다.

  10. “framework-res.apk”,“.apk”및 apktool.jar 복사

  11. 압축을 푼 "apktool-install-linux-r05-ibot"폴더에 붙여 넣으십시오 (13 행).

  12. 그런 다음 터미널을 열고 다음을 입력하십시오.

    – cd

    – chown -R : 'apktool.jar'

    – chown -R : 'apktool'

    – chown -R : '적합'

    – sudo chmod + x 'apktool.jar'

    – sudo chmod + x 'apktool'

    – sudo chmod + x 'aapt'

    – sudo mv apktool.jar / usr / local / bin

    – sudo mv apktool / usr / local / bin

    – sudo mv aapt / usr / local / bin

    – framework-res.apk 인 경우 apktool – apktool d .apk

참고 URL : https://stackoverflow.com/questions/7888102/how-to-extract-code-of-apk-file

반응형