APK 파일에서 프로젝트로 리버스 엔지니어링
제가 실수로 이클립스에서 제 프로젝트를 지웠으며, 남은 것은 핸드폰으로 전송한 APK 파일뿐입니다.응용 프로그램을 .apk 파일로 내보내는 과정을 되돌려서 프로젝트를 돌려받을 수 있는 방법이 있습니까?
알 수 없는 APK 파일에서 Java 코드를 생성할 수 있는 두 가지 유용한 도구가 있습니다.
덱스2jar에서 덱스2jar 도구를 다운로드합니다.
도구를 사용하여 APK 파일을 JAR: Windows:로 변환합니다.
$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jarMacOS / Linux:
$ d2j-dex2jar.sh -f demo.apk -o demo.jarJAR 파일이 생성되면 JD-GUI를 사용하여 JAR 파일을 엽니다.Java 파일이 표시됩니다.
출력은 다음과 유사합니다.
그런 다음 다른 도구를 사용하여 APK 파일에서 AndroidManifest.xml 및 리소스 파일(예: 이미지, 변환 등)을 검색할 수 있습니다.
-
$ java -jar apktool.jar -q decode -f demo.apk -o outputDir -
$ apkinfo demo.apk -
$ ninjadroid demo.apk --all --extract
우선, 저는 비디오를 추천합니다. 이것이 당신의 모든 의심을 풀어줄 것입니다.
만약 그렇지 않다면, 부디 그것을 참조하십시오.
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파일이 같은 폴더에 있습니다.
이제 jd-gui를 두 번 클릭하고 열린 파일을 클릭합니다.그럼 열어봐요classes.dex.dex2jar해당 폴더에서 파일을 가져옵니다.이제 클래스 파일을 가져와 이 모든 클래스 파일(파일 클릭 후 jd-gui에서 "모든 소스 저장" 클릭)을 src 이름으로 저장합니다. 파일 을 풉니다. zip 파일 압축을 풉니다.(classes_dex2jar.src.zip)그러면 애플리케이션의 모든 Java 파일을 얻을 수 있습니다.
이 단계에서는 Java 소스를 얻지만 xml 파일은 여전히 읽을 수 없으므로 계속 진행합니다.
Step 3:
이제 다른 새 폴더를 열고 이 파일을 넣습니다.
디코딩할 .apk 파일을 저장합니다.
And용 Apk 도구 다운로드
Google을 사용하여 창을 설치하고 동일한 폴더에 넣습니다.
구글을 사용하여 framework-res.apk 파일을 다운로드하고 동일한 폴더에 넣습니다(모든 apk 파일에 framework-res.apk 파일이 필요한 것은 아닙니다).
명령 창 열기
하여 APKtool 명령을합니다.
apktool if framework-res.apk.
는 위명령다같합니다야아과가 되어야 .Framework installed ....
- 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 선택 -> 결과를 제공합니다.
Android Studio 3.5에서는 매우 쉬워서 1분 만에 달성할 수 있습니다.다음은 단계별 프로세스입니다.
1: Android Studio 열기, 창 버튼 누르기 -> Android Studio 입력 -> 아이콘을 클릭하면 다음과 같은 Android Studio 스플래시 화면이 열립니다.
2: 여기서 "Profile or debug APK" 옵션을 클릭하고 apk 파일을 선택한 후 ok를 누릅니다.
3: 그것은 apk의 크기에 따라 당신의 매니페스트와 자바 클래스를 1분 안에 모두 열 것입니다.
바로 그겁니다.
사실 그렇지 않아요.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
이 도구를 사용해 보십시오: https://decompile.io , iPhone/iPad/Mac에서 실행됩니다.
네, 당신은 당신의 프로젝트를 되찾을 수 있습니다. 이름을 바꾸면 됩니다.yourproject.apk을 로다철하에 합니다.yourproject.zip그러면 ZIP 파일 안에 있는 모든 파일을 얻을 수 있습니다.파일 확장자를 .apk에서 .zip으로 변경하고 있습니다.에서 ZIP 파일의 을 풉니다.classes.dex파일을 작성하고 다음 방법으로 압축을 해제합니다.
먼저 DEX의 모든 (컴파일된) 클래스를 JAR로 추출하는 도구가 필요합니다.중국 학생이 만든 덱스2jar라는 것이 있습니다.
그런 다음 JD-GUI를 사용하여 JAR의 클래스를 소스 코드로 압축 해제할 수 있습니다.덱스2jar는 일부 최적화를 적용하기 때문에 결과 소스 코드는 상당히 읽을 수 있어야 합니다.
다음은 APK 파일에서 소스 코드로 역엔지니어링을 수행하는 데 사용할 수 있는 몇 가지 도구입니다.
- 덱스2jar
- 자바 디컴파일러
- Pktool
- 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
'programing' 카테고리의 다른 글
| 비디오 요소를 올바르게 언로드/파괴하는 방법 (0) | 2023.08.11 |
|---|---|
| asp.net core 2.0 - 값은 null일 수 없습니다.매개 변수 이름: connectionString (0) | 2023.08.11 |
| Android에서 사용자의 위치를 얻는 좋은 방법 (0) | 2023.08.06 |
| 구성 섹션 '시스템'입니다.web.extensions'이(가) 섹션 선언이 없으므로 읽을 수 없습니다. (0) | 2023.08.06 |
| MySQL 중복 삽입에서 자동 증분 방지 (0) | 2023.08.06 |





