programing

APK 파일에서 프로젝트로 리버스 엔지니어링

padding 2023. 8. 11. 21:33
반응형

APK 파일에서 프로젝트로 리버스 엔지니어링

제가 실수로 이클립스에서 프로젝트를 지웠으며, 남은 것은 핸드폰으로 전송한 APK 파일뿐입니다.응용 프로그램을 .apk 파일로 내보내는 과정을 되돌려서 프로젝트를 돌려받을 수 있는 방법이 있습니까?

알 수 없는 APK 파일에서 Java 코드를 생성할 수 있는 두 가지 유용한 도구가 있습니다.

  1. 덱스2jar에서 덱스2jar 도구를 다운로드합니다.

  2. 도구를 사용하여 APK 파일을 JAR: Windows:로 변환합니다.

     $ d2j-dex2jar.bat demo.apk
     dex2jar demo.apk -> ./demo-dex2jar.jar
    

    MacOS / Linux:

     $ d2j-dex2jar.sh -f demo.apk -o demo.jar
    
  3. JAR 파일이 생성되면 JD-GUI를 사용하여 JAR 파일을 엽니다.Java 파일이 표시됩니다.

출력은 다음과 유사합니다.

JD GUI

그런 다음 다른 도구를 사용하여 APK 파일에서 AndroidManifest.xml 및 리소스 파일(예: 이미지, 변환 등)을 검색할 수 있습니다.

우선, 저는 비디오를 추천합니다. 이것이 당신의 모든 의심을 풀어줄 것입니다.

만약 그렇지 않다면, 부디 그것을 참조하십시오.

Procedure for decoding .apk files, step-by-step method:

Step 1:

새 폴더를 만들고 디코딩할 .apk 파일을 넣습니다. 이 ..apk을 로다철하에 합니다..zip(filename: it.pk 를 ) 및 save to to filename.zip).

.zip으로 변환하는 데 문제가 있으면 다음을 참조하십시오.

.zip을 얻은 후 classes.dex 파일 등을 얻을 수 있습니다.이 단계에서는 그릴 수 있지만 xml 및 java 파일은 볼 수 없으므로 계속 진행합니다.확장이 나타나지 않으면 구성을 확인합니다.

Step 2:

이제 동일한 폴더에서 이 zippack 파일의 압축을 풉니다.이제 여기서 덱스2jar를 다운로드합니다.

동일한 폴더에 압축을 풉니다.이제 명령 프롬프트를 열고 해당 폴더로 디렉터리를 변경합니다.

그고쓰다를 쓰세요.dex2jar classes.dexEnter 키를 누릅니다.이제 당신은classes.dex.dex2jar파일이 같은 폴더에 있습니다.

그런 다음 Java 디컴파일러를 다운로드합니다.

이제 jd-gui를 두 번 클릭하고 열린 파일을 클릭합니다.그럼 열어봐요classes.dex.dex2jar해당 폴더에서 파일을 가져옵니다.이제 클래스 파일을 가져와 이 모든 클래스 파일(파일 클릭 후 jd-gui에서 "모든 소스 저장" 클릭)을 src 이름으로 저장합니다. 파일 을 풉니다. zip 파일 압축을 풉니다.(classes_dex2jar.src.zip)그러면 애플리케이션의 모든 Java 파일을 얻을 수 있습니다.

이 단계에서는 Java 소스를 얻지만 xml 파일은 여전히 읽을 수 없으므로 계속 진행합니다.

Step 3:

이제 다른 새 폴더를 열고 이 파일을 넣습니다.

  1. 디코딩할 .apk 파일을 저장합니다.

  2. And용 Apk 도구 다운로드

Google을 사용하여 창을 설치하고 동일한 폴더에 넣습니다.

  1. 구글을 사용하여 framework-res.apk 파일을 다운로드하고 동일한 폴더에 넣습니다(모든 apk 파일에 framework-res.apk 파일이 필요한 것은 아닙니다).

  2. 명령 창 열기

  3. 하여 APKtool 명령을합니다.apktool if framework-res.apk.

는 위명령다같합니다야아과가 되어야 .Framework installed ....

  1. apktool "appName.apk"("appName"은 디코딩할 응용프로그램을 나타냅니다)를 클릭하면 해당 폴더에 파일 폴더가 생성되고 xml 파일도 쉽게 읽을 수 있습니다.

Step 4: 마침내 우리는 그것을 얻었습니다.res/시작할 때 우리의 목표인 프로젝트의 자바 코드 뿐만 아니라.

P.S. 위의 단계에서 res 폴더를 가져올 수 없는 경우 새 폴더를 설치하십시오.

  • Java 1.7이 설치되어 있습니까?Apktool 2.x 설치
  • Java 1.6 이상이 설치되어 있습니까?Apktool 1.x 설치

Enjoy and happy coding

소프트웨어 없음 & 너무 많은 단계 없음..

APK를 업로드하고 이 사이트에서 모든 리소스를 받으십시오.

https://www.apkdecompilers.com/

이 웹사이트는 APK 파일에 포함된 코드를 분해하고 파일의 다른 모든 자산을 추출합니다.

참고: 저는 이 웹사이트에서 1분 이내에 APK 파일을 압축 해제하고 코드를 얻습니다.

