如果iOS应用被黑客入侵,则进行检测

问题描述 投票:7回答:4

我的朋友有一部越狱的iPad。当他从Installous安装Business Model Generation应用程序并尝试使用它时,该应用程序显示UIAlertView,并显示以下消息:“破解版”

有人知道该怎么做吗?

我有2个想法:

  1. [如果从App Store下载应用程序时有一些设置标志,则可以使用此标志:如果flag = NO,则显示UIAlertView
  2. 与服务器有关的东西(但在这种情况下,您应该知道所有设备ID以及谁从App Store中安装了应用程序)。

我正确吗?如何实现此功能?

ios xcode app-store jailbreak
4个回答
9
投票

您可以检测到两个文件:SC_InfoiTunesMetadata.​plist

如果找不到它们,则说明您的应用是盗版的:这些文件是从App Store下载后安装的。

这是要检查的代码:

NSString * bundlePath = [ [NSBundle mainBundle] bundlePath ];
if ( ! [ [NSFileManager defaultManager] fileExistsAtPath: ( @"%@/SC_Info", bundlePath ) ] )
{
    // jailbroken
}
if ( ! [ [NSFileManager defaultManager] fileExistsAtPath: ( @"%@/iTunesMetadata.​plist", bundlePath ) ] )
{
    // jailbroken
}

2
投票

[有一些库可以检测应用是否被破解(也包括越狱),该question提供了很好的概述,但基本上是通过检查签名者身份完成的]

一个库是AntiCrack。我没有使用过这个库,所以我不知道它的工作原理如何


0
投票

我正在迅速使用此代码:

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
}

-3
投票

这很简单,但是您可以检查cydia应用程序是否已安装(通过检查其文件夹是否存在)。如果已安装,则您不信任该设备。这样就有可能错误地散发从应用商店下载您的应用的越狱iPhone / iPad。

© www.soinside.com 2019 - 2024. All rights reserved.