source

Java .class 파일을 사람이 읽을 수 있는 방법으로 열려면 어떻게 해야 합니까?

manysource 2022. 11. 4. 23:32

Java .class 파일을 사람이 읽을 수 있는 방법으로 열려면 어떻게 해야 합니까?

자바 애플릿의 클래스 파일이 후드 아래에서 무엇을 하고 있는지 알아내려고 합니다.메모장이나 텍스트패드로 열면 구더기 투성이에요.

읽을 수 있는 형식으로 다시 정리해서 어떻게 하는지 알 수 있는 방법은 없나요?

  • 환경 == Windows (VS 2008이 설치된 경우)

현시점에서는 jd-gui가 최고의 디컴파일러입니다.JAD에 비해 Java의 새로운 기능을 처리할 수 있습니다.

바이트 코드를 읽어도 괜찮으시다면 javap은 정상적으로 동작할 것입니다.표준 JDK 설치의 일부입니다.

Usage: javap <options> <classes>...

where options include:
   -c                        Disassemble the code
   -classpath <pathlist>     Specify where to find user class files
   -extdirs <dirs>           Override location of installed extensions
   -help                     Print this usage message
   -J<flag>                  Pass <flag> directly to the runtime system
   -l                        Print line number and local variable tables
   -public                   Show only public classes and members
   -protected                Show protected/public classes and members
   -package                  Show package/protected/public classes
                             and members (default)
   -private                  Show all classes and members
   -s                        Print internal type signatures
   -bootclasspath <pathlist> Override location of class files loaded
                             by the bootstrap class loader
   -verbose                  Print stack size, number of locals and args for methods
                             If verifying, print reasons for failure

@MichaelMyers가 지적한 바와 같이

javap -c <name of java class file> 

JVM 어셈블리 코드를 가져옵니다.출력을 텍스트 파일로 리디렉션하여 가시성을 높일 수도 있습니다.

javap -c <name of java class file> > decompiled.txt

Java 디컴파일러가 필요한 경우 명령줄 도구를 사용하여javap이 일을 하기 위해서.또한 Java 디컴파일러 HOW-TO에서는 클래스 파일을 디컴파일하는 방법에 대해 설명합니다.

온라인 Java 디컴파일러를 사용할 수도 있습니다.(예: 님의 경우

찾으시는 것은 자바 디브로드입니다.저는 JAD http://www.kpdus.com/jad.html를 추천합니다.비상업적인 용도로는 무료이며, 작업을 완료할 수 있습니다.

주의: 이렇게 하면 코드가 작성된 코드와 완전히 동일하지 않습니다.즉, 코멘트나 변수명이 없어지기 때문에 일반적인 소스 코드를 읽는 것보다 조금 더 어려워집니다.개발자가 정말 비밀스럽다면 코드도 난독화시켜 읽기가 더욱 어려워질 것이다.

cpuguru, 애플릿이 javac 1.3 이하에서 컴파일된 경우 Jad를 사용하는 것이 가장 좋습니다.

유감스럽게도 JAD 1.5.8(2001년 4월 14일)에서 지원되는 마지막 JDK는 JDK 1.3입니다.

애플릿이 최신 컴파일러로 컴파일된 경우 JD-GUI를 사용해 보십시오.이 디컴파일러는 개발 중에 있지만 대부분의 경우 JDK 1.4, 1.5 또는 1.6으로 컴파일된 클래스에 대해 올바른 Java 소스를 생성합니다.

DarenW, 당신의 게시물에 감사드립니다.JD-GUI는 아직 최고의 디컴파일러는 아니지만 작업 중입니다.

jd-gui "http://code.google.com/p/innlab/downloads/detail?name=jd-gui-0.3.3.windows.zip&can=2&q="는 .class 파일을 디컴파일하기 위한 최적의 옵션입니다.

Jad를 사용하여 디컴파일하는 것이 최선의 선택일 것입니다.코드를 난독화하지 않는 한, 양호한 결과를 얻을 수 있습니다.

컴파일된 코드입니다.JAD와 같은 디컴파일러를 사용해야 합니다.http://www.kpdus.com/jad.html

디컴파일러를 사용해야 해다른 사람들은 JAD를 제안했고, 다른 옵션도 있습니다. JAD가 최고입니다.

원래 소스코드에 비해 조금 손해를 볼 수 있다는 코멘트를 반영하겠습니다.코드가 제네릭스를 사용하고 있는 경우는, 소거로 인해, 특히 웃기게 됩니다.

JAD 및/또는 JADclipse Eclipse 플러그인입니다.

조사하는 클래스 파일이 오픈소스인 경우 디컴파일하지 말고 소스 파일을 직접 IDE에 첨부해야 합니다.이렇게 하면 일부 라이브러리 클래스의 코드를 자신의 것으로 볼 수 있습니다.

제안대로 JAD를 사용하여 파일을 디컴파일하고 표시할 수 있습니다.읽기 쉽게 하기 위해 이클립스용 JADclipse 플러그인을 사용하여 JAD를 이클립스용으로 직접 통합하거나 명령줄 JAD보다 훨씬 사용하기 쉬운 DJ Java 디컴파일러를 사용할 수 있습니다.

JAD는 Java 코드를 읽을 수 있도록 하기 위한 훌륭한 옵션입니다..class 형식이 필요합니다.javapJDK에 부속되어 있어 16진수 바이트 코드를 판독 가능한 ASCII로 「컴파일 해제」할 수 있습니다.그것이 만들어내는 언어는 여전히 바이트 코드(Java와 같은 것은 아니지만)이지만 꽤 읽기 쉽고 매우 유익하다.

또한, 만약 당신이 정말 원한다면, 당신은 어떤 것이든 열 수 있습니다..class파일을 16진수 편집기에 저장하고 바이트 코드를 직접 읽습니다.결과는 를 사용하는 것과 동일합니다.javap.

Applet.class를 디컴파일할 필요가 없습니다.공개 Java API 클래스 소스 코드는 JDK와 함께 제공되며(설치하도록 선택한 경우), 디컴파일된 바이트 코드보다 읽기 쉽습니다.압축된 파일은 src.zip(JDK 설치 폴더에 있음)에 있습니다.

CFR - 또 다른 자바 디컴파일러는 i Java 6로 작성된 현대 자바용 훌륭한 디컴파일러입니다.

언급URL : https://stackoverflow.com/questions/76314/how-can-i-open-java-class-files-in-a-human-readable-way