펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

프로그램 코드 난독화는 특정 난독화 알고리즘(Layout, Data, Control Obfuscation)을 적용하여 소스코드를 분석하기 어

렵게 변환해주는 시스템이다. 본 시스템의 목적은 상세설계에 준하는 설계구조와 주석문, 프로그램 처리방식, 기능 배치, 

구성 등의 설계아이디어 또는 해당하는 알고리즘이나 성능 및 최적화를 위한 구현 노하우 등이 내포되어 있는 SW 소스코

드의 원천기술 유출을 방지하는 것이다.

여기서는 안드로이드의 Proguard를 이용해 코드난독화를 적용한다.

구버전의 포스팅을 보면 proguard.cfg 파일에 대한 언급이 중요시다뤄지는데,

지금의 버전에서는 해당 파일의 유무는 신경쓰지 않는다.


proguard가 적용되는 시점은 프로젝트를 Export할 때 적용되므로, 배포용 apk를 추출하는 방법을 

알고있다면 더 쉽게 할 수 있다. 

(이전 포스팅글 : http://biig.tistory.com/entry/%EC%96%B4%ED%94%8C-%EB%B0%B0%ED%8F%AC%EB%A5%BC-%EC%9C%84%ED%95%9C-keystore%EC%83%9D%EC%84%B1-%EB%B0%8F-%EB%B0%B0%ED%8F%AC%EC%9A%A9-apk-%EC%83%9D%EC%84%B1)




시작


먼저 - adt를 최신버전으로 업데이트시켜준다 ( Help > Check for Updates)

그다음



해당 프로젝트의 project.properties를 실행시켜 표시된부분의 주석을 해제한다.





그리고 해당 프로젝트 우클릭 > Export... 선택





Android 폴더의 Export Android Application 선택후 넥스트




Project명은 자동으로 입력되니 넥스트




keystore 생성하는법은 이전 글에 나와있으니 참고하시고, 이미 키가 있다면 Use existing keystore 선택 후

Browse... 눌러서 원하는 키 선택후 키의 비밀번호 입력 > 넥스트





키 만들때 Alias와 함께 넣은 비밀번호 입력 후 넥스트





apk가 저장될 위치를 설정하고 난 뒤 Finish를 눌러 마무리



그런데 warning이 뜨면서 프로가드가 적용이 안되는 경우가 있다.


그럴때는 어떤 클래스에서 warning이 뜨는지를 파악한 후




이런식으로 해당 클래스에 예외를 걸어줘야한다. proguard warning 등으로 검색하면


많은 정보들을 찾을 수 있을것이다.


-끝-



이렇게하면 proguard가 적용되어 코드난독화가 적용된 apk파일이 생성된다.


이렇게 해줘야 내가 힘들게 짠 소스코드를 다른사람이 디컴파일해서 재사용하는것이 힘들게 할 수 있다.


proguard가 적용되면 어떤 차이가 있는지는 다음 글에서 apk 디컴파일 방법과 함께 소개하겠다.



'Android > Compile' 카테고리의 다른 글

apk파일 디컴파일하기  (12) 2013.10.21
어플 배포를 위한 keystore생성 및 배포용 apk 생성  (0) 2013.10.21