안드로이드 앱 난독화(Proguard & Dexguard)를 해보자! 2. 덱스가드 편

신현식(HyunSik Shin)
$IC’s LAB
Published in
4 min readNov 27, 2015

Dexguard와 Proguard는 GUARD SQUARE라는 한 회사에서 개발하였다. 차이는 Proguard는 무료, Dexguard는 유료이다.

Dexguard의 가격이 꽤나 높지만 확실히 그 만큼의 가치를 하는 툴이기 때문에 꼭 사용하는 것을 적극 추천한다. 사용하다가 문제 발생 시 개발자에게 메일로 문의를 하면 친절하게 답변을 해준다. 오류가 발견되어 개발자에게 report하면 금방 버그가 고쳐진 새로운 버전을 업데이트 해준다.

기본적으로 dexguard는 유료툴이고 proguard의 업그레이드 버전이기 때문에 proguard와 다른 내용만 설명하고 간단히 마무리하려고한다.

Proguard와 동일하게 기본적인 dexguard의 설명은 dexguard 폴더의 docs 폴더안에 html 파일로 존재한다. dexguard의 option들은 refcard.html을 확인하면 다 볼 수 있다.

dexguard docs파일 중 gradle.html

덱스가드를 적용하려면 build.gradle을 위와 같이 작성해 주어야한다.

여기서 제일 중요한 것은 dexguard를 프로젝트 내에 넣고 그 위치를 flatDir에 위치를 정확하게 작성해 주어야한다. 정확하지 않으면 dexguard를 찾을 수 없닫는 오류가 난다.

Dexguard 다운 시 폴더의 모습

프로젝트 내에 dexguard를 넣을 때는 위의 폴더 중 lib 폴더만 있으면 된다.

Dexguard가 6.*.* 버전과 다르게 7.*.* 대로 업데이트가 되면서 lib 폴더안에 결제 정보가 들어있는 dexguard-license.txt 파일을 넣어주어야지만 dexguard가 적용된다.

Dexguard 적용 전
Proguard 적용 후
Dexguard 적용 후

현재 dexguard 적용만 하고 기타 option을 작성하지 않은 상태이지만 확실히 많은 부분이 난독화 된 것을 확인 할 수 있다.

다른 난독화 툴을 거쳐서 만들어진 apk 파일을 압축해제하면 apk 안의 리소스 파일을들 볼 수 있다. xml같은 것들은 다 깨지지만 이름과 사진들은 모두 확인이 가능하다. 그러나 dexguard는 전혀 확인 못하게 난독화가 된다.

난독화를 제공하는 쪽에 난독화 되지 않은 apk를 올려서 난독화 된 apk를 다운로드하는 방식이 아닌, 자신의 로컬에서 난독화를 해 안전하게 apk를 만드는 방법을 찾고 있다면 Dexguard 사용을 강력 추천한다!

--

--