Jailbreak erkennen

Ich habe mein iPad vor einigen Monaten jailbreakt und konnte dann die Bloomberg-App, die ich für die Arbeit verwende, nicht öffnen. ("Device has been jailbreaked.") Ich dachte mir, dass es funktioniert>Jailbreaking (duh) und stellte mein iPad wieder her. Ich versuchte erneut, Bloomberg zu öffnen, und es hieß „Gerät wurde jailbreakt“.

Was macht Jailbreaking, das irreparabel nachweisbar ist?

Die wahre Antwort auf Ihre Frage lautet : Nichts . Aufgrund der Natur eines Jailbreaks können Aufrufe auf niedrigerer Ebene eingehakt und modifiziert werden – etwas, das eine iOS-Anwendung nicht kann. Was es im Grunde wird, ist, dass ein App-Entwickler versucht, Verstecken mit einem allwissenden Gegner zu spielen, der weiß, welche Züge Sie machen werden, bevor Sie sie machen. Es gibt ein Softwarepaket namens xCon , das die meisten Jailbreak-Erkennungen umgeht.

Antworten (3)

Soweit ich weiß, hat nur iBooks die Macht, ein Gerät mit Jailbreak wirklich zu blockieren. Dies geschieht, indem eine nicht signierte ausführbare Datei in das Stammverzeichnis des Systems geschrieben wird. Wenn das Gerät gesperrt (nicht jailbroken) ist, kann es nicht ausgeführt werden. Aber wenn das Gerät einen Jailbreak hat, wird die ausführbare Datei ausgeführt und iBooks wird beendet (stürzt ab). Dies ist jedoch Apples proprietäre App, und Software von Drittanbietern erhält dieses Maß an Kontrolle nicht. Tatsächlich befinden sich alle Apps von Drittanbietern in einer Sandbox und können nichts außerhalb ihres jeweiligen Installationsverzeichnisses berühren.

Also wonach sucht es? Gerüchte besagen, dass es nach Cydia sucht . Aber auch das würde erfordern, dass die App Zugriff auf das System hat, da Cydia nicht im Installationsverzeichnis Ihres Benutzers ( /private/var/mobile/Applications) installiert ist, sondern im Systemstammverzeichnis ( /private/var/stash/Applications). Und selbst wenn das wahr wäre, würde es bedeuten, dass es nach dem Löschen Ihres Jailbreaks wie erwartet funktionieren sollte. In diesem Fall scheint dies nicht der Fall zu sein (es sei denn, es hat den Gerätestatus in den Einstellungen der App gespeichert).

Aber es gibt noch eine Datei, auf die es vielleicht zugreifen kann:

/private/var/mobile/Library/Preferences/com.saurik.cydia.plist

Darüber hinaus wird diese Datei zusammen mit Ihren Backups mitgeführt, unabhängig davon, ob das Gerät nach der Erstellung jailbreakt ist oder nicht.

Entweder das, oder die App hat einfach den Zustand Ihres Geräts beim Jailbreak abgefragt und diese Informationen gespeichert und sie auch nach dem Entfernen des Jailbreaks (wie oben erwähnt) übernommen. Wenn Sie die App jedoch nach dem Jailbreak deinstalliert und neu installiert haben, müssen Sie sich darüber keine Sorgen machen. Wenn Sie jedoch Einstellungsdateien vom Jailbreak übrig haben, müssen Sie diese möglicherweise löschen. Führen Sie entweder einen erneuten Jailbreak durch und entfernen Sie sie über ssh oder installieren Sie iOS neu, aber anstatt Ihr Gerät mit einem Backup einzurichten, starten Sie sauber.

Dies scheint nicht die einzige App zu sein, die nach einem Jailbreak sucht. Time Warner Cable und Skype haben beide eine Geschichte davon. Leider immer noch keine glaubwürdigen Informationen darüber, wie sie dies erreichen. Da sie wie alle Apps von Drittanbietern im App Store an restriktive APIs gebunden sind, halte ich das nicht für so ausgefeilt.

Ich hatte keine Ahnung, dass Apps überhaupt die Möglichkeit haben, Jailbreak zu "überprüfen", sehr interessant / unglücklich.

Ich bin mir nicht sicher, ob dies in Ihrem speziellen Fall der Fall ist, aber als Teil der JailBrake-Datei wird die Datei „hosts“ geändert, sodass das Gerät Apple nicht für Updates kontaktiert, sondern die JailBrake-Update-Site. Ich würde nach Artikeln suchen, in denen erläutert wird, wie die Hosts-Datei zurückgesetzt wird.

Wie hat eine reguläre Anwendung Zugriff auf die Hosts-Datei, wenn sie nicht jailbroken ist?
@teknolagi Genau. Erstens können Apps die Hosts-Datei oder irgendetwas auf Systemebene nicht berühren; sie sind alle sandboxed. Zweitens berührt Jailbreaking nicht die Hosts-Datei.
Okay ... wie sonst?
Eine App könnte versuchen, den Apple-Update-Server zu kontaktieren. Der eingebaute TCP-Stack überprüft die Hosts-Datei auf die zugehörige IP-Adresse, die im Falle des Jail Brake nicht die richtige wäre. Dies würde sich darauf verlassen, dass die Anwendung, die dies testet, weiß, welche IP-Adressen die richtigen sind.
-1 Die hostsDatei in iOS wird während des Jailbreak-Prozesses nie berührt. Außerdem gibt es keine Jailbreak-Update-Site. Außerdem hat iOS, als Ihre Antwort geschrieben wurde, die Update-Server von Apple nie auf irgendetwas überprüft.

Es gibt viele Möglichkeiten, einen Computer/ein Gerät zu identifizieren. Beispielsweise könnte Ihre MAC-Adresse oder UUID auf die schwarze Liste gesetzt worden sein.

Er redet davon, einen Jailbreak zu identifizieren, nicht sein Gerät. GROSSER Unterschied da.
Wir wissen nicht, warum Bloomberg den Fehler wirft. Es ist möglich, dass sein Gerät auf die schwarze Liste gesetzt wurde und Bloomberg nur die Fehlermeldung wiederholt.
Wie wird es auf die schwarze Liste gesetzt?
@iglvzx Apps haben nicht die Möglichkeit, Geräte auf die schwarze Liste zu setzen. Dieser Code würde nicht nur abgelehnt und die Genehmigung der App verhindert, sondern es würde auch aus finanzieller Sicht wenig Sinn machen, da Jailbreaking NICHT illegal ist und Geräte leicht von einem Jailbreak in einen gesperrten Zustand wechseln können. Ein Telefon für einen Verstoß sofort zu sperren, ist mehr als drakonisch und aus geschäftlicher Sicht keine sehr gute Position.
Also, selbst wenn es so einfach wäre, dass die Server von Bloomberg die MAC-Adresse von @tekknolagi blockieren, Apple würde es nicht zulassen?
*Verzeihung. Ich meine die IP-Adresse.
@iglvzx Richtig. Sie haben kürzlich eine Änderung am SDK vorgenommen, um Entwickler daran zu hindern, mehr als nur eine einfache Abfrage des Geräts durchzuführen. Da Apple das Gerät kontrolliert, müssen Entwickler kaum auf die Interna zugreifen.