문제

(관련 질문 : Java 컴파일러 또는 GOTO를 지원하는 JVM 언어?)

나는 항아리를 분해하고 (합법적으로, 디버깅 목적으로) 그것을 다시 컴파일하고 싶다.

나는 둘 다 사용했다 Jad 그리고 JD 그리고 둘 다 GOTO 지침으로 인해 컴파일하지 않습니다

예를 들어

      goto _L1

      ...
      L1: 
      return true;

그것을 다시 컴파일하는 쉬운 방법 (또는 어떤 방법)? (수동으로 리팩터를 리팩터링하고 제거하는 것을 제외하고 goto'에스)


도움이 되었습니까?

해결책

아니요, 없습니다. 귀하의 경우 JD 나 JAD는 클래스 파일을 올바르게 소집 할 수 없었습니다. 'goto'진술은 실제 프로그램 흐름에 대한 힌트입니다.

Java Decompiler 팀에 직접 연락하여 해석이 불법 소스 코드로 연결되는 클래스 파일을 보내고 현재 버전의 버그인지 아직 구현되지 않은 기능인지 묻습니다.

다른 팁

Jad는 정말 놀라운 디 컴파일러 JD입니다 ... "Try-Catch-Finally"문에 문제가 있습니다.

Stiver의 디 컴파일러를 사용해 보셨습니까?http://www.reversed-java.com/fernflower) ?

Emmanuel, JD의 저자.

모든 디 컴파일러는 Java 소스 구성에 해당하는 코드 패턴을 찾고 가장 적합한 소스를 선택합니다.

분명히 당신이 가진 코드는 JAD 또는 JD에 저장된 패턴을 준수하지 않으므로 압축 할 수없는 Java 소스를 얻을 수 있습니다. JAD가 몇 년 동안 적극적으로 개발되지 않았기 때문일 가능성이 높습니다.

훨씬 더 공격적인 디 컴파일러가있는 그을음 프로젝트를 살펴 보는 것이 좋습니다.

http://www.sable.mcgill.ca/soot/

CFR 또는 Fernflower와 같은 현대 디 컴파일러를 추천합니다!

6 개의 Java 디 컴파일러 : Jadx, Fast and Android 지원, CFR (Supports Java 8), JDCore (매우 빠른), Procyon, Fernflower 및 Jad (매우 빠르지만 구식)를 온라인으로 배치했습니다.

여기에 설치하지 않고 사용할 수 있습니다. http://www.javadecompilers.com/

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