자바 최신버전에서도 사용가능한 cfr 자바 디컴파일러
- Programming/Java
- 2019. 5. 30.
예전에 자바 디컴파일러로 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 참고하면 됩니다.
'Programming > Java' 카테고리의 다른 글
자바 클래스 파일 버전 확인하기 (0) | 2019.08.22 |
---|---|
[JAVA] Iterator, for, for each 소스코드 (0) | 2016.08.16 |
java 환경설정 ( 다운로드, jdk 환경변수, java 환경변수 ) (9) | 2015.12.23 |