この記事では、DashO New Project Wizard を使用して既存の Android APK を保護する方法について説明します。この処理中、DashO は APK を分析し、アプリケーションのエントリ ポイントを自動的に識別して、既定の保護設定を適用し、配布用の保護された署名付き APK を生成します。
開始する前に、必要な Android SDK バージョンがインストールされていることと、処理対象の APK が R8 による縮小で難読化されていないことを確認してください。R8 で既に処理済みの APK に対して DashO を使用すると、複数のレイヤーの難読化と最適化によって競合が発生する可能性があります。
ステップ 1:新しいプロジェクトを作成する
- DashO を開きます。
- New Project Wizard に移動します。
- [Android Artifacts(APK/AAB)]を選択します。
- [Next]をクリックします。
ステップ 2:APK ファイルを選択する
- 難読化する必要がある APK ファイルを参照して選択します。
- [Next]をクリックします。
ステップ 3:Android SDK の検出を確認する
- DashO は APK に基づいて、Android SDK と SDK バージョンを自動的に検出します。
- 検出された SDK 情報が正しいことを確認します。
- [Next]をクリックします。
ステップ 4:エントリ ポイントを確認する
- DashO は APK から AndroidManifest.xml ファイルを読み取ります。
- エントリ ポイントが自動的に検出され、表示されます。
- 検出された情報を確認します。
- [Next]をクリックします。
ステップ 5:入力クラスを読み込む
DashO は、APK からすべてのアプリケーション クラスを読み込むようになりました。
既定で次の保護が有効になっています。
- 制御フローの難読化
- 除去による保護
- 文字列の暗号化
ステップ 6:署名を構成する
- チェック ボックスをオンにして署名オプションを有効にします。
- 必要な署名の詳細を入力します。
ステップ 7:APK をビルドする
- [Build]をクリックします。
- DashOは、Input セクションに読み込まれたすべてのクラスを難読化します。
- 保護された APK が出力場所に生成されます。
追加の保護オプションについては、保護についてを参照してください。
R8 による縮小
APK を生成する前に、R8 による縮小が無効になっていることを確認します。
設定:
minifyEnabled false
理由
R8 は 3 つの操作を実行します。
- 難読化
- コードの縮小
- 最適化
R8 で既に処理された APK が DashO に渡されると、アプリケーションは事実上、二重難読化を受けることになります。これは次のことにつながる可能があります。
- クラスの割り当ての不一致
- 実行時エラー
- Android フレームワーク クラスの解決に関する問題
- アプリケーションの起動エラー
これらの問題を回避するには、DashO で APK を処理する前に R8 による縮小を無効にします。