.apk 파일에서 소스 코드를 얻으시겠습니까? [닫은]


21

.apk 파일이 있는데 소스 코드를 얻을 수있는 방법이 있습니까?


7
그 전에 패키지가 오픈 소스인지 확인 했습니까?
ott--

.apk는 단순히 .zip 파일입니다. 그러나 불행히도 '릴리스'용 앱 빌드는 아마도 ProGuard에 의해 보호 될 것입니다 .
Daniel López

@MatthewRead Op는 API에서 코드를 가져올 수 있는지 묻습니다.이 현상이 무엇인지, 그리고 비슷한 앱을 만들지 못하게하는 방법에 답했습니다. 그는 코드를 얻는 것을 막는 방법을 말하지 않으므로 질문에 대답합니다.
Human Being

답변:



11

운이 좋았고 .apk파일이 Proguard 또는 아날로그로 보호되지 않은 경우 APK 도구를 사용할 수 있습니다 . 타사의 폐쇄 형 바이너리 안드로이드 앱을 리버스 엔지니어링하는 도구입니다.


Apktool은 Java 코드가 아닌 Smali 코드 만 생성합니다. 이는 큰 차이입니다.
Robert

2

에서 SO의 Parnkul Garg를함으로써 comunity 위키 중 하나 :


.apk 파일 디코딩 절차, 단계별 방법 :

1 단계:

  1. 새 폴더를 만들고 디코딩하려는 .apk 파일을 복사하십시오.

  2. 이제이 .apk 파일의 확장자를 .zip으로 바꾸고 (예 : filename.apk에서 filename.zip으로 이름 바꾸기) 저장하십시오. 이제 classes.dex 파일 등에 액세스 할 수 있습니다.이 단계에서는 드로어 블을 볼 수 있지만 xml 및 java 파일은 볼 수 없으므로 계속하십시오.

2 단계:

  1. 이제이 .zip 파일을 같은 폴더 (또는 NEW FOLDER)에 추출하십시오.

  2. dex2jar를 다운로드 하여 동일한 폴더 (또는 NEW FOLDER)에 추출하십시오.

  3. classes.dex 파일을 dex2jar 폴더로 이동하십시오.

  4. 이제 명령 프롬프트를 열고 디렉토리를 해당 폴더 (또는 NEW FOLDER)로 변경하십시오. 그런 다음 작성 d2j-dex2jar classes.dex하고 Enter를 누르십시오. 이제 같은 폴더에 classes.dex.dex2jar 파일이 있습니다.

  5. java decompiler를 다운로드 하고 jd-gui를 두 번 클릭하고 열린 파일을 클릭 한 다음 해당 폴더에서 classes.dex.dex2jar 파일을 엽니 다. 이제 클래스 파일을 얻습니다.

  6. 이 클래스 파일을 모두 src 이름으로 저장하십시오 (jd-gui에서 파일-> 모든 소스 저장을 클릭하십시오). 이 단계에서 Java 소스를 얻지 만 .xml 파일을 여전히 읽을 수 없으므로 계속하십시오.

3 단계 :

이제 다른 새 폴더를여십시오

  1. 디코딩하려는 .apk 파일을 넣습니다.

  2. 최신 버전의 apktool AND apktool 설치 창을 다운로드하여 (동일한 링크에서 다운로드 할 수 있음) 동일한 폴더에 배치하십시오.

  3. framework-res.apk를 다운로드 하여 같은 폴더에 넣으십시오 (모든 apk 파일에이 파일이 필요한 것은 아니지만 아프지 않습니다)

  4. 명령 창을 엽니 다

  5. APKtool의 루트 디렉토리로 이동하여 다음 명령을 입력하십시오. apktool if framework-res.apk

  6. apktool d myApp.apk 여기서 myApp.apk는 디코딩하려는 파일 이름을 나타냅니다.

이제 해당 폴더에 파일 폴더가 있으며 apk의 xml 파일을 쉽게 읽을 수 있습니다.

4 단계 :

두 폴더 (이 경우 새 폴더)의 내용을 단일 폴더에 복사하는 단계는 아닙니다.

그리고 소스 코드를 즐기십시오 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.