개요
- ProGuard 튜토리얼
- 프로가드 튜토리얼
- 여기서는 HelloWorldPlus.jar로 테스트함
- 자바디컴파일러 JD 튜토리얼 실습 후 진행
다운로드
- https://sourceforge.net/projects/proguard/files/proguard/ 접속
- 5.3 폴더 클릭
- proguard5.3.3.zip 클릭
( 잠시후 다운로드 시작됨 proguard5.3.3.zip 다운로드됨, 2.92MB )
- proguard5.3.3.zip 압축 해제
난독화 수행
- proguard5.3.3 폴더 --- bin 폴더 --- proguardgui.bat 더블클릭하여 실행
- 좌상단 [Input/Output] 클릭
- 우상단 [Add input...] 클릭 --- HelloWorld.jar 선택 --- [Ok]
- 우상단 [Add output...] 클릭 --- 파일 이름(N): HelloWorld2.jar --- [Ok]
- 우중단 [Add...] 클릭 --- HelloWorld_lib 폴더의 모든 jar 파일들 선택 --- [Ok]
- 좌중단 [Process] 클릭-- 우하단 [Process!] 클릭
ProGuard, version 5.3.3
Reading program jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld.jar]
Reading library jar [C:\Program Files\Java\jre1.8.0_131\lib\rt.jar]
Reading library jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld_lib\jcl-over-slf4j-1.7.25.jar]
... (생략)
Reading library jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld_lib\spring-core-4.3.8.RELEASE.jar]
Reading library jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld_lib\spring-expression-4.3.8.RELEASE.jar]
Preparing output jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld2.jar]
Copying resources from program jar [C:\Users\user2\Desktop\HelloWorld\HelloWorld.jar]
Processing completed successfully
실행 테스트
- HelloWorld 폴더 탐색창 빈공간에서 Shift + 우클릭 --- 여기서 명령 창 열기(W)
C:\Users\user2\Desktop\HelloWorld>java -jar HelloWorld2.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-05-18 19:02:27.912 INFO 6356 --- [ main] com.example.HelloWorldApplication : Starting HelloWorldApplication on WIN-QNGP7AV7ERD with PID 6356 (C:\Users\user2\Desktop\HelloWorld\HelloWorld2.jar started by user2 in C:\Users\user2\Desktop\HelloWorld)
2017-05-18 19:02:27.918 INFO 6356 --- [ main] com.example.HelloWorldApplication : No active profile set, falling back to default profiles: default
2017-05-18 19:02:27.957 INFO 6356 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7a36aefa: startup date [Thu May 18 19:02:27 KST 2017]; root of context hierarchy
2017-05-18 19:02:28.150 INFO 6356 --- [ main] com.example.HelloWorldApplication : Started HelloWorldApplication in 0.768 seconds (JVM running for 1.312)
Hello, World!
2017-05-18 19:02:28.152 INFO 6356 --- [ Thread-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7a36aefa: startup date [Thu May 18 19:02:27 KST 2017]; root of context hierarchy
C:\Users\user2\Desktop\HelloWorld>
디컴파일러 확인
- 자바디컴파일러 JD 튜토리얼를 참고하여 동일한 방법으로 수행
- 프로가드 적용 전 (HelloWorldPlus.jar)
- 프로가드 적용 후 (HelloWorldPlus2.jar)

