【チュートリアル】ソースコード暗号化・漏洩対策ソフト

コードの難読化とは何ですか?

コード難読化 は、アプリケーションのバイナリを、人間が読んで理解するのが難しい機能的に同等のファイルに変換する行為です。 Dart コードをコンパイルする際、難読化によって関数とクラスの名前が隠蔽され、各シンボルが別のシンボルに置き換えられるため、攻撃者によるリバース エンジニアリングが困難になります。

Flutter のコード難読化機能はIPA ファイルにのみ有効であり、ソース コードは必要ありません。

制限

コードを難読化してもリソースは 暗号化されず 、リバース エンジニアリングは防止されないことに注意してください。シンボルの名前をよりあいまいな名前に変更するだけです。

情報

重要な個人情報 (パスワード、キーなど) をアプリケーションに保存することは 非常に危険な行為です。

サポートされているビルド ターゲット

次のビルド目標は、この記事で説明する難読化プロセスをサポートします。

  • aar
  • apk
  • appbundle
  • ios
  • ios-framework
  • ipa
  • linux
  • macos
  • macos-framework
  • windows

情報

Web アプリケーションは難読化をサポートしていません。 Flutter Web アプリケーションのリリース バージョンをビルドするとき、Web アプリケーションはすでに 圧縮 されているためです。 Web 圧縮は、難読化と同様の効果をもたらします。

アプリケーションを難読化する

アプリケーションを難読化するには、リリース モードで flutter build コマンドを使用し、 --obfuscate オプションと --split-debug-info オプションを使用します。 --split-debug-info オプションは、Flutter がデバッグ ファイルを出力するディレクトリを指定します。難読化の場合は、シンボルテーブルを出力します。次のコマンドを参照してください。

$ flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>

バイナリを難読化したら、必ず シンボル テーブル ファイルを保存してください。将来、難読化されたスタック トレースを解析する必要がある場合は、このファイルが必要になります。

ヒントと更新 ちょっとしたヒント:

--split-debug-info--obfuscate を使用せずに をご覧ください。 アプリケーション ボリュームを測定する オプションを使用して、Dart プログラム シンボルを抽出してコード サイズを削減することもできます。アプリケーション ボリュームの詳細については、 

これらのフラグの詳細については、次のように、特定のビルド ターゲット タイプに対して help コマンドを実行してください。

$ flutter build apk -h

これらのフラグが出力にリストされていない場合は、 flutter --version コマンドを実行して Flutter のバージョンを確認します。

強化プロセス:

ipaguard インターフェースの概要

ipaguard インターフェイスは、左側のメニュー ナビゲーション バーと右側の機能領域の 2 つの部分に分かれています。
左側のメニュー: 起動インターフェイス、コード モジュール、ファイル モジュール、再モジュールによる署名とテスト モジュール
右側のメイン機能領域は関数によって異なりますが、3 つの部分に分かれており、上部にはフィルター領域、中央にはメインコンテンツ表示領域、下部のスイッチ制御と強度制御
以下では、モジュール内の ipaguard 機能インターフェイスを紹介します。

ipaguard 起動インターフェイス

このインターフェイスでは、ファイルを開く、設定からファイルをロードする、ソフトウェアで表示される言語を切り替える、アカウントにログインする、ソフトウェアのバージョン情報を表示するなどを選択できます。 


 

ipaguard コード難読化インターフェイス

コード難読化インターフェイスは、左側のメニューによって若干異なります。しかし、全体としては、処理する必要のあるマッチョなファイルが一番上で選択され、その後に一連のフィルタリング制御関数があるということです。​ 


 

リソースファイル難読化インターフェース

リソース ファイル モジュールには、ファイル名の変更、Web リソースの圧縮、画像の透かしなどの機能が含まれています。インターフェースは上部の表示制御、下部の中間ファイル一覧、処理有無切り替えに分かれています。​ 


 

再署名インターフェース

署名構成インターフェイスでは、署名証明書、説明ファイルの構成、アプリのアクセス許可の設定 (この機能はほとんどのアプリでは使用されません)、難読化暗号化後にデバイスに直接インストールするかどうかの設定を行うことができます。
下部は署名するかどうかのメイン スイッチでもあります

おすすめ

転載: blog.csdn.net/qq_24694139/article/details/135017049