8

私の友人は脱獄したiPadを手に入れました。InstallousからBusinessModelGeneration Appをインストールして使用しようとすると、アプリケーションUIAlertViewに次のメッセージが表示されました。 ハッキングされたバージョン

誰かがそれを行う方法を知っていますか?

私には2つのアイデアがあります:

  1. App Storeからアプリをダウンロードするときに設定されたフラグがある場合は、このフラグを使用できます。の場合flag = NOは、を表示しUIAlertViewます。
  2. サーバーに関する何か(ただし、この場合は、すべてのデバイスIDと、App Storeからアプリケーションをインストールしたユーザーを知っている必要があります)。

私は正しいですか?この機能を実装するにはどうすればよいですか?

4

5 に答える 5

11

次の2つのファイルを検出できます:SC_InfoiTunesMetadata.​plist

それらが見つからない場合は、アプリが海賊版になっています。これらのファイルは、AppStoreからダウンロードした後にインストールされます。

これはチェックするコードです:

NSString * bundlePath = [ [NSBundle mainBundle] bundlePath ];
if ( ! [ [NSFileManager defaultManager] fileExistsAtPath: ( @"%@/SC_Info", bundlePath ) ] )
{
    // jailbroken
}
if ( ! [ [NSFileManager defaultManager] fileExistsAtPath: ( @"%@/iTunesMetadata.​plist", bundlePath ) ] )
{
    // jailbroken
}
于 2012-07-24T04:44:14.493 に答える
2

アプリがクラックされている(そしてジェイルブレイクされている)かどうかを検出できるライブラリがいくつかあります。この質問は概要を示していますが、基本的には署名者のIDを確認することで行われます。

1つのライブラリはAntiCrackです。私はこのライブラリを使用したことがないので、それがどれほどうまく機能するかわかりません

于 2012-07-23T09:43:06.770 に答える
1

私はswiftでこのコードを使用しています:

if Bundle.main.infoDictionary?["SignerIdentity"] != nil
     || !FileManager.default.fileExists(atPath: ("\(Bundle.main.bundlePath)/SC_Info"))
     || !FileManager.default.fileExists(atPath: ("\(Bundle.main.bundlePath)/iTunesMetadata.​plist")){
        // Jailbroken
}
于 2020-02-14T08:18:14.827 に答える
1

これは古い質問ですが、私自身は脱獄開発者であるため、最近ますます関連性の高い脱獄検出バイパスなどを探しているときに、脱獄開発者に役立つと思います。OPが抱える問題は、以前よりも頻繁に発生します。

これらの種類のアプリケーションは、2020年の今日でも、さまざまな脱獄ユーティリティを検出します。私は脱獄開発者です。iOSのバージョンに関係なく脱獄を構築するときは、さらに支援するためにかなりの数の基本バイナリを追加します。

現在では、または/jb/binなどのさまざまな非表示フォルダーに配置されていますが、以前は、/binなどのデフォルトのiOSディレクトリに文字通り配置されていました。/jailbreak/binbag//jb/jbstuff//sbin

ジェイルブレイク検出機能を備えたアプリケーションは、これらのベースバイナリ[NSFileManager defaultManager] fileExistsAtPath:...の存在をチェックしCydia(ほとんどの場合、チェックし/bin/bashますが、最近ではさらに多くの場合)、今日では、ROOT FSが再マウントされているかどうかもチェックしますR/W(通常ROは、/var書き込み可能のみ)。

からダウンロードされた微調整はCydia通常、脱獄の検出をチェックしません(まあ、ほとんどの場合、さまざまな脱獄開発者の間にドラマがあるので、今日でも人為的な制限があります)が、ダウンロードしたリポジトリをチェックします。

AppSync Unifiedほとんどの場合、それは微調整が最終的に行ったことと同じくらい簡単です。

#defineツイークのコードには、適切なCydiaリポジトリURLまたは識別子を持つ変数またはどこかがあり、ツイークはCydiaリストをチェックして、そこからツイークがダウンロードされているかどうかを確認します。そうでない場合は、アラートが表示されます。

いくつかの調整は、電話を再起動するたびにサーバー側からライセンスがダウンロードされる奇妙なDRMを実装します(これは奇妙で、脱獄コミュニティではほとんど使用されていません)。

AppSyncUnifiedTweakの機能の例を次に示します。

#define DPKG_PATH "/var/lib/dpkg/info/net.angelxwind.appsyncunified.list"

....

if (access(DPKG_PATH, F_OK) == -1) {
        NSLog(@"You seem to have installed AppSync Unified from a Cydia/APT repository that is not cydia.akemi.ai (package ID net.angelxwind.appsyncunified).");
        NSLog(@"If someone other than Linus Yang (laokongzi) or Karen/あけみ is taking credit for the development of this tweak, they are likely lying.");
        NSLog(@"Please only download AppSync Unified from the official repository to ensure file integrity and reliability.");

}

....

したがって、このジェイルブレイクの調整の場合、ダウンロード元のリポジトリをチェックするだけです。ここでの簡単なパッチは、AppSyncUnified.dylibHopperやIDA、さらにはRadare2などのarm64 / arm逆アセンブラにロードして、ブランチにパッチを適用することです。B条件付きブランチの代わりに作成して、比較の結果が考慮されないようにします。それと同じくらい簡単です。AppSync Unifiedの完全なソースコードを分析したい場合は、GitHubリポジトリがあります。

もちろん、私が言ったように、多くの微調整はサーバー側のDRMのようなより洗練されたスキームを使用しますが、それらのどれもがフェイルプルーフではありません。

*私は著作権侵害の微調整を容認していませんのでご了承ください。この返信は、このページへの新規参入者を支援するために作成されたものであり、脱獄検出および脱獄調整DRMの現在のステータスに関する洞察を提供することを目的としています。適切なリポジトリから有料の微調整​​を購入してください。費用は1ドル程度です。

于 2020-03-01T11:06:13.500 に答える
-3

かなり簡単ですが、cydiaアプリがインストールされているかどうかを確認できます(フォルダーが存在するかどうかを確認することで)。インストールされている場合は、デバイスを信頼していません。これにより、アプリストアからアプリをダウンロードしたジェイルブレイクされたiPhone/iPadが誤ってリリースされるリスクが残ります。

于 2012-07-23T09:52:32.627 に答える