DEX를 Java 소스 코드로 디컴파일하기

Android DEX(VM 바이트코드) 파일을 해당 Java 소스 코드로 디컴파일하려면 어떻게 해야 하나요?

질문에 대한 의견 (4)
해결책

간단합니다.

이 도구를 사용하세요:

  1. dex2jar로 dex 파일을 jar 파일로 번역하기

  2. jd-gui - jar의 자바 파일 보기

dex2jar가 몇 가지 최적화를 수행하므로 소스 코드는 상당히 읽기 쉽습니다.

절차:

다음은 디컴파일하는 방법에 대한 절차입니다:

1단계:

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' 스크립트로 대체됩니다.

dex2jar 문서

2단계:

JD-GUI에서 jar 열기

해설 (11)

여기서 두 가지 주요 경로를 따라 약간 명확히 할 수 있는 시행하십시오 그리웠댔지 해결할 수 있습니다.

달빅 디컴파일 바이트코드 (인덱스) 를 읽을 수 있는 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/?

해설 (2)

나는 실제로 여기로 가는 것을 추천한다: https://github.com/JesusFreke/smali

DEX 파일을위한 가장 뛰어난 리버스 엔지니어링 도구 인 BAKSMALI를 제공합니다. 이 도구는 유명한 안드로이드용 ROM을 만든 예수프레케가 만든 것입니다.

해설 (4)

