2018년 4월 5일 목요일

gradle proguard 예제

** proguard 사이트에서 proguard6.0.2.zip 다운로드 압축을 풀고

** build.gradle 파일 수정

buildscript {
  repositories {
    jcenter()
    flatDir dirs: 'E:/prog/proguard6.0.2/lib'
  }
  dependencies {
    classpath ':proguard:'
  }
}

(...)

task proguard(type: proguard.gradle.ProGuardTask, dependsOn: 'jar') {
  configuration 'proguard.txt'

  injars 'build/libs/java1.jar'
  outjars 'build/libs/lhbidc.jar'

  libraryjars 'dist/lib'
  libraryjars 'C:/Java/jdk1.7.0_80/jre/lib/rt.jar'
}

** 플젝톨더에 proguard.txt 파일을 아래 내용으로 생성

-keep public class java75.LhBidMain1 {
      public static void main(java.lang.String[]);
}

** cmd 열어서 플젝 폴더에서
> gradlew.bat proguard 하면 lhbidc.jar 파일 생성된다.

** 해설
  injars 'build/libs/java1.jar' <-- 오리지널 jar
  outjars 'build/libs/lhbidc.jar' <-- 암호화된 jar

  libraryjars 'dist/lib' <-- 나머지 필요한 jar 파일들 있는 폴더
  libraryjars 'C:/Java/jdk1.7.0_80/jre/lib/rt.jar' <-- 이것도 필요하네...

main 클래스 함수는 암호화 되면 안되므로 keep
-keep public class java75.LhBidMain1 {
      public static void main(java.lang.String[]);
}

lhbidc.jar 파일 내의 클래스 파일을 디컴파일해보면 각 변수명들이 바뀌어 있다.

인기글

추천 게시물

윈도우에서 오라클 11g 삭제하기

* 참조 및 출처 https://wickedmagic.tistory.com/407 https://wookoa.tistory.com/304 * 윈도우에서 오라클 11g 삭제하기 > 서비스에서 오라클 관련 서비스 모두 종료 > Un...