Android 앱 개발을 하다보면 보안을 위해서 출시 전에는 꼭 난독화를 해야한다.

 

 

Android 소스 난독화란?

 

앱의 소스 코드를 난독화하는 기술로,

안드로이드 앱의 소스 코드를 분석하기 어렵게 만들기 위한 기술입니다.

이를 통해 소스 코드를 더욱 안전하게 보호할 수 있습니다.

 

해커가 앱의 코드를 이해하고 악성 기능을 추가하는 것을 어렵게 만들 수 있습니다.

그렇기 때문에 앱을 배포하기 전 앱 소스 난독화는 꼭 필요합니다.

 

 

 

Proguard 적용하기

 

 

Proguard는 소스코드를 난독화 및 최적화 해주는 무료 오픈소스 툴입니다.

 

minifyEnabled

축소, 난독화 및 코드 최적화를 활성화 / 비활성화 한다.

 

getDefaultProguardFile("proguard-android.txt")

Android Gradle 플러그인과 함께 패키지된 기본 Proguard 규칙 파일이 포함되어 있다. 

 

proguard-rules.pro 

프로젝트 레벨에 proguard-rules.pro 파일을 만들고 축소, 난독화 제외 클래서, shrink 여부 등에 관한 룰을 작성한다.

 

 

dex2jar 라이브러리를 사용해서 디컴파일하기

 

1. dependency 설치

brew install apktool dex2jar

 

2. apk 빌드

난독화한 앱 apk 빌드 파일을 가져옵니다.

 

3. 디컴파일

cd /path/to/apk/file
apktool d -s -o decompile app-release.apk

 

4. dex 파일을 jar로 변경

d2j-dex2jar classes.dex
d2j-dex2jar classes2.dex
d2j-dex2jar classes3.dex

 

5. jar파일을 zip파일로 변경

mv classes-dex2jar.jar classes-dex2jar.zip
mv classes2-dex2jar.jar classes2-dex2jar.zip
mv classes3-dex2jar.jar classes3-dex2jar.zip

 

6. zip 파일 해제

finder에서 zip 파일을 더블클릭하여 압축을 해제합니다.

 

7. 코드 확인

압축 해제된 디렉터리에서 파일 내용을 확인해봅니다.

아래처럼 사람이 읽을 수 없다면 성공한 것이다 !!!!

 

 

앱 출시를 위해서 난독화해본 건 처음이라, 디컴파일하면서 많이 애먹었다.

누군가 이 글을 보고 많은 도움이 되었으면 좋겠다 ㅎㅎ

+ Recent posts