Appleの評価プロセスに違反しない、iPhoneアプリケーションの違法コピーを減らすために受け入れられている方法は何ですか?
アプリケーションが「フォンホーム」で実行する一意のデバイスIDを提供する場合、作成するために他にどのような情報(Appleアプリケーションの購入に使用するID)など)を収集する必要がありますか?アプリケーションの使用を承認する有効な登録トークン?同様に、追加のデータにアクセスするにはどのコードを使用しますか?
現時点で、この問題に対する最良の技術的アプローチは何ですか?
(プログラミング以外の回答違法コピーがどうして避けられないかなどについてはご遠慮ください。違法コピーが避けられないことはわかっています。プログラミングベースの回答に興味があります。 。ご理解のほどよろしくお願いいたします。)
コメントでchpwnに感謝します。
今のところ、iPhoneアプリケーションが海賊版の使用のためにクラックされているかどうかを検出する簡単な方法があります。これには、iPhoneの一意のIDを承認済みIDのリストと照合する必要はありません。
現在、クラッカーが行うことは3つあります。
最後のコードは、次のコードで確認するのが最も簡単です。
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
if ([info objectForKey: @"SignerIdentity"] != nil)
{ /* do something */ }
通常、作成するApp StoreアプリケーションにはSignerIdentityが含まれていないため、nilを確認してからset命令を実行すると、クラッカーや海賊がさらに難しくなります。
私はこれを信用できないので、 iPhone IPAクラッカーを阻止する方法にアクセスしてください。 iPhoneの海賊行為とそれを抑制する方法については、たくさんの情報があります。
Andrey Tarantsovがコメントで指摘したように、バイナリの "SignerIdentity"文字列を探し(HexEditのようなアプリを使用)、それを置き換えるのは非常に簡単です。
その文字列をエンコードすることもできますが、その場合も、1文字を変更するだけで、アプリは「SignerIdentity」キーを探すのではなく、おそらく存在しない他のキーを探します(したがってnullです)。 )。そのキーがnullの場合、アプリはそれがクラックされていないと見なします(アプリがクラックされていない場合、SignerIdentityはnullである必要があるため)。
代わりに、info.plistのサイズをチェックして、参照値と比較します。 SimulatorとDevicesビルドのinfo.plistファイルサイズが同じではないことに気付きました。デバッグ、リリース、ディストリビューションのビルドも同様です。したがって、デバイス配布ビルドのinfo.plistファイルサイズを使用して参照値を設定してください。
起動時のファイルサイズ を探す方法:
PlistのMD5チェックサムを保存し、CryptIDをチェックすることは、しばらくの間はうまくいくはずです。