goto 지침이 포함 된 소스 디 컴파일 리 컴파일 리 컴파일
-
19-09-2019 - |
문제
(관련 질문 : 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가 몇 년 동안 적극적으로 개발되지 않았기 때문일 가능성이 높습니다.
훨씬 더 공격적인 디 컴파일러가있는 그을음 프로젝트를 살펴 보는 것이 좋습니다.
CFR 또는 Fernflower와 같은 현대 디 컴파일러를 추천합니다!
6 개의 Java 디 컴파일러 : Jadx, Fast and Android 지원, CFR (Supports Java 8), JDCore (매우 빠른), Procyon, Fernflower 및 Jad (매우 빠르지만 구식)를 온라인으로 배치했습니다.
여기에 설치하지 않고 사용할 수 있습니다. http://www.javadecompilers.com/