Wie kann ich erkennen, dass eine iOS-app auf einem jailbroken Telefon?
Wenn ich möchte, dass meine app sich anders Verhalten, die auf ein jailbroken iPhone, wie würde ich mich über diese Entscheidung?
InformationsquelleAutor Ben Gottlieb | 2009-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt davon ab, was du damit meinst jailbreak. In dem einfachen Fall, sollten Sie in der Lage sein zu sehen, ob Cydia installiert ist, und gehen durch, dass - so etwas wie
Für hacked Kernel, es ist ein wenig (viel) mehr beteiligt.
Beachten Sie, dass nicht alle Benutzer über Cydia installiert-das ist nicht eine gute Kontrolle, und Sie sollten sehen Sie lieber für so etwas wie /bin/bash, /alle/ Benutzer // haben.
Wo findet apt-store seine Infos? Oder könnte ich einfach anrufen, eine system () - Befehl und finden Sie heraus. Ich möchte herausfinden, ob Sie bestimmte apps und wenn Sie Sie haben, dann beschränken Sie die app
An diesem Punkt, fast alle Benutzer haben Cydia. Es ist wahrscheinlich genug, um zu überprüfen, für, die jetzt. Allerdings, wenn Sie möchten, eine 100% zuverlässig überprüfen, werden Sie wollen, verwenden Sie einen kernel-basierten überprüfen, wie unten beschrieben.
FWIW die Datei überprüft sind trivial zu umgehen sein. Man kann mobilesubstrate zu Haken
fileExistsAtPath:
und machen es zurückNO
für den spezifischen Pfad, den Sie überprüfen.InformationsquelleAutor wisequark
Überprüfung der Datei-Pfad
/Applications/Cydia.app
ist nicht erlaubt auf einem normalen Telefon? Ich habe noch nie gehört von Apple erkennen dies und die Ablehnung einer app, aber Apple ist unberechenbar. Cydia hat ein URL-Schema cydia:// werden kann juristisch überprüft mit UIApplicationcanOpenURL:
kann dieser string nicht geändert werden, wenn die app gecrackt ist?
Für iOS9.0+ Sie müssen auch hinzufügen LSApplicationQueriesSchemes-Taste in der app plist. Ansonsten canOpenURL wird immer false zurückgeben.
InformationsquelleAutor Mark Johnson
Prüfen, ob der kernel kaputt ist nicht, DASS viel mehr beteiligt.
Jailbreak macht der kernel-Signatur-Prüfung von signierten code melden Sie sich immer, dass der code korrekt signiert, ungebrochen Handys kann code ausführen, der mit einer fehlerhaften Signatur.
So, der eine separate ausführbare Datei in der app mit einer fehlerhaften Signatur. Es könnte nur ein 3-Zeilen-Programm, das in main() und einem Rückgabewert. Kompilieren Sie die ausführbare Datei ohne code signing (schalten Sie es im Projekt-Einstellungen->Build) und Unterschreiben Sie es mit einem anderen Schlüssel mit der "codesign" commandline utility.
Haben Ihre app exec die separate ausführbare Datei. Wenn Ihr Programm nicht bekommen kannst, ist der Rückgabewert beim ausführen der separate ausführbare Datei mit der schlechten sig, es ist definitiv eingesperrt. Wenn die separate ausführbare Datei zurückgibt-OK, das Telefon ist definitiv jailbroken.
Vielleicht Dinge haben sich geändert, aber nicht die Ausführung einer separaten ausführbaren verhindern, dass Sie genehmigt wird, in den app store?
Kann jemand Antwort auf die vorherigen Kommentare? Dies ist wichtig, Fragen.
InformationsquelleAutor GregH
Dies ist ein code, kombinieren einige Antworten, die ich gefunden für die dies brauchen, und geben Ihnen eine sehr viel höhere Erfolgsquote :
ja, in der Tat..
Diese Methode sollte eine inline C-Funktion, nicht Objective-C. Es ist zu einfach zu entdecken und zu umgehen Objective-C-Methoden, vor allem, wenn Sie es nennen
isJailbroken
hat diese Abdeckung Geräte Jailbreak mit Taig?
Ich weiß nicht.. Sie sind mehr als eingeladen zu prüfen, und fügen Sie hier eine Antwort 🙂
InformationsquelleAutor Yossi
es gibt keine perfekte Lösung. Es wird immer jemand sein, der wird einen Weg finden, Sie zu umgehen, Ihre Schutz, es ist einfach eine Tatsache.
InformationsquelleAutor Richard J. Ross III
Können Sie erkennen, ob ein Gerät JailBroken oder nicht, indem Sie für die folgenden:
Es ist ein open-source-Bibliothek, die ich angelegt aus verschiedenen Artikeln und Büchern. Versuchen Sie es auf GitHub!
InformationsquelleAutor user3088680
Habe ich überarbeitet in Swift 2.3 die Lösung von @Yossi
InformationsquelleAutor Alex Peda
Die modernste Methode die ich kenne ist mit
objc_copyImageNames()
Funktion. Gibt es eine Liste der derzeit geladenen Bibliotheken und da die meisten Menschen haben MobileSubstrate auf jailbroken Geräte und die meisten iAP crack-tools, die davon abhängen, zumindest einige MobileSubstrate Bibliotheken wird sich zeigen.Ich hab keins, allerdings kann man sich die
deb
Datei MobileSubstrate entpacken und blacklist (fast) alle.dylib
's gepackt.Danke, ich habe einige Codes herausgefunden und ich kann hinzufügen, in einige mehr Sachen, die basierend auf Ihren Kommentar. Vielen Dank!
InformationsquelleAutor Maxthon Chan
Ich bin mir nicht bewusst irgendwelche "APIs", die es für diese. Wenn es dann ein jailbreak-Maskierung Produkt wäre schnell bedeckt Sie.
Viele Menschen weisen darauf hin, es ist ein Katz-und-Maus-Spiel. Und nachdem beide Spieler zu Experten, kommt es darauf an, wer den ersten Zug. (Person, die das Gerät hält.)
Fand ich viele gute Anregungen für die Erkennung von jailbreak in Zdziarski in seinem neuen Buch "Hacking and Securing iOS-Apps". (Persönlich, ich bezahlte mehr für den O ' Reilly eBook denn Sie erlauben das kopieren und einfügen.)
Nein, ich bin nicht mit dem angeschlossenen Verlage. Aber ich fand es ein gutes Buch. Ich mag es nicht zu veröffentlichen nur Hacker' Fehler, so dass Sie Sie beheben kann, so dass ich dachte, ich würde zeigen Sie auf das Buch.
InformationsquelleAutor Walt Sellers
Versuchen, ausführen von unsignierten code über Ihre Anwendung.
Einem jailbroken-Geräte in der Regel weist die folgenden Merkmale auf:
Nur überprüfen der Datei-Existenz für jailbreak-Erkennung, ist zum scheitern verurteilt.
Diese überprüfungen sind einfach zu umgehen.
InformationsquelleAutor kurapix
Einige gemeinsame Dateien zu überprüfen:
/Library/MobileSubstrate/MobileSubstrate.dylib
/Applications/Cydia.app
/var/cache/apt
/var/lib/apt
/var/lib/cydia
/var/log/syslog
/var/tmp/cydia.log
/bin/bash
/bin/sh
/usr/sbin/sshd
/usr/libexec/ssh-keysign
/etc/ssh/sshd_config
/etc/apt
Meisten check für Cydia zugehörigen Dateien.
InformationsquelleAutor DevC
Ich würde vorschlagen, mit der Suche nach Dateien, die nicht auf einer "vanilla" - iPhone. Alle jailbreak-kits die ich gesehen habe ssh installiert. Das könnte ein guter Indikator für ein jailbroken Handy.
Ich habe nicht wirklich Schritt gehalten mit der jailbreak-Szene. Aber soweit ich mich erinnere, als ich dies schrieb (Jan '09), Ziphone und andere installiert ssh sowie das bsd-subsystem standardmäßig. Vielleicht ist das nicht mehr wahr.
Vertrauen Sie mir, wenn ich sage, dass chpwn hat gehalten, bis mit der jailbreak-Szene.
InformationsquelleAutor Gordon Wilson
Was wir getan haben ist, wir haben bereits einen RSS-feed für die Kommunikation mit unseren Benutzern (Aktien Live), legen wir eine Nachricht, die besagt etwas wie dieses:
Dann Bearbeiten Sie die Benutzer-Interaktion und tun, was angemessen ist, wie verhält sich anders etc...
InformationsquelleAutor Ilam
Versuchen zu finden eine Datei, die von cydia oder Jailbreak-Gerät erstellen. Oder versuchen zu schreiben in einer Datei außerhalb der app blackbox. Wenn es Ihnen gelingt, das zu tun, das Gerät kompromittiert ist/jailbroken 🙂
InformationsquelleAutor karim
Sind Sie gehen zu Folgen, ein bewegliches Ziel, aber Sie könnten versuchen, den Fortschritt von diesen Ressourcen, um zu sehen, wie effektiv Ihre Technik ist:
InformationsquelleAutor Michael Bishop
Hier meine Lösungen:
und rufen Sie es im inneren
viewDidLoad()
in Ihrem Start-Bildschirm-view-controller(oder was auch immer VC, die Sie anrufen, für die erste Zeit):InformationsquelleAutor imaginae
Versuchen, Zugriff Auf /Application/Preferences.app/General.plist
Sie sollten in der Lage sein, dies Zu tun auf einem jailbroken iPhone
Auf non-Jb-Telefon Werden Sie nicht in der Lage sind, Zugang Zu
-1 = Unjailbroken Geräte können auch öffnen und Lesen dieser Datei. (Getestet)
Ich gehe davon aus, dass die Leser hier schreiben können, Ihre eigenen source-code. Wenn Sie nicht kann - was machen Sie hier?
InformationsquelleAutor aker