2009-05-10 13 views
62

Appleの評価プロセスに違反しない、iPhoneアプリケーションの著作権侵害を減らすために受け入れられる方法は何ですか?iPhoneアプリケーションの著作権侵害を減らす

私のアプリケーションが実行される固有のデバイスIDを提供するために "電話にかける"場合は、許可する有効な登録トークンを作成するために収集する必要があるその他の情報(アプリケーションを購入するために使用したApple IDなど)アプリケーションの使用?同様に、その余分なデータにアクセスするために私はどのようなコードを使用しますか?

現時点では、この問題に対する最も有効な技術的アプローチは何ですか?

(など、非プログラミングは著作権侵害が避けられない方法についてに回答はご遠慮ください、私は著作権侵害が不可避である知っている。私はそれを軽減する方法について説明しプログラミングベースの回答に興味があります。事前に感謝ご理解。)コメントでchpwnする

+36

私は彼らが聞きたい回答をあらかじめ指定している質問が大好きです。それが最良の答えを得る方法です。 ;) – jalf

+2

始めに哲学的脱線を断ち切ろうとしています。明らかに技術的な回答が望ましい。 –

+0

@Alex「緩和」の代わりに「敗北」のような用語を使用しないと「それをすることはできません」という回答は避けやすい –

答えて

48

UPDATE

くださいvisit and read

感謝。

コードが古すぎます! - 2009年5月11日

今のところ、あなたのiPhoneアプリケーションが海賊行為に使用されているかどうかを検出する簡単な方法があります。これには、iPhoneのユニークIDを受け入れられたIDのリストと照合する必要はありません。

  1. 編集Info.plistファイル
  2. 復号化するための鍵ペアを追加 UTF-8またはASCII
  3. へのバイナリからのInfo.plist:

    現在クラッカーが行う三つのことがありますInfo.plistファイル{SignerIdentity、 AppleのiPhone OSアプリケーションの署名}

最後のものは、このコードでチェックするのが最も簡単です。

NSBundle *bundle = [NSBundle mainBundle]; 
NSDictionary *info = [bundle infoDictionary]; 
if ([info objectForKey: @"SignerIdentity"] != nil) 
{ /* do something */ } 

私たちが作成するApp Storeアプリケーションでは、SignerIdentityはありません。そのため、設定の指示を実行すると、クラッカーや海賊版の作成が難しくなります。

How to Thwart iPhone IPA Crackers. iPhoneの著作権侵害とその抑制方法に関する情報がたくさんあります。

+0

私が尋ねた質問にお答えいただきありがとうございます。 –

+3

@David誰にも答えが得られないという簡単な質問:このような簡単な(5行の可能性のある)修正プログラムの場合、なぜそれほど頻繁に実装されていないのですか?あなたが認識している欠点はありますか?アプリストアのアプリのVASTの大半はクラックされており、ダウンロード可能です。 – mmc

+7

クラッカーがSignerIdentityリテラル文字列かinfoDictionaryセレクタ呼び出しをチェックするのはとても簡単です。あなたはそれらをあいまいにしたくなるはずです。 「何か」の部分もやっかいです。すぐには失敗することはありません。これはクラッカーに気づくでしょう。だから、あなたは大きな遅れで失敗する必要があります(おそらく30日間の試用期間を与えてから正当なコピーを購入するように頼む)。これをもっとシンプルにするのは難しいと思う。 –

5

コメントでAndrey Tarantsov氏が指摘しているように、バイナリの「SignerIdentity」文字列(HexEditのようなアプリケーションを使用)を探して置き換えるのはかなり簡単です。

あなたはその文字列をエンコードすることができますが、もう一度あなたがしなければならないのは、その1つの文字を変更することだけです。アプリケーションはもう "SignerIdentity"キーを探しませんが、おそらく存在しない(したがって、nullです)。そのキーがnullの場合、アプリはクラックされていないと判断します(アプリがクラックされていないとSignerIdentityはnullになるはずです)。

代わりに、info.plistのサイズを確認し、それを参照値と比較したいと思います。私は、シミュレータとデバイスのビルドに同じinfo.plistファイルサイズがないことに気付きました。デバッグ、リリース、およびディストリビューションのビルドにも同じです。したがって、Device Distribution Buildのinfo.plistファイルサイズを使用して参照値を設定してください。

filesize at launchを探す方法:

-1

チェックiTunesMetadata.plistをPurchaceの日のために時々、アプリが割れているとき、その日付は法外なものに変更されます。

また、購入者名フィールドが存在するかどうかを確認してください。個人使用のためのアプリをクラッキングした私の経験では、それは通常削除されます。誰もがTemple Runのアンチダンププロテクションがどのように機能するのか知っていれば、poedCrackModが得ることができないいくつかの保護と組み合わせて使うことができます(google poedCrackModはhackulo.usアカウントを作成し、devcセンターに行きpoedCrackModを探し、iDeviceにインストールします) 。

テンプルで物を壊さないクラッチは、アプリの亀裂の検出を止めることを目的としたオーバードライブと呼ばれる機能を備えています。 poedCrackModにはLamestPatchがありますが、これはあまり良くありません。また、poedCrackModはリバースエンジニアリングできるオープンソースのbashスクリプトです。要約すると、クラッチ/オーバードライブでは回避できないが、poedCrackModでクラックされる可能性があるコピープロテクションを持つアプリがあります。しかし、poedCrackModは、アプリの違法コピーチェックを回避することはできません。アプリの実行可能ファイルでインテグリティのチェックを手動で行うのは難しいです。だからあなたのアプリはクラックするのは難しいです。

0

PlistのMD5チェックサムを保存していて、CryptIDがしばらく時間がかかることを確認するようです。

関連する問題