8

アプリに著作権侵害対策コードを入れようとしています。「SignerIdentity」文字列は16進エディタを使用してバイナリで検索および置換できるため、これに対する以前の回答(メンバーのステータスのためにリンクできません-ひどい)は簡単に反論できます。

代わりに、info.plist ファイルの fileSize をチェックして参照値と比較する方が確実に聞こえます (アプリをクラックするときに info.plist があちこちで変更されているため)。どうすればいいですか?以下を試しましたが、ログは0です。

NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *mainDictionary = [bundle infoDictionary];
NSLog(@"%d", [mainDictionary fileSize]);
4

4 に答える 4

7

ROT13 または同様の単​​純な隠蔽アルゴリズムhttp://en.wikipedia.org/wiki/ROT13を適用することにより、初心者のクラッカーがコード内の「SignerIdentity」への参照を見つけるのを防ぐことができます 。

ROT13 を適用すると、「SignerIdentity」は「FvtareVqragvgl」になります。

とにかく、あなたの質問への答え (Info.plist ファイルのサイズを取得する方法):

NSBundle *bundle = [NSBundle mainBundle];
NSString* bundlePath = [bundle bundlePath];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString* path = [NSString stringWithFormat:@"%@/Info.plist", bundlePath ];

NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path 
                                                             error:NULL];

if (fileAttributes != nil) {
    NSNumber *fileSize;

    if (fileSize = [fileAttributes objectForKey:NSFileSize]) {
        NSLog(@"File size: %qi\n", [fileSize unsignedLongLongValue]);
    }           
}

Info.plistまた、Xcode プロジェクト ディレクトリとバンドル内ののサイズ (バイト単位)Info.plistが異なる場合があることに注意してください。おそらく、ゲームを一度ビルドしてから、サイズを確認してから<your app bundle.app>/Info.plist、著作権侵害対策コードを更新することをお勧めします。

于 2009-05-24T13:46:57.830 に答える
5

iPhone 用にプログラミングしたことはありませんが、そのファイルのハッシュを取得して参照と比較し、誰かが参照ハッシュを新しいものに変更するのを防ぐためにハッシュ値をソルトすることはできませんか?

于 2009-05-24T13:52:02.297 に答える
2

ここで述べたように、iPhoneが刑務所で壊れているかどうかをプログラムで判断するinstall0usを介してインストールされた最新のクラックされたアプリのいくつかは、info.plistが変更されていないようです。(少なくともinfo.plistには署名者IDキーは含まれていません)。このような場合、どうすれば亀裂を検出できますか?

于 2010-01-11T10:21:48.267 に答える
2

そのコードにはまだ多くの特典があります。

文字列 Info.plist は簡単に見つけることができます。NSFileSize も非常に怪しいです....

于 2009-09-19T22:47:29.313 に答える