맥에서 jar 파일 디컴파일 하기

     

 


 

 

외부 라이브러리를 사용하기 위해 jar 파일을 사용할 때가 있다. jar에 있는 class를 사용하기 위해서는 어떤 package나 class로 되어있는지 확인이 필요한데, jar자체는 바이너리 파일이라 사람이 읽을 수 없다. 따라서 최대한 사람이 읽을 수 있는 java형태로 디컴파일(decompile)을 해야 하는데, 간단한 툴을 사용해서 디컴파일을 할 수 있다.

 

윈도에서는 exe파일로 실행 가능한 툴이 있었는데, 맥에서는 exe가 안 돌아가니, 개발자스럽게 cli를 사용해서 디컴파일 해보자

 

 

https://github.com/java-decompiler/jd-gui/releases

 

Releases · java-decompiler/jd-gui

A standalone Java Decompiler GUI. Contribute to java-decompiler/jd-gui development by creating an account on GitHub.

github.com

 

위 repo에 들어가보면 여러 형태의 파일을 받을 수 있는데, 그냥 jar파일을 받아서 java로 실행하면 된다. M 맥에서도 됨!

 

창이 아담하다

 

java -jar jd-gui-*.jar 를 실행하면 커피 아이콘이 잠깐 나오고, 디컴파일 가능한 윈도가 하나 열린다. 여기에 디컴파일 하고 싶은 jar파일을 올리면 된다.

 

물론, 요즘엔 난독화기능을 사용해서 디컴파일로 코드 확인이 불가능한 jar도 많아 상세한 코드까지는 파악이 불가능하다. 다행히 내가 하려고 한느건 패키지명이나 클래스명정도는 확인이 가능했다.

 

 

jar 디컴파일

 

 

예전에 안드로이드 개발할 때도 디컴파일 많이 했던것 같은데 ㅋㅋ 요즘엔 인텔리제이나 이클립스와 같은 IDE에서도 디컴파일 기능을 제공하기 때문에 더 쉽게 코드를 까볼 수 있다. 

 

 

최근에는 스크립트 언어를 많이 했었어서 컴파일에 대한 개념이 가물가물했었는데, jar 디컴파일 하면서 다시금 컴파일 존재에 대해 인식할 수 있는 시간이 되었다 ㅋㅋ 

 

 

 

반응형

댓글

Designed by JB FACTORY