重複の可能性:
実行可能ファイルをリバース エンジニアリングから保護しますか?
主な目標として、使用されているヘッダー ファイルとライブラリに関する情報を暗号化したい
ほとんどの場合、私のアプリケーションは C++ で書かれており、iOS SDK の標準 I/O メソッドのみを使用しています。
重複の可能性:
実行可能ファイルをリバース エンジニアリングから保護しますか?
主な目標として、使用されているヘッダー ファイルとライブラリに関する情報を暗号化したい
ほとんどの場合、私のアプリケーションは C++ で書かれており、iOS SDK の標準 I/O メソッドのみを使用しています。
アプリ ストアは、ユーザーのデバイスに送信する前に、アプリケーションの実行可能ファイル (またはそのほとんど) を既に暗号化しています。iOS カーネルは、アプリの起動時にメモリ内のファイルの暗号化された部分を復号化します。
Objective-C は動的ライブラリ (UIKit や Foundation など) をロードするときに名前でクラスを検索し、実行時に名前でメソッド セレクターを検索するため、これらのクラスとセレクターの文字列は実行可能ファイルに表示される必要がありますが、それらは実行可能ファイルの暗号化された部分にあります。ファイル。
脱獄者は、カーネルがアプリのメモリを復号化した後にアプリのメモリを調べることで、iOS 暗号化システムを破ることができます。
これらの文字列を隠そうとするのに多くの時間を費やすことは、ほぼ間違いなく時間の無駄です。
ターゲット市場が脱獄が一般的な世界の一部である場合、サーバー バックエンドを使用するアプリケーションのアイデアを探し、アプリ内購入を使用してサーバー アクセスを消耗品として販売することをお勧めします。サーバーは、ユーザーがサーバー アクセスに料金を支払ったことを確認でき、アクセスを盗もうとするアカウントを禁止できます。
難読化には本質的に欠陥があり、定義上、アプリケーションを元の形式に復元するために使用されるコードが常に付属している必要があります。
熟練した攻撃者 (誰かがリバース エンジニアリングを試みた場合に対処することになります) は、難読化スキームによってそれほど妨げられることはありません。