.apk 파일이 있는데 소스 코드를 얻을 수있는 방법이 있습니까?
.apk 파일이 있는데 소스 코드를 얻을 수있는 방법이 있습니까?
답변:
ProGuard를 사용해도 여전히 흥미로운 통찰력을 얻을 수 있습니다. 다음은 Android : APK 파일에서 소스 코드 가져 오기에 대한 자세한 설명과 함께 StackOverflow 질문입니다 . A를 YouTube 동영상 자세한 안내 . 그리고 그것에 대한 블로그 항목 : Android APK 파일에서 소스 코드를 검색하는 방법 .
에서 SO의 Parnkul Garg를함으로써 comunity 위키 중 하나 :
.apk 파일 디코딩 절차, 단계별 방법 :
새 폴더를 만들고 디코딩하려는 .apk 파일을 복사하십시오.
이제이 .apk 파일의 확장자를 .zip으로 바꾸고 (예 : filename.apk에서 filename.zip으로 이름 바꾸기) 저장하십시오. 이제 classes.dex 파일 등에 액세스 할 수 있습니다.이 단계에서는 드로어 블을 볼 수 있지만 xml 및 java 파일은 볼 수 없으므로 계속하십시오.
이제이 .zip 파일을 같은 폴더 (또는 NEW FOLDER)에 추출하십시오.
dex2jar를 다운로드 하여 동일한 폴더 (또는 NEW FOLDER)에 추출하십시오.
classes.dex 파일을 dex2jar 폴더로 이동하십시오.
이제 명령 프롬프트를 열고 디렉토리를 해당 폴더 (또는 NEW FOLDER)로 변경하십시오. 그런 다음 작성 d2j-dex2jar classes.dex
하고 Enter를 누르십시오. 이제 같은 폴더에 classes.dex.dex2jar 파일이 있습니다.
java decompiler를 다운로드 하고 jd-gui를 두 번 클릭하고 열린 파일을 클릭 한 다음 해당 폴더에서 classes.dex.dex2jar 파일을 엽니 다. 이제 클래스 파일을 얻습니다.
이 클래스 파일을 모두 src 이름으로 저장하십시오 (jd-gui에서 파일-> 모든 소스 저장을 클릭하십시오). 이 단계에서 Java 소스를 얻지 만 .xml 파일을 여전히 읽을 수 없으므로 계속하십시오.
이제 다른 새 폴더를여십시오
디코딩하려는 .apk 파일을 넣습니다.
최신 버전의 apktool AND apktool 설치 창을 다운로드하여 (동일한 링크에서 다운로드 할 수 있음) 동일한 폴더에 배치하십시오.
framework-res.apk를 다운로드 하여 같은 폴더에 넣으십시오 (모든 apk 파일에이 파일이 필요한 것은 아니지만 아프지 않습니다)
명령 창을 엽니 다
APKtool의 루트 디렉토리로 이동하여 다음 명령을 입력하십시오.
apktool if framework-res.apk
apktool d myApp.apk
여기서 myApp.apk는 디코딩하려는 파일 이름을 나타냅니다.
이제 해당 폴더에 파일 폴더가 있으며 apk의 xml 파일을 쉽게 읽을 수 있습니다.
두 폴더 (이 경우 새 폴더)의 내용을 단일 폴더에 복사하는 단계는 아닙니다.
그리고 소스 코드를 즐기십시오 ...