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 등이 읽기 어려운 이름으로 변경된 것을 확인한다.