Proguardを使ってAndroidアプリのコードを難読化する


初めまして、4月から入社した新入社員のmaitaです。

早速ですが、AndroidアプリをリリースするときにしておきたいProguardを使用したコードの難読化の方法について説明させていただきます。


Proguardとは?

簡単にいうと、AndroidSDKに搭載されている難読化を行うためのツールのことです。

これを使用することでアプリの難読化が簡単にできます。

実際にProguardを使用し難読化したものを見てみると、

%e9%9b%a3%e8%aa%ad%e5%8c%96

クラス名や変数名がa,b,c…といった文字列に変更され、処理の流れが読みづらくなっています。

リバースエンジニアリングによって重要な情報や技術が簡単に見られてしまった、ということがないように対策の1つとしてコードの難読化をおこないましょう!


■難読化のやり方

では、実際にコードの難読化をおこないます。

  • 環境:Android Studio Version 2.1

Android Studioの「File」から「Project Structure」を開きます。

その中のappをクリックし、Build Typesのreleaseを選択します。minify-enabled

Minify Enabledをtrueにします

minify-enabled_true

Proguard Fileにproguard-project.txtまでのパスを入力します。

%e3%83%97%e3%83%ad%e3%82%ac%e3%83%bc%e3%83%89%e5%85%a5%e5%8a%9b


proguard-project.txtがどこにあるのかわからない場合

proguard-project.txtはSDKを保存しているファイルのtools→proguard内にあります。

SDKをどこに保存しているかわからなくなってしまった場合は以下の手順で探すことができます。

1.Android Studio内の画面上部にあるSDKManagerを開きます

sdk%e3%83%9e%e3%83%8d%e3%83%bc%e3%82%b8%e3%83%a3%e3%83%bc

2.Android SDK設定画面の「Android SDK Location」にSDKの保存先が乗っていますので

sdk%e3%83%ad%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3

それを利用しSDKの保存場所まで行きましょう。

3.proguard-project.txtを見つけたらそこまでのパスをProguard Fileに入力します。

proguard-project

パスは「SDKの保存先\tools\proguard\proguard-project.txt」のようになると思います。


パスを入力したらOKで保存します。

アプリのGradleを確認するとBuild Typesのreleaseにある「minifyEnabled」がtrueになり、「proguardFile」に先ほど入力したパスが追加されました。gradle

追加されたことまで確認できたらリリース用のAPKを作成します。

最後に、APKをインストールし正常に動作することを確認できたら完了です。