著作権侵害を防止するためのInfo.plistファイルのファイルサイズを取得します。
-
05-09-2019 - |
質問
私は私のアプリでは著作権侵害対策コードを配置しようとしています。 (私は私のためにメンバーのステータスのにリンクすることはできません - 吸う)これに対する以前の答えは「SignerIdentity」の文字列がために見て、バイナリエディタを使用してバイナリに置き換えることができますので、簡単に、対抗することができます。
(アプリをクラッキングするときのInfo.plistがあちこち修正取得しているため)その代わり、Info.plistファイルのファイルサイズをチェックし、基準値と比較することは、より強固に聞こえます。私はそれをどのように行うのでしょうか?私は、次のことを試してみましたが、それは0をログに記録します。
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *mainDictionary = [bundle infoDictionary];
NSLog(@"%d", [mainDictionary fileSize]);
解決
あなたはROT13または類似の単純な隠蔽アルゴリズムを適用することによって、あなたのコード内で「SignerIdentity」への参照を見つけることからnoobishクラッカーを防ぐかもしれません http://en.wikipedia.org/wiki/ROT13する
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]);
}
}
また、バンドル内のXcodeプロジェクトディレクトリ内Info.plist
のサイズ(バイト単位)とInfo.plist
が異なる可能性があることに注意してください。おそらく、一度ゲームを構築し、その後<your app bundle.app>/Info.plist
の大きさを見て、あなたの海賊対処コードを更新したい。
他のヒント
私はiPhoneのためにプログラムされたことがありませんが、あなたはただ、そのファイルのハッシュを取ると、基準と比較し、おそらくちょうど新しいものに参照ハッシュを変更し、誰かを防止するためのハッシュ値を塩漬けことができませんでした?
そのコードはまだ多くのプレゼントを持っています:
の文字列のInfo.plistを見つけるのは簡単です。 NSFileSizeも非常に疑わしいです....
のように、ここで述べ iPhoneが刑務所であるかどうかの確認壊れたプログラムinstall0usを介してインストール、最新のひび割れのアプリケーションのいくつかは、彼らのInfo.plistが変更されていないように見えるを。 (少なくともInfo.plistファイルには、任意のsigneridentityキーが含まれていません)。 どのように我々はこのような場合に亀裂を検出することができた?