업데이트 1:

다른 온라인 디컴파일러 사이트를 찾았는데,

http://www.javadecompilers.com/apk/ - 팝업 차단을 요청하는 작업이 계속되지 않음

업데이트 2:

플레이 스토어에서 pk 디컴파일러 앱을 찾았는데,

https://play.google.com/store/apps/details?id=com.njlabs.showjava

우리는 안드로이드 폰에서 apk 파일을 압축 해제할 수 있습니다. 또한 우리는 이 앱에서 java & xml 파일을 볼 수 있습니다.

업데이트 3:

Android studio 2.2 버전의 다른 옵션인 Analyze APK 기능을 사용할 수 있습니다.

빌드 -> APK 분석 -> APK 선택 -> 결과를 제공합니다.

enter image description here

Android Studio 3.5에서는 매우 쉬워서 1분 만에 달성할 수 있습니다.다음은 단계별 프로세스입니다.

1: Android Studio 열기, 창 버튼 누르기 -> Android Studio 입력 -> 아이콘을 클릭하면 다음과 같은 Android Studio 스플래시 화면이 열립니다.

enter image description here

2: 여기서 "Profile or debug APK" 옵션을 클릭하고 apk 파일을 선택한 후 ok를 누릅니다.

enter image description here

3: 그것은 apk의 크기에 따라 당신의 매니페스트와 자바 클래스를 1분 안에 모두 열 입니다.

enter image description here

바로 그겁니다.

사실 그렇지 않아요.smali 또는 dex2jar같은 수많은 덱스 디스어셈블러/디컴파일러 제품군이 있으며, 이는 반인간 판독 가능한 출력을 생성합니다(dex2jar의 경우 JD-GUI와 같은 것을 사용하여 Java 코드를 얻을 수 있지만 프로세스가 완벽하지 않으며 소스 코드를 100% 재생성할 수 있는 가능성은 매우 낮습니다.그러나 소스 트리 재구성을 시작할 수 있는 위치가 제공될 수 있습니다.

이것을 하는 새로운 방법이 있습니다.

Android Studio 2.2에는 APK Analyzer가 있어 apk에 대한 많은 정보를 제공합니다. 여기에서 확인하십시오. - http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html

Ap

이 도구를 사용해 보십시오: https://decompile.io , iPhone/iPad/Mac에서 실행됩니다.

네, 당신은 당신의 프로젝트를 되찾을 수 있습니다. 이름을 바꾸면 됩니다.yourproject.apk을 로다철하에 합니다.yourproject.zip그러면 ZIP 파일 안에 있는 모든 파일을 얻을 수 있습니다.파일 확장자를 .apk에서 .zip으로 변경하고 있습니다.에서 ZIP 파일의 을 풉니다.classes.dex파일을 작성하고 다음 방법으로 압축을 해제합니다.

먼저 DEX의 모든 (컴파일된) 클래스를 JAR로 추출하는 도구가 필요합니다.중국 학생이 만든 덱스2jar라는 것이 있습니다.

그런 다음 JD-GUI를 사용하여 JAR의 클래스를 소스 코드로 압축 해제할 수 있습니다.덱스2jar는 일부 최적화를 적용하기 때문에 결과 소스 코드는 상당히 읽을 수 있어야 합니다.

다음은 APK 파일에서 소스 코드로 역엔지니어링을 수행하는 데 사용할 수 있는 몇 가지 도구입니다.

  1. 덱스2jar
  2. 자바 디컴파일러
  3. Pktool
  4. Pk 분석기

Android 플랫폼의 경우 Play Store에서 사용할 수 있는 ShowJava를 사용할 수 있습니다.

앱 및 는 앱인터이통참수있생다성조저으니에 저장됩니다.ShowJava에 있습니다./sdcard으로 과와함께결과 ..jar파일을 변환합니다.

메인 뷰 하단에 광고 배너가 있어 앱은 무료이지만, 앱 내 구매 옵션(3,99$)이 있어 이를 제거할 수 있습니다.앱 내 구매는 광고 배너를 제거하는 것 외에 어떤 기능도 추가하지 않습니다.

공개: 저는 앱 개발자도 아니고 어떤 식으로든 그와 제휴하지도 않았습니다.

이 작업을 수행하려면 아래 단계를 따르거나 단순히 이 프로세스에 pkToJava gem을 사용하면 작업에 필요한 도구를 설치할 수도 있습니다.

  • pk 파일을 zip으로 변환
  • 파일의 압축을 풉니다.
  • 클래스를 추출합니다.
  • 덱스를 jar로 사용하여 class.dll을 jar 파일로 변환합니다.
  • jadx gui를 사용하여 jar 파일을 java 소스 코드로 엽니다.

전문적인 대안을 찾고 있다면 PNF 소프트웨어의 JEB 디컴파일러를 살펴보십시오.

대부분의 코드를 압축 해제할 수 있는 데모 버전이 있습니다.

APK Studio는 별도로 다운로드해야 하는 Apktool, jadx, ADB 및 Uber APK signer와 같은 타사 도구에 의존하는 또 다른 도구입니다.

언급URL : https://stackoverflow.com/questions/12732882/reverse-engineering-from-an-apk-file-to-a-project

반응형