1. ホーム
  2. android

[解決済み] APKファイルのリバースエンジニアリングを回避する方法

2022-03-19 11:16:09

質問

を開発中です。 決済処理アプリ のリソース、アセット、ソースコードにハッカーがアクセスできないようにしたい。 APK ファイルを作成します。

もし誰かが.apkの拡張子を.zipに変更したら、それを解凍してアプリのすべてのリソースとアセットに簡単にアクセスできるようになります。 dex2jar とJavaデコンパイラを使えば、ソースコードにアクセスすることも可能です。Android APKファイルのリバースエンジニアリングは非常に簡単です。 APKファイルからプロジェクトへリバースエンジニアリング .

Android SDKに付属のProguardというツールを使っています。署名付きキーストアとProguardを使用して生成されたAPKファイルをリバースエンジニアリングすると、難読化されたコードが表示されます。

しかし、Androidコンポーネントの名前は変更されず、アプリで使用されるキー値など、一部のコードも変更されません。Proguardのドキュメントによると、このツールはManifestファイルに記載されたコンポーネントを難読化することはできません。

そこで質問です。

  1. どうすれば を完全に防ぐことができます。 Android APKのリバースエンジニアリングは可能ですか?可能でしょうか?
  2. ハッカーがAPKファイルを一切ハックできないように、アプリのすべてのリソース、アセット、ソースコードを保護するにはどうすればよいですか?
  3. ハッキングをより困難に、あるいは不可能にする方法はありますか? APKファイルのソースコードを保護するために、さらに何ができますか?

解決方法は?

<ブロッククオート

 1. Android APKのリバースエンジニアリングを完全に回避するにはどうすればよいですか?可能でしょうか?

リバースエンジニアリングを完全に回避する方法はありません。

また、@inazaruk さんのおっしゃることも非常によくわかります。 あなたがコードに何をしたところで、潜在的な攻撃者はそれをどのようにでも変更することができます。 . 基本的に、アプリケーションを改変されないようにすることはできません。そして、あなたが入れた保護は、無効にしたり削除したりすることができます。

<ブロッククオート

 2. ハッカーがAPKファイルを一切ハックできないように、アプリのすべてのリソース、アセット、ソースコードを保護するにはどうしたらよいでしょうか。

ハッキングを難しくするために、さまざまなトリックを行うことができますが。たとえば、難読化(Javaコードの場合)を利用する。これは通常、リバースエンジニアリングの速度を著しく低下させます。

<ブロッククオート

 3. ハッキングをもっと手強く、あるいは不可能にする方法はないのでしょうか?APKファイルのソースコードを保護するために、もっとできることはありますか?

誰もが言うように、そしてあなたも知っているように、100%のセキュリティは存在しません。しかし、Googleが内蔵しているAndroidのためのスタート地点は、ProGuardです。もし、オプションで 共有ライブラリ を使えば、C++で必要なコードを入れて、ファイルサイズや統合を確認することができます。 などがあります。ビルドのたびに外部ネイティブライブラリをAPKのライブラリフォルダに追加する必要がある場合。 ということであれば、以下の提案で使用することができます。

ライブラリは、ネイティブライブラリのパス(デフォルトは "libs")に配置します。 プロジェクトフォルダ のネイティブコードをビルドした場合 'アルメアビ' ターゲットに の下に libs/armeabi . でビルドした場合 アルメアビ-v7a の下に置いてください。 libs/armeabi-v7aです。

<project>/libs/armeabi/libstuff.so