[프레드], 좀 더 완전한 버전의 &lt sup&gt (https://stackoverflow.com/users/507351/fred) & # 39 의 [답변] (https://stackoverflow.com/a/4177581/710951) :&lt /sup>;

수작업식 운행에서어떠한

먼저 필요한 모든 (컴파일됨) 에서 할 수 있는 툴이 푸십시오 클래스뿐만 덱스 jar.

39 라는 there& 한 dex2jar 에 의해 만들어진, 이는 중국 소개했다.

[Jd gui], 2 를 사용할 수 있습니다 다음 디컴파일 소스 코드에 대한 클래스가 jar. 그 결과 일부 최적화 등 dex2jar qic 판독값, 소스 합니다.

자동 운행에서어떠한

[파크토르] 사용할 수 있습니다 (https://ibotpeaches.github.io/Apktool/). 또 모든 클래스뿐만 automatically 푸십시오 ('이데스'), 자원 ('그라크') 로 전환할 예정이다, 또한 XML_ _human-readable 관심용 binary XML 디사시기레 클래스 당신꺼에요.

  • 해체 항상 함께 especially 디 컴파일, 보다 더 강력한 Jar (pro 난독화 가드! *

Apk 를 위해 이 한 말씀 파크토르 decode 디렉터리입니다 관심용 modify 그리웠댔지, 마지막으로 다시 encode apk. # 39 의 다란다 that&

      • 디스라스 블레스 Important: 파크토르. T , * # 39 이 doesn& 디컴파일.

        39, 생성된 Java 소스 코드 won& 수 없다.

        하지만 이를 읽을 수 있어야 합니다, 심지어 편집하십시오 you& 경우 익숙한 [야스민] # 39, re (http://jasmin.sourceforge.net). Java 소스 스케쳐내 Manual way 놓고 가십시오.

해설 (0)

가끔 '코드', '/' 파크토르 dex2jar 줄바꿈할 확보하십시오 사용할 때, 대부분의 특히 반복됩니다. 이를 방지하기 위해 [자드스] (https://github.com/skylot/jadx) 를 '/', '.jar 로 java 소스 코드를 바이트코드로 역컴파일 달빅 리클레스 파일 첫 dex2jar 만들지 않고 있다' 는 '' (파크토르 /dev/raw/raw1 dex2jar 생쥐라.). 또한 활성 및 오픈 소스 개발. 심지어 gui 남조선 gui 에 있다. 시도해 보십시오!

해설 (8)

39 의 there& 언급한 이후, 아무도 이 하나 더 도구에서는: 데드 홈_페이지

설치 방법 및 일부 설명. 설치.

그것은 매우 흥미로운 연구 사용되는 주요 보안 시장 애플리케이션 (not really you& 경우 관련, 그냥 # 39, re curious): 설문 안드로이드 응용 프로그램 보안

해설 (2)

사용한

jd gui dex2jar + 1. 2. javadecompilers.com 3. 이냐리피 4. 파크토르

하지만 누구도 google& # 39 의 고유한 툴과도 뛴다.

해설 (1)

일단 너회의 APK 파일을 다운로드할 수 있도록 해야 합니다 다음 단계를 editable java 코드 / 문서.

  1. Apk 파일을 zip 파일로 변환할 수 있습니다 (반면, t, save&quot &quot 검색하기를 don& 다운로드하십시오 # 39 로 시작합니다. 그냥 옵션을 통해 as&quot 절약합니다 "; 이렇게 성서속에 너회의 확장명은 tpc. .zip) 수행여 파크토르 방지할 수 있습니다.
  2. 푸십시오 섬피렌임벌린데스트 아니했다고 zip 파일을 찾을 수 있습니다. 이제 변환할지 덱스 - &gt 필요하다. 리클레스
  3. 이를 위해 필요한 dex2jar&quot "; (다음에서 다운로드할 수 있습니다. (http://code.google.com/p/dex2jar/) 에서 추출한 후, [D:\dex2jar-0.09&gt, dex2jar 섬피렌임벌린데스] , 얻을 수 있는 것 같은 언급하십시오 명령 프롬프트 (점에 유의해야 합니다 너회의 섬피렌임벌린데스 동일한 폴더 안에 있는 dex2jar 유지할 수 있습니다.)
  4. Http://www.viralpatel.net/blogs/download/jad/jad.zip 에서 다운로드 및 푸십시오 자드 거잖나. 한 번, 두 개의 파일이 같은 추출됨 &quot jad.exe&quot 볼 수 있습니다. 및 &quot Readme.txt"; (간혹 jad.txt&quot "; 5월 좁히어 대신,, 그럼 그냥 &quot jad.exe&quot 변경하십시오 아스트레서 확장명은 실행할 수 있다)
  5. 결국 같은 언급하십시오 명령 프롬프트 합니다 [D:\jad&gt, 자드 - 스자바 유르피렌마이클레스] 문서 파일 압축을 editable 자바 클래스에 분석할 예정이다.
해설 (1)

바스 카르 '& # 39 의 비교적 오래된 오토메이티드 다히라이 이후 몇 년 동안' 로 규정했다.

이것은 내 최신값 (2019년) 정답:

주 로직

'인덱스' 를 '에서' jave 수르스고데, 현재 이 두 종류의 해결책:

  • '한 단계': '인덱스' 를 '직접' jave 수르스고데 변환하십시오
  • '2 단계': '인덱스' 를 '항아리', '항아리' 의 첫 번째 변환하십시오 변환하십시오 jave 수르스고데 ''

한 단계 해결책: '인덱스' 직접 'jave 수르스고데'

툴과도

프로세스

  1. 다운로드하십시오 [jadx-0.9.0.zip] (https://github.com/skylot/jadx/releases/download/v0.9.0/jadx-0.9.0.zip) 에서 볼 수 있는 '또는', '빈' 폴더에서는 압축을 풀지 명령행을 자드스 gui 자드스 ',' 더블 클릭하여 실행하십시오 gui 버전을 gui 버전: 'gui 자드스'

[] (https://i.stack.imgur.com/2Rlas.png)!

'인덱스 파일 열기' 2.

[] (https://i.stack.imgur.com/8A9k2.png)!

그리고 java 소스 코드를 확인할 수 있다.

[] (https://i.stack.imgur.com/Pojp8.png)!

'-' 파일을 &gt, 3. '다른 이름으로 저장 gradle project'

[] (https://i.stack.imgur.com/aPZxq.png)!

그럼 attaboy jave 수르스고데:

[] (https://i.stack.imgur.com/xHtcW.png)!

2 단계 솔루션이므로

Step1. '인덱스' 를 '항아리'

툴과도

프로세스

다운로드하십시오 [dex2jar zip] (https://github.com/pxb1988/dex2jar/releases), 'd2j-dex2jar.sh', 즉 잡을라는데 압축을

  • 'apk' 을 '항아리': d2j-dex2jar.sh - f 'sh' /path/to/apk_to_decompile.apk ~
  • '인덱스' 를 '항아리': d2j-dex2jar.sh - f 'sh' /path/to/dex_to_decompile.dex ~

예:

➜  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

Step2: '항아리' 을 'jave 수르스고데'

툴과도

프로세스

여기서 '데모' 프로키온 변환하십시오 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)!

결론

변환 수정: ',' &gt 자드스 ',' &gt 프로키온 크레프 &gt ',' 'jd gui'

추천합니까 사용: (# 39 한 단계 solution&, s) '' 자드스

해설 (5)

안드로이드 역엔지니어링 가능하다는 . 다음 단계에 따라 자야바 파일이 apk 파일을 통해 얻을 수 있습니다.

  • Step1. * Dex2jar 사용하여
  • 자파크 파일의 jar 파일 생성
  • 명령: 'dex2jar 샘프리프스파크'
  • Step2. 디 컴파일 .jar flexlm용 jd gui
  • it 역컴파일 리클레스 파일 즉, ll get , # 39 는 we& 난독화 뒤로를 자야바 &solarisdvd apk.
해설 (9)

Dedexer]1를 사용하면 '.dex' 파일을 달빅 바이트코드(.ddx)로 디스어셈블할 수 있습니다.

내가 아는 한 자바로 디컴파일하는 것은 불가능하다.
달빅 바이트코드에 대한 내용은 여기에서 확인할 수 있습니다.

해설 (2)

데비안 %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
해설 (0)

대부분의 이러한 문제의 답을 게시하기를 많은 변화가 있었다. 현대 여러 가지 있을 수 있는 간단한 도구로 GUI& # 39 에, 다음과 같습니다.

APK Easy Tool for Windows (GUI tool, friendly)
Bytecode Viewer - APK/Java Reverse Engineering Suite
URET Android Reverser Toolkit

Xda Developers 를 위한 최적의 장소로 것들이었다고요 켜있을 했다.

해설 (0)

할 수 있습니다 (https://bitbucket.org/mstrobel/procyon/wiki/Java% 20decompiler), 이는 덱스 역컴파일 자드스 위한 완벽한 도구입니다.

Yes, it 및 (내 0) 에서 온라인으로 이용할 수 있습니다) 새로운 사이트: http://www.javadecompilers.com/apk/

해설 (0)

이 작업을 수행할 수 있습니다 다음 5 단계:

[이 컴팩트형 높여줍니까 이런 것들을 당신꺼에요 때에도 자동으로 설치 필수 도구] (http://www.singhajit.com/convert-apk-file-to-java-code/)

apk 파일을 zip 변환하십시오 1. 2. 파일의 압축을 풉니다. 클라세이데스 푸십시오 it 에서 3. 4. 을 jar 로 클라세이데스 변환하십시오 jar 파일을 사용하여 인덱스 5. 자드스 gui 를 jar 파일로 열어보려면 java 소스 코드를 사용하여

해설 (1)

가장 손쉬운 방법은 viola 는 삼성전자에서 제조 / 판매하는 안드로이드 app 에서 쇼자바 디컴파일 다운로드할지 release. 플레이 스토어. 그냥 목록에서 디 컴파일 하는 응용 프로그램을 선택할 수 있습니다. App 디컴파일 데 사용할 수 있는 등 세 가지 역컴파일러

&gt. CFR 0.110 자드스 0.6.1, 또는 페르 플라워 (분석 역컴파일러).

해설 (0)

39 you& 않을 경우, re 보았으매 다운로드할지 dex2jar 관심용 그냥 list. ['apk_grabber' 파이썬 스크립트를] (https://github.com/braebot/apk_grabber) 를 모든 jar 파일을 디컴파일 apk 를. 그럼 jd gui 함께 읽었어요.

해설 (0)