문제

클래스 파일을 디 컴파일하는 데 어떤 프로그램을 사용할 수 있습니까? 실제로 Java 코드를 얻을 수 있습니까? 아니면 JVM 어셈블리 코드입니까?

이 사이트의 Java 성능 질문에서 나는 종종 Java 클래스 파일을 "분해"한 사람들의 응답을보고 컴파일러가 특정 물건을 어떻게 최적화하는지 확인합니다.

도움이 되었습니까?

해결책

2016 년 2 월 업데이트 :

www.javadecompilers.com Jad를 다음과 같이 나열합니다.

가장 인기있는 Java 디 컴파일러이지만 주로이 시대에만 해당됩니다. C ++로 작성되어 매우 빠릅니다.
구식, 지원되지 않으며 Java 5 이상을 올바르게 디 컴파일하지 않습니다.

따라서 마일리지는 최근 JDK에 따라 다를 수 있습니다 (7, 8).

동일한 사이트 목록 다른 도구.

및 JavadeCompiler, 다음과 같이 살바도르 발렌시아 안에 의견 (2017 년 9 월), 업로드하는 SaaS를 제공합니다. .class 클라우드에 파일을 파일하면 소환 된 코드를 반환합니다.


원래 답변 : 2008 년 10 월

  • J2SE 5.0 (Java SE 5)의 주요 특징을 정의하는 JSR 176의 최종 릴리스는 2004 년 9 월 30 일에 출판되었습니다.
  • Pavel Kouznetsov 씨가 쓴 유명한 Java 디 컴파일러 인 Jad가 지원하는 가장 마지막 Java 버전은 다음과 같습니다. JDK 1.3.
  • "DJ Java Decompiler"또는 "Cavaj Java Decompiler"와 같은 인터넷에서 오늘 다운로드 할 수있는 대부분의 Java 디 컴파일러는 JAD에 의해 구동됩니다. Java 5 소스를 표시 할 수 없습니다.

자바 디 컴파일러 (또 다른 빠른 Java 디 컴파일러)는 다음과 같습니다.

  • 소집 및 분석에 대한 명시 적 지원 Java 5+ ".class"파일.
  • 멋진 gui :

screenshot

JDK 1.1.8에서 JDK 1.7.0까지의 컴파일러 및 기타 컴파일러와 함께 작동합니다.지브, jrockit, 등.).

온라인이 특징입니다 라이브 데모 버전 그것은 실제로 완전히 기능적입니다! 페이지에 JAR 파일을 떨어 뜨리고 아무것도 설치하지 않고 소스 소스 코드를 볼 수 있습니다.

다른 팁

몇 개의 디 컴파일러가 있습니다 ... 빠른 검색 수율 :

  1. Procyon: 오픈 소스 (Apache 2) 및 적극적으로 개발되었습니다
  2. 크라 카타 우: 오픈 소스 (GPLV3) 및 적극적으로 개발되었습니다
  3. CFR: Open-Source (MIT) 및 적극적으로 개발되었습니다
  4. Jad
  5. DJ Java 디 컴파일러
  6. 모카

그리고 더 많은.

이들은 자바 코드를 생성합니다. Java는 JVM 바이트 코드를 볼 수있는 무언가가 제공됩니다 (Javap).

Java 소스 코드를 보려면 일부 디 컴파일러를 확인하십시오. 찾아 가십시오 Jad.

바이트 코드를보고 싶다면 사용하십시오 Javap JDK와 함께 제공됩니다.

나는 몇 가지를 시도했다 Procyon 나를 위해 최선을 다하는 것 같았습니다. 활발한 개발 중이며 최신 버전의 Java의 많은 기능을 지원합니다.

이것들은 내가 시도한 다른 것입니다.

  • CFR
    • 유망하지만 종종 실패한 방법 탈퇴. 나는 이것을 계속 주시 할 것이다. 또한 최신 Java 기능을 지원하여 적극적으로 개발되었습니다.
  • 크라 카타 우
    • 원래 소스를 재구성하려고 시도하는 대신 동등한 Java 코드를 출력하려고 시도한다는 점에서 다른 접근 방식을 취합니다. 내 테스트에서 그것은 Procyon과 거의 동등했지만 여전히 다른 것을 갖는 것이 좋습니다. 나는 그것을 사용해야했다 -skip 명령 줄 플래그로 오류가 중지되지 않습니다. 적극적으로 개발되었으며 흥미롭게도 Python으로 작성되었습니다.
  • JD-Gui
  • Jad
    • 일했지만 Java 1.4 이하 만 지원합니다. 또한 가능합니다 일식 플러그인. 더 이상 개발 중이 아닙니다.

나는 사용한다 Jad 디 컴파일러.

있습니다 플러그인, Jadeclipse. 꽤 좋습니다.

Procyon 디 컴파일러가 포함되어 있습니다. Foss입니다.

그을음 최신 Java 코드의 옵션입니다. 적어도 최근에 여전히 유지되고 있다는 이점이 있습니다 ...

