Android DEX(VM 바이트코드) 파일을 해당 Java 소스 코드로 디컴파일하려면 어떻게 해야 하나요?
이 도구를 사용하세요:
dex2jar가 몇 가지 최적화를 수행하므로 소스 코드는 상당히 읽기 쉽습니다.
다음은 디컴파일하는 방법에 대한 절차입니다:
test_apk-debug.apk의 classes.dex를 test_apk-debug_dex2jar.jar로 변환합니다.
d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex
참고:** Windows 시스템에서는 모든 '.sh' 스크립트가 '.bat' 스크립트로 대체됩니다.
JD-GUI에서 jar 열기
여기서 두 가지 주요 경로를 따라 약간 명확히 할 수 있는 시행하십시오 그리웠댔지 해결할 수 있습니다.
달빅 디컴파일 바이트코드 (인덱스) 를 읽을 수 있는 Java 소스. 쉽게 할 수 있는 dex2jar 및 [jd gui] [2] 와 프레드 언급. 그 결과 소스가 유용한 app 의 기능을 읽고 이해하기 어려울 수 있지만, 100% 깔의 코드. 즉, 소스, 확장하지만 can& 읽을 수 있습니다 # 39, t really 수정 및 리패키지 거잖나. 만일 함께 소스 코드 난독화 소스 설정되었습니다 프로가드 결과 상당히 어려운 풀다 됩니다.
다른 주요 분해할 수 있는 대안은 바이트코드 메리 이 목적을 정확하게 설계됨, 어셈블리 언어. 이렇게 할 수 있는 가장 쉬운 방법은, ve i& # 39 는 파크토르. # 39 점, 한 번 you& 파크토르 설치했거나, ve got it 부서 (apk 파일 및 you& 됩니다, ll 물러서요 # 39 는 각 클래스의 메리 포함된 파일 응용 프로그램. 심지어 복귀시킴 클래스를 생성하여 메리 메리 읽고 수정할 수 있습니다) 에서 완전히 새로운 자바 소스 (그러기 위해 수 컴파일하는 자야바 소스를 리클레스 파일 자바스 관심용 변환하시겠습니까 너회의 리클레스 파일 이데스 파일의 함께 Android& # 39 에 dx 컴파일러와 사용할 박스말리 (메리 역어셈블러) 변환하십시오 이스마리 이데스 파일의 이 질문 를 설명한 대로. 여기에 바로 가기 생길 수 있다). # 39 번, re 수행됨 you& 패키지화하기 apk 백업하십시오 파크토르 함께 다시 쉽게 할 수 있습니다. 참고로 파크토르 언약보다는 예증으로 결과 apk 도왔으매 you& # 39, ll 처리해야 할 수 있는 마찬가지로 다른 안드로이드 응용 프로그램.
이 경우 메리 검색하기를 라우트를 시도하시려면 APK 스튜디오 할 수 있습니다, IDE 위 단계를 자동화하는 데 도움이 되는 디 컴파일 및 설치 및 일부 it 재컴파일할 필요 apk 를 디바이스입니다.
한마디로 보다 쉽게 읽을 수 있지만, 이는 거의 사용할 수 있는 옵션은 인컨텍스트 디컴파일 Java 로 분해할 수 있지만, 이는 돌이킬 수 없는 것, 또는 메리 더 읽을 수 있는 수정된 앱을 선택하는 데 훨씬 다양한 변화와 리패키지 외곽진입 아니하였으매 you& 따라 결정됩니다. # 39, re 보았으매 달성할 수 있도록 노력해야 합니다.
마지막으로, 이 제안으로 [감히] 의 8 역시 메모. # 39 리 타겟팅 it& 리클레스 파일 및 java 파일들을 이데스 변환할지 도구에서는 자파크, s 도왔으매 그들은 일반 java 정적 분석 툴을 사용해서 분석될 수 있다.
[2]: q = 제드기 http://java.decompiler.free.fr/?
나는 실제로 여기로 가는 것을 추천한다: https://github.com/JesusFreke/smali
DEX 파일을위한 가장 뛰어난 리버스 엔지니어링 도구 인 BAKSMALI를 제공합니다. 이 도구는 유명한 안드로이드용 ROM을 만든 예수프레케가 만든 것입니다.
[프레드], 좀 더 완전한 버전의 < sup> (https://stackoverflow.com/users/507351/fred) & # 39 의 [답변] (https://stackoverflow.com/a/4177581/710951) :< /sup>;
먼저 필요한 모든 (컴파일됨) 에서 할 수 있는 툴이 푸십시오 클래스뿐만 덱스 jar.
[Jd gui], 2 를 사용할 수 있습니다 다음 디컴파일 소스 코드에 대한 클래스가 jar. 그 결과 일부 최적화 등 dex2jar qic 판독값, 소스 합니다.
[파크토르] 사용할 수 있습니다 (https://ibotpeaches.github.io/Apktool/). 또 모든 클래스뿐만 automatically 푸십시오 ('이데스'), 자원 ('그라크') 로 전환할 예정이다, 또한 XML_ _human-readable 관심용 binary XML 디사시기레 클래스 당신꺼에요.
Apk 를 위해 이 한 말씀 파크토르 decode 디렉터리입니다 관심용 modify 그리웠댔지, 마지막으로 다시 encode apk. # 39 의 다란다 that&
하지만 이를 읽을 수 있어야 합니다, 심지어 편집하십시오 you& 경우 익숙한 [야스민] # 39, re (http://jasmin.sourceforge.net). Java 소스 스케쳐내 Manual way 놓고 가십시오.
가끔 '코드', '/' 파크토르 dex2jar 줄바꿈할 확보하십시오 사용할 때, 대부분의 특히 반복됩니다. 이를 방지하기 위해 [자드스] (https://github.com/skylot/jadx) 를 '/', '.jar 로 java 소스 코드를 바이트코드로 역컴파일 달빅 리클레스 파일 첫 dex2jar 만들지 않고 있다' 는 '' (파크토르 /dev/raw/raw1 dex2jar 생쥐라.). 또한 활성 및 오픈 소스 개발. 심지어 gui 남조선 gui 에 있다. 시도해 보십시오!
사용한
jd gui dex2jar + 1. 2. javadecompilers.com 3. 이냐리피 4. 파크토르
하지만 누구도 google& # 39 의 고유한 툴과도 뛴다.
일단 너회의 APK 파일을 다운로드할 수 있도록 해야 합니다 다음 단계를 editable java 코드 / 문서.
바스 카르 '& # 39 의 비교적 오래된 오토메이티드 다히라이 이후 몇 년 동안' 로 규정했다.
이것은 내 최신값 (2019년) 정답:
'인덱스' 를 '에서' jave 수르스고데, 현재 이 두 종류의 해결책:
[] (https://i.stack.imgur.com/2Rlas.png)!
'인덱스 파일 열기' 2.
[] (https://i.stack.imgur.com/8A9k2.png)!
그리고 java 소스 코드를 확인할 수 있다.
[] (https://i.stack.imgur.com/Pojp8.png)!
'-' 파일을 >, 3. '다른 이름으로 저장 gradle project'
[] (https://i.stack.imgur.com/aPZxq.png)!
그럼 attaboy jave 수르스고데:
[] (https://i.stack.imgur.com/xHtcW.png)!
다운로드하십시오 [dex2jar zip] (https://github.com/pxb1988/dex2jar/releases), 'd2j-dex2jar.sh', 즉 잡을라는데 압축을
예:
➜ v3.4.8 /Users/crifan/dev/dev_tool/android/reverse_engineering/dex-tools/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.huili.readingclub8825612.dex
dex2jar com.huili.readingclub8825612.dex -> ./com.huili.readingclub8825612-dex2jar.jar
➜ v3.4.8 ll
-rw------- 1 crifan staff 9.5M 3 21 10:00 com.huili.readingclub8825612-dex2jar.jar
-rw------- 1 crifan staff 8.4M 3 19 14:04 com.huili.readingclub8825612.dex
여기서 '데모' 프로키온 변환하십시오 java 소스 코드를 만든다.
[procyon-decompiler-0.5.34.jar] 다운로드하십시오 (https://bitbucket.org/mstrobel/procyon/downloads/procyon-decompiler-0.5.34.jar)
다음 구문을 사용하여.
java - jar /path/to/procyon-decompiler-0.5.34.jar jar your_to_decompile.jar 우스푸스폴더나미 - o '-'
예:
java - jar /Users/crifan/dev/dev_tool/android/reverse_engineering/Procyon/procyon-decompiler-0.5.34.jar jar com.huili.readingclub8825612-dex2jar.jar com.huili.readingclub8825612 - o '-'
편집기에는 사용하여 [브스코드] (https://book.crifan.com/books/best_editor_vscode/website/) 를 오픈 소스 코드, 익스포트한 다음과 같습니다.
[] (https://i.stack.imgur.com/Nk62j.png)!
변환 수정: ',' > 자드스 ',' > 프로키온 크레프 > ',' 'jd gui'
추천합니까 사용: (# 39 한 단계 solution&, s) '' 자드스
안드로이드 역엔지니어링 가능하다는 . 다음 단계에 따라 자야바 파일이 apk 파일을 통해 얻을 수 있습니다.
데비안 %s/dbase/ext_table. 안드루가드 최근 파이썬 패키지 '':
Description-en: full Python tool to play with Android files
Androguard is a full Python tool to play with Android files.
* DEX, ODEX
* APK
* Android's binary xml
* Android resources
* Disassemble DEX/ODEX bytecodes
* Decompiler for DEX/ODEX files
해당 패키지를 설치.
sudo apt-get install androguard python-networkx
역컴파일 인덱스 파일:
$ androdd -i classes.dex -o ./dir-for-output
클라세이데스 푸십시오 '+' 에서 Apk 디컴파일:
$ androdd -i app.apk -o ./dir-for-output
Apk 파일은 파일 압축을 풀 수 있는 자바 아카이브 (JAR) 에서 통해 아카이빙할, 더 바랄 게 없다.
$ unzip app.apk -d ./dir-for-output
대부분의 이러한 문제의 답을 게시하기를 많은 변화가 있었다. 현대 여러 가지 있을 수 있는 간단한 도구로 GUI& # 39 에, 다음과 같습니다.
APK Easy Tool for Windows (GUI tool, friendly)
Bytecode Viewer - APK/Java Reverse Engineering Suite
URET Android Reverser Toolkit
Xda Developers 를 위한 최적의 장소로 것들이었다고요 켜있을 했다.
할 수 있습니다 (https://bitbucket.org/mstrobel/procyon/wiki/Java% 20decompiler), 이는 덱스 역컴파일 자드스 위한 완벽한 도구입니다.
Yes, it 및 (내 0) 에서 온라인으로 이용할 수 있습니다) 새로운 사이트: http://www.javadecompilers.com/apk/
이 작업을 수행할 수 있습니다 다음 5 단계:
[이 컴팩트형 높여줍니까 이런 것들을 당신꺼에요 때에도 자동으로 설치 필수 도구] (http://www.singhajit.com/convert-apk-file-to-java-code/)
apk 파일을 zip 변환하십시오 1. 2. 파일의 압축을 풉니다. 클라세이데스 푸십시오 it 에서 3. 4. 을 jar 로 클라세이데스 변환하십시오 jar 파일을 사용하여 인덱스 5. 자드스 gui 를 jar 파일로 열어보려면 java 소스 코드를 사용하여