确定iPhone是否以编程方式被越狱


79

您如何(以编程方式)确定iPhone / iPod是否为:

  1. 越狱
  2. 运行软件的破解副本

Pinch Media可以检测电话是否被牢牢破了或者运行的软件是否被破解,有人知道他们是怎么做到的吗?有图书馆吗?


1
苹果知道如何确定:p
JoshJordan


2
如果您对此问题感兴趣,为什么不支持51区提议越狱的Stack Exchange网站
Richard Stelling 2012年

Answers:


39

是检测您的应用程序是否被破解的方法之一。

简而言之:破解通常需要更改Info.plist。由于您可以访问常规文件,因此确定此类更改非常容易。


1
不幸的是,有一种解决方法破坏了这种检测机制。一旦安装了该应用程序,就不再需要SignerIdentity密钥,因此,破解者只需将其放入越狱的手机并编辑plist即可将其删除。
莉莉·巴拉德

@KevinBallard您对检测2017年常见的越狱有什么建议吗?
心教堂

@Cœur不,自从写完这篇评论以来,我还没有研究这个问题。
莉莉·巴拉德

25

检测越狱电话就像检查/private/var/lib/apt/文件夹是否存在一样容易。尽管这不能检测到仅安装程序的用户,但到目前为止,大多数用户已经安装了Cydia,Icy或RockYourPhone(所有这些都使用apt)

要检测盗版用户,最简单的方法是检查SignerIdentity应用程序中是否存在密钥Info.plist。由于高级破解者可以轻松找到标准[[[NSBundle mainBundle] infoDictionary] objectForKey: @"SignerIdentity"]检查,因此最好使用通过#import <objc/runtime.h>或使用替代等效项提供的Objective C运行时来掩盖这些调用。


10

为了扩展zakovyrya的回复,您可以使用以下代码:

if ([[[NSBundle mainBundle] infoDictionary] objectForKey: @"SignerIdentity"] != nil) {
  // Jailbroken
}

但是,越狱您的应用程序的人可以对您的程序进行十六进制编辑,这样,他们可以编辑字符串@“ SignerIdentity”来读取@“ siNGeridentity”或返回nil的其他内容,然后通过。

因此,如果您使用此方法(或来自http://thwart-ipa-cracks.blogspot.com/2008/11/detection.html的任何其他建议):

  • 不要指望它永远有效
  • 请勿以任何方式使用此信息来破坏/阻碍您的应用程序(否则,它们将有理由对其进行十六进制编辑,因此您的应用程序将不会知道它已经越狱了)
  • 混淆这部分代码可能是明智的。例如,您可以将base64编码的反向字符串放入代码中,然后通过逆向过程在应用程序中对其进行解码。
  • 稍后在代码中验证您的验证(例如,当我说SignerIdentity时,它实际上说的是SignerIdentity还是siNGeridentity?)
  • 不要在像stackoverflow这样的公共网站上告诉别人你怎么做
  • 请记住,这只是一个指南,并不是万无一失的(也不是防饼干的!)-强大的力量将带来巨大的责任。

因此,这会检查您的应用程序捆绑包上的SignerIdentity,但是如果该应用程序未被黑客入侵或设备已被越狱,该怎么办?您将如何检测呢?
Edward Ashak

提出这样的问题,有人会回答:)
Benjie

5

要扩展上面的yonel和Benjie的评论:

1)上面由yonel链接的Landon Fuller依靠加密检查的方法,似乎是唯一仍未被自动破解工具击败的方法。我不会为Apple很快更改LC_ENCRYPTION_INFO标头的状态而过分担心。它似乎确实对越狱的iPhone产生了一些不可预测的影响(即使用户购买了副本...)

无论如何,我不会基于该代码对用户采取任何轻率的行动...

2)补充本杰的评论。混淆(在反盗版代码中处理任何字符串值时绝对必要):一种类似但甚至更简单的方法是始终检查要查找的值的加盐 哈希版本。例如(即使该检查不再有效),您仍将对照适当的常量将每个MainBundle的键名作为md5(keyName +“ some secret salt”)进行检查...相当基本,但一定要击败任何尝试找到主键串。

当然,这要求您能够间接查询要比较的值(例如,通过包含它的数组)。但这是最常见的情况。


现在,在iOS 7上,Landon Fuller方法是否仍然可以使用?
罗勒·布尔克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.