또한, 자바 디 컴파일러 독립형 GUI 및 ECLIPSE 통합을 모두 갖춘 디 컴파일러입니다.

마지막으로, JDEC 다른 옵션만큼 세련되지는 않지만 언급되지 않았습니다.

JD-Gui 정말 좋습니다. 당신은 그냥 열 수 있습니다 항아리 마치 IDE에서 작업하는 것처럼 코드를 파일로 찾아보십시오. 좋은 것들.

2015 년 2 월 현재 디 컴파일러 목록은 다음과 같습니다.

Procyon, 오픈 소스, https://bitbucket.org/mstrobel/procyon/wiki/java%20decompiler

CFR, 무료, 소스 코드가 없음, http://www.benf.org/other/cfr/

JD, 비상업적 사용 만 무료, http://jd.benow.ca/

양치류, 오픈 소스, https://github.com/fesh0r/fernflower,

Jad - 역사적 이유만 여기에 제공됩니다. 무료, 소스 코드가 없음, http://varaneckas.com/jad/구식, 지원되지 않으며 Java 5 이상을 올바르게 디 컴파일하지 않습니다.

온라인에서 위에서 언급 한 디 컴파일러를 테스트하고 설치할 필요가 없으며 자신의 교육을 선택할 수 있습니다.

클라우드에서 자바 디 컴파일러 : http://www.javadecompilers.com/

사용할 수있는 몇 가지 프로그램이 있습니다. 실제 Java 코드를 얻을 수 있지만 때로는 코드가 난독 화되어 메소드가 하나의 문자 나 숫자 또는 문자와 숫자의 임의의 혼합으로 명명됩니다.

DJ 디 컴파일러 모카

Java의 대부분의 디 컴파일러는 기반입니다 Jad. 훌륭한 도구이지만 불행히도 한동안 업데이트되지 않았으며 Java 1.5+ 클래스를 잘 처리하지 못합니다. 1.5+ 클래스를 올바르게 처리 할 도구는 보지 못했습니다.

보세요 카바 지.

지금까지 나열된 모든 JAD 링크가 깨진 것처럼 보이 므로이 사이트를 찾았습니다. 잘 작동합니다 (적어도 Linux의 경우)! 우분투 11.10에서 나는 어떤 이유로 든 정적을 다운로드해야했다.

http://www.varaneckas.com/jad

  • Jad는 작동하고 간단한 사람입니다.

  • 또한 방법을보고 싶다면 Javap을 사용하십시오.

Java 컴파일러가 특정 일을 어떻게 수행하는지보고 싶다면, 소환을 원하지 않으면 분해를 원합니다. 해석에는 바이트 코드를 Java 소스로 변환하는 것이 포함됩니다. 이는 많은 수준의 낮은 수준 정보가 손실되며 컴파일러 최적화에 대해 궁금해한다면 아마도 관심있는 정보 일 것입니다.

어쨌든, 나는 썼다 오픈 소스 Java Disassembler. Javap과는 달리, 이것은 병리학 적 수업에서도 작동하므로 수업에 대해 Obfuscation 도구가 무엇을하고 있는지 확인할 수 있습니다. 권장하지는 않지만 소환 할 수도 있습니다.

Jad는 나를 위해 작동하지 않습니다 (Ubuntu 11.10 Issue). 조도. 적어도 그것은 열린 Java 소스 코드를 가지고 있으며 내 .수업 제대로.

체크 아웃하는 것이 좋습니다 '분기/제네릭' 먼저 분기. 트렁크는 안정적이지 않습니다.

Intellij 아이디어 플랫폼에서 사용할 수 있습니다 Java Decompiler Intellij 플러그인. 디버깅 프로세스 중에 모든 Java 소스를 모두 표시하지 않더라도 모든 Java 소스를 표시 할 수 있습니다. 유명한 도구를 기반으로합니다 JD-Gui.

enter image description here

와 함께 Androchef Java 디 컴파일러 APK, DEX, JAR 및 JAVA 클래스 파일을 디 컴파일 할 수 있습니다. 간단하고 쉽습니다. AndroChef JD는 기반입니다 양치류. 10 번의 무료 용도로 평가할 수 있습니다.

AndroChef는 제네릭, 열거 및 주석과 같은 Java 언어 기능을 지원합니다. 일부 연구에 따르면, AndroChef Java Decompiler는 기존 Java 컴파일러로 생성 된 Java 응용 프로그램의 98.04%를 디 컴파일 할 수 있습니다. Java와 Dalvik Bytecode (Dex, APK)를 읽을 수있는 Java 소스로 디코딩 할 수있는 간단하지만 강력한 도구입니다.

OSX의 경우 : Jarzilla 또는 JD-Gui를 추천합니다

둘 다 항아리, 전쟁 등을 볼 수 있습니다. 내용의 내용을 파일하고 내부의 모든 클래스 파일을 디 컴파일합니다.

자 질라 : https://code.google.com/p/jarzilla/
JD-Gui : http://jd.benow.ca/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top