자바 최신버전에서도 사용가능한 cfr 자바 디컴파일러

예전에 자바 디컴파일러로 jadx, jd-gui 를 소개해드렸습니다. 

이 2개 디컴파일러의 장점은 GUI 형태로 텍스트 에디터처럼 편하게 사용할 수 있었지만, 자바 1.8 이상 디컴파일을 못하는 경우, 디컴파일 중 에러가 발생하는 경우 등 문제가 있어 아쉬움이 있었습니다.

[Info/Software] - 자바 디컴파일러 모음 및 jadx 다운 및 사용법

 

그래서 이번엔 자바 최신버전(1.8이상) 에서도 디컴파일이 잘 되는 cfr 디컴파일러를 소개합니다.

GUI형식이 아니여서 조금 불편하지만 그래도 명령어가 간단하기 때문에 쉽게 디컴파일한 java 파일을 저장할 수 있습니다.

cfr 자바 디컴파일러 사용법

http://www.benf.org/other/cfr/

먼저 위 링크에서 cfr jar 파일을 다운받아서 적당한 경로에 이동시킵니다.

저는 디컴파일할 클래스로 옮겨서 사용하는 더 편했습니다.

 

 

 

CMD 또는 파워쉘을 실행하여 해당 경로로 이동합니다. 탐색기에서 Shift를 누른 채로 오른쪽 마우스키를 누르면 여기에 PowerShell 창 열기를 바로 실행가능합니다.

그 후 java -jar cft-0.144.jar HttpsSocket.class > HttpsSocket.java 

                   [버전]         [디컴파일할 .class]  [저장할 이름]          

 

입력하면 해당 파일이 디컴파일이 되어 저장됩니다. 꼭 java 파일의 이름이 class 파일과 동일할 필요는 없습니다.

저장할 디렉토리를 지정의 경우 java -jar cft-0.144.jar HttpsSocket.class > HttpsSocket.java --outputdir /tmp/putithere

 

 

 

디컴파일한 java 파일을 열어보면 상단에 CFR로 디컴파일이 되었다는 주석이 추가되며 정상적으로 완료된 것을 확인할 수 있습니다. 이외에도 특정 메소드만 결과를 저장하는 등 여러 명령어를 통해 다양한 기능을 제공하고 있습니다. 자세한 내용은 https://www.aldeid.com/wiki/CFR-java-decompiler 참고하면 됩니다.

댓글

Designed by JB FACTORY