[Spring] 코드 난독화
programming/spring

[Spring] 코드 난독화


9. 코드 난독화


9.1 자바스크립트 난독화


* 자바스크립트는 클라이언트에서 실행되는 스크립트 언어이므로 소스 코드가 그대로 노출됨


* 자바스크립트 난독화 사이트


http://dean.edwards.name/packer/



9.3 자바 코드 난독화(Java Code Obfuscation)


- 자바 프로그램은 디컴파일(decompile), 디스어셈블(disassemble)이 가능하므로 코드 난독화가 필요함


- 프로가드(proguard) : 대표적인 자바 난독화 라이브러리


- 변수명, method name을 읽기 어렵게 변환함


- 난독화를 해도 근본적으로 디컴파일은 막기 어려움


- spring 프로젝트보다는 자바 프로젝트에 적합(war 파일보다는 jar 파일로 export 할 경우에 적합함, 어노테이션, xml 설정 등에는 난독화 작용이 어려움)


9.4 자바 코드 난독화 실습


- jad(자바 디컴파일러), 자바 실습소스

- 자바 실습소스를 이클립스로 import 한 후 jar 파일로 export

- jad에서 export한 jar 파일을 열어서 디컴파일된 소스 코드 확ㅇ;ㄴ

- 프로가드 사이트 : http://proguard.sourceforge.net


proguard 6.0 다운로드 주소 : https://sourceforge.net/projects/proguard/files/


난독화 테스트할 jar 파일 준비(jsp 프로젝트보다는 java 프로젝트로 테스트하는 것이 더 좋음), jar 파일을 찾기 쉬운 경로에 미리 복사


압축 해제 후 cmd로 접속


lib 디렉토리에서 java -jar proguardgui.jar 입력


좌측 메뉴 Input/Output을 누른 후

우측 상단의 Add Input, Add output 버튼을 클릭하여 원본 jar 파일과 변환할 jar 파일을 입력함


하단의 rt.jar 파일의 경로가 정확한지 확인해야 함


Add Input : 원본 jar 파일

Add Output : 변환할 jar 파일

Next 버튼을 계속 누른다.


난독화 처리가 완료된 후 jd-gui.exe 프로그램을 실행하여 변수, method 등이 읽기 어려운 이름으로 변경된 것을 확인한다.