So brechen Sie ein iPhone und führen einen Dienst für 15 Millionen Benutzer aus

Im Sommer 2014 gingen meine Freunde und ich spazieren und ein historisches Ereignis ereignete sich. Während der Videoaufnahme fiel das iPhone 5C plötzlich aus den Händen meiner Frau und stürzte auf den Betonboden.

In diesem Moment schien es mir eine traurige Situation zu sein. Genau dies war jedoch der Anstoß für den Start des Dienstes, der mittlerweile mehr als 15 Millionen Nutzer bedient.

Was hat das iPhone damit zu tun? Was für ein Service? Wie hängt das alles zusammen? Antworten unter dem Schnitt!



Vorwort


In diesem Artikel möchte ich Ihnen die Ereignisse mitteilen, die 2014 begonnen haben. Ich werde Ihnen alles so erzählen, wie es war, während mein Gedächtnis frisch ist, und auch Informationen weitergeben, die noch nirgendwo veröffentlicht wurden.

Reparieren


Wie jeder, der die Bitterkeit von Glasscherben an seinem Lieblingsgerät spürte, wollte ich dies so schnell wie möglich beheben. Das Display selbst wurde nicht beschädigt und die Reparatur ist nur ein Ersatz für das Touchscreen-Glas. Ein Freund hat SC in Kiew empfohlen, und ich habe dort ein Telefon geschickt. Sie klebten es wieder und schickten es mir zurück. Ich konnte es kaum erwarten, das Telefon per Post zu erhalten.

Sobald ich es erhielt, erwartete mich eine weitere Enttäuschung. Der Touchscreen wurde ersetzt, aber an den Rändern des Displays befanden sich gelbe Flecken. Im SC versprachen sie mir, das Problem zu beheben oder es zusammen mit dem Display durch das Original zu ersetzen. Da ich immer noch Kratzer unter dem Glas fand, entschied ich mich, das Display komplett auszutauschen.

Eine Woche später bekam ich das Telefon zurück, es stellte sich heraus, dass das Display nicht original ist. Sogar an der Oberfläche selbst war klar, dass es sich in einem Winkel zum Körper befand. Und die Farben waren dunkler, was das Display deutlich vom Original unterschied. Es stellte sich heraus, dass die Originalanzeigen für das iPhone schwer zu finden sind. Ich habe mich entschlossen, diese Situation zu ertragen und irgendwann in der Zukunft das iPhone auf ein neueres Modell umzustellen.

Ein paar Tage vergingen, ich gewöhnte mich langsam an das chinesische Display. Ich saß auf einem Sessel und das Telefon zog sich aus meiner Tasche. Er fiel auf den Holzboden, das Glas zerbrach wieder. Das Telefon mit dem Originalglas fiel viele Male herunter, stürzte aber nicht bis zum Betonkampf ab. Aber die Chinesen, krumm geklebtes Glas, brachen beim ersten Versuch.



Die Erkenntnis, dass ich das Originalglas nicht kaufen konnte, ließ mich daran denken, einen Spender zu finden. Ich suchte nach einem iPhone, das für Teile auf olx verkauft wird. Es stellte sich heraus, dass es viele gibt, die ein Problem mit der iCloud-Funktion Find My iPhone haben. Diese Telefone können nicht aktiviert werden und bleiben in einem Ruhezustand, bis Sie die Apple-ID des Besitzers eingeben oder wenn der Besitzer das Telefon von seinem Konto entfernt.

Ich habe einen Spender gefunden, das iPhone 5C ist in ausgezeichnetem Zustand, es ist unter dem Bediener und unter iCloud gesperrt. Das Display näherte sich erfolgreich meinem Telefon und schließlich passte alles zusammen. Ich beschloss, das grüne iPhone für alle Fälle als Spender zu behalten. Endlich konnte ich mich beruhigen und dieses Problem vergessen.

Was weiter?


Mehrere Wochen vergingen, das grüne iPhone 5C lag auf meinem Schreibtisch unter dem Monitor. Aber von Zeit zu Zeit erinnerte ich mich an ihn, weil ich aus Gewohnheit keine Dinge mag, die im Leerlauf herumliegen. Das Telefon war daher an einen unbekannten Betreiber gebunden, und selbst bei Glasscherben hatte die iCloud keinen Sinn. Aber der Gedanke, dass das Telefon theoretisch auf unbekannte Weise entsperrt werden kann, hat mich nicht verlassen.

doulCi


Im Allgemeinen fing ich an zu googeln, die Foren zu lesen. Ich habe Informationen über doulCi gefunden (der Name ist nicht seltsam, aber es ist fast rückwärts iCloud). Es war ein Team von Enthusiasten, die einen Server zur Umgehung von FMI für frühe iOS 7-Firmware starteten. Sie starteten MITM und tauschten Pakete von einem entsperrten iPhone auf ein gesperrtes aus. Im Allgemeinen hat Apple zu diesem Zeitpunkt nicht überprüft, ob Pakete mit Serial / IMEI übereinstimmen, und doulCi hat dies erfolgreich verwendet. Sie haben lange Zeit nicht für ihren Server gearbeitet, aber es ist ihnen gelungen, etwa 70.000 Geräte freizuschalten. Diejenigen, die es geschafft haben, eine Verbindung zu ihrem Server herzustellen, haben ein funktionierendes Gerät erhalten, auf dem die SIM-Karte nicht funktioniert hat. Dann hat einer aus ihrem Team die Quelle ins Internet gestellt, und Apple hat ein solches Loch erfolgreich gepatcht. Zu diesem Zeitpunkt löste sich ihr Team auf und alle gingen unterschiedliche Wege. Ihr Server funktionierte nicht mehr.

Natürlich wusste ich damals nichts davon. Ich ging zu ihrer offiziellen Website und sah dort Timer, die sagten: "Warte bis 16:00 Uhr am Freitag, dann werden wir den Server starten und ihn kostenlos entsperren." Und überall gab es Felder für die Eingabe von IMEI und die Registrierung. Also habe ich beschlossen, diese Stunde zu warten. Sobald die Zeit gekommen war, stellte ich einen Alarm ein, um ihn nicht zu verpassen. Ich hielt das USB-Kabel bereit. Die Zeit kam, ich ging zu ihrer Site und dort funktioniert alles zu einer neuen Zeit, um den Server zu starten. Ich versuchte noch zu warten, und alles stellte sich als Werbeversuch heraus. Es störte mich ziemlich, aber ich würde nicht aufhören.

Proxyserver


Später tauchten Nachrichten über Proxy-Server auf, die besagten, dass Sie durch Herstellen einer Verbindung zu diesen auf die Webseite gelangen können.

Auf der Seite, die Apple herausgibt



Durch Klicken auf "Hilfe bei der Aktivierung" wurde der Benutzer zu einer Seite mit Text weitergeleitet. Aber Apple-Entwickler haben ein kleines Detail übersehen, der Link führte nicht zu HTTPS, sondern zu einer HTTP-Adresse.
http://static.ips.apple.com/deviceservices/buddy/barney_activation_help_en_us.buddyml
Dies ermöglichte das Abfangen und Ersetzen von Datenverkehr, da dieser nicht verschlüsselt war.

Die Server fielen ständig, das Beste, was ich fand, war der niltpH-Server. Aber er wechselte ständig die Ports, entweder damit Benutzer seine Site oft besuchten, oder der Server konnte es nicht aushalten, und so entfernte er die Last.

Ich habe mich ständig gefragt, warum ich einen Proxy erstellen soll, wenn Sie DNS-Abfragen weiterleiten können.
Es wird keine schwere Last geben und der Server wird immer online sein. Es gab aber nur Proxyserver.

Dann begann eine Welle von Betrügern, die anfingen, den Server massiv zu vertreten.
Viele Leute, die eine Seite mit Bezahlung für einen nicht existierenden vollständigen Crawl zeigten, litten unter solchen gefälschten Diensten. Mit Proxyservern konnten Sie die vollständige Kontrolle über den Datenverkehr erlangen. Daher haben Bösewichte Passwörter und Kreditkarten gestohlen, und Benutzer glaubten, dass dies funktionieren würde, da jede Änderung an ihrem Gerät glaubwürdig war.

Apple hat nichts getan, um einen Unterschied zu machen, aber ich habe es getan. Aufgrund meiner weiteren Aktionen konnte niemand sonst die Proxy-Server-Betrüger in der Suchmaschine finden.

Erster iCloud DNS Bypass Server


Gelöst werde ich meinen Server starten. An einem Winterabend im Dezember begann ich mit der Entwicklung. Um meine Idee umzusetzen, brauchte ich einen HTTP- und einen DNS-Server. Ich habe beschlossen, beide Dienste in C ++ mit Visual Studio 2010 zu schreiben. Arbeiten mit Sockets direkt byteweise ohne Bibliotheken von Drittanbietern.

Das DNS-Protokoll ist nicht kompliziert, für eine UDP-Anfrage, eine Antwort mit jeweils derselben Struktur. Für ein paar Stunden schrieb ich einen einfachen DNS-Server, der mit einer statischen IP-Adresse unter static.ips.apple.com antwortete und den Rest mit DNS von Google.

Dann fing ich an, einen HTTP-Server zu schreiben. Der erste Schritt bestand darin, einfach eine HTML-Seite zu erstellen. Es wurde beim Start des Programms in den Speicher geladen und dann an fertige Pakete an alle ausgegeben, die eine Anfrage an Port 80 gesendet haben. Mein Programm hat also eine Seite an alle zurückgegeben, die die Anfrage gesendet haben, unabhängig vom angegebenen Host. Alles funktionierte im Browser, aber als ich DNS in den Wi-Fi iOS-Einstellungen registrierte und auf "Hilfe bei der Aktivierung" klickte, erhielt ich eine Fehlermeldung im Telefon.

Nach der Analyse des Datenverkehrs stellte sich heraus, dass Apple XML-Dateien verwendet und eine Remote-Schnittstelle für diese generiert.

Beispielcode finden Sie unter dem Link zur Aktivierungshilfe:
static.ips.apple.com/deviceservices/buddy/barney_activation_help_en_us.buddyml

Und hier ist die Antwort des Servers, der auf dem gesperrten Gerät nach dem Passwort fragt:

 <xmlui> <script><![CDATA[function enableNextButton(){ var fieldPassword = xmlui.getFieldValue('password'); if (fieldPassword && fieldPassword.length >= 3) return true; return false; } function validateForm() { var fieldLogin = xmlui.getFieldValue('login'); var fieldPassword = xmlui.getFieldValue('password'); if (fieldLogin == 'test') { xmlui.setFieldInvalid('login', false); xmlui.alert("Test!"); } else { xmlui.setFieldInvalid('login', true); xmlui.alert("Value entered is not 'test'."); } }]]></script> <page> <navigationBar title="Activation Lock" loadingTitle="Activating..." hidesBackButton="false"> <linkBarItem position="right" label="Next" httpMethod="POST" url="/deviceservices/deviceActivation" style="blue" enabledFunction="enableNextButton"/> </navigationBar> <tableView> <section footer="This iPhone is linked to an Apple ID. Enter the Apple ID and password that were used to set up this iPhone."/> <section footer="  : This iPhone has been lost. Please call me. (123) 456-1234"/> <section footer="  " footerLinkURL="http://static.ips.apple.com/deviceservices/buddy/barney_activation_help_ru_ru.buddyml"> <editableTextRow id="login" label="Apple ID" placeholder="example@icloud.com" disableAutocapitalization="true" disableAutocorrection="true" keyboardType="email"/> <editableTextRow secure="true" id="password" label="" placeholder=""/> </section> </tableView> </page> <serverInfo isAuthRequired="true" activation-info-base64="      "/> </xmlui> 

Nachdem Sie die Quelle studiert haben, können Sie verstehen, dass der Code JavaScript enthält und innerhalb der Tags <! [CDATA [..]]> funktioniert

Zu diesem Zeitpunkt verwendeten vorhandene Proxys eine einzelne Seite mit HTML-Code.

 <xmlui> <page> <navigationBar title="Games" loadingTitle="Loading..." hidesBackButton="false"> <linkBarItem position="right" label="Next" httpMethod="POST" url="/deviceservices/deviceActivation" style="blue" enabledFunction="enableNextButton"/> </navigationBar> <htmlLabelRow> <![CDATA[<html>   HTML  </html>]]></htmlLabelRow> </page> </xmlui> 

Auf dem Telefon konnte anstelle des Aktivierungstextes eine einfache Site angezeigt werden. Cookies haben funktioniert. Durch Klicken auf einen externen Link gingen jedoch alle Stile in die Irre und nachfolgende Übergänge waren unmöglich. So funktionierten damals Proxy-Server.

Nach ein paar Stunden hatte ich einen funktionierenden DNS- und HTTP-Server, der für jede Anfrage 1 Seite zurückgab. XMLUI stellte sich als Markup mit unbekannten Parametern heraus, die nirgendwo gefunden werden konnten. Und jetzt gibt es nirgendwo eine Dokumentation. Apple verwendet es nur in seinen Produkten.

Tatsächlich werden die Standard-iOS-Elemente von XMLUI generiert, auch diejenigen, die offline arbeiten. Listen, Schaltflächen, Symbole, Datums- und Uhrzeitauswahl, Untermenüs - all dies ist nur das Ergebnis der Konvertierung des XML eines ähnlichen Skripts in eine Online-Oberfläche.

Die Erkenntnis, dass viele der Schnittstellen in iOS so ungeschickt gemacht wurden, enttäuschte mich ein wenig. In diesem Fall erwarten Sie, dass bereits alles so optimal wie möglich ausgeführt wurde und sich herausstellt, dass sich eine Ebene auf der Ebene befindet.

Dann wurde mir klar, dass Sie theoretisch, wenn Sie das Layout der Benutzeroberfläche kennen, eine sehr komfortable native iOS-Benutzeroberfläche mit einer Liste von Symbolen und Links erstellen können. Wie Einstellungen in iOS. Und ersetzen Sie es vollständig durch den Aktivierungsdialog.

Alles, was ich aus dem bereits gespeicherten Code verstanden habe, ist, dass es eine bestimmte Tabelle gibt, die viele <Abschnittsfußzeilen hinzufügen kann, die auf andere XMLUI-Dateien verweisen können. Es ist durchaus möglich, Ihren XMLUI-Server mit einigen Informationen zu versehen. Aber ich wollte genau die Liste mit Websites erhalten, damit ich zum Beispiel zu Google gehen kann.

Wie erstelle ich eine Markup-Oberfläche, ohne die Befehle zu kennen?


Das erste, was mir einfiel, war, dass iOS, da es Befehle generiert, die Zeichenfolgen von XML-Parametern vergleicht, sodass sie irgendwo in der Firmware gespeichert werden müssen. Im Idealfall finden Sie eine Datei mit einer Liste von Befehlen, die Sie dem XMLUI-Code hinzufügen können. Nein, dies ist jedoch nicht geschehen.

Zu diesem Zeitpunkt war das iPhone 4 bereits vollständig gehackt. Dort können Sie unter dem Bootloader booten und vollen Zugriff auf das Dateisystem erhalten. Es spielt keine Rolle, ob ein Kennwort von iOS vorhanden ist oder nicht.

Ich fand die vom iPhone 4 heruntergeladene iOS 7-Firmware und fing an, sie auszuwählen. Ich stellte eine Liste berühmter Wörter aus den XMLUI-Dateien zusammen, die ich gesammelt hatte, und begann, Wort für Wort nach allen Firmware-Dateien zu suchen. Auf den ersten Blick, eine nutzlose Übung, ist es vergleichbar mit dem Auffinden einer Nadel im Heuhaufen, aber aus irgendeinem Grund war ich mir sicher, dass ich etwas finden würde. Mehr als eine Stunde verging, ich konnte nichts finden, aber die Datei dyld_shared_cache_armv7 erregte meine Aufmerksamkeit. Es wog bis zu 300 MB, während die gesamte Firmware etwa 1 GB wog.

Es stellte sich heraus, dass es sich um ein „Paket“ dynamischer Bibliotheken handelte. Um das Dateisystem nicht zu überlasten, packt Apple alle dynamischen Bibliotheken für alle Systemprogramme in eine Datei. Mit den Entwicklertools von Apple habe ich diese Datei entpackt und eine große Anzahl von Dateien erhalten. Ich fing wieder an, in ihren Daten nach Wörtern aus meiner Liste zu suchen, versuchte sie zu kombinieren und auszuwählen. Ich fing an, nach ähnlichen Schreibweisen zu suchen - ein paar Wörter, das erste mit einem kleinen Buchstaben, das andere mit einem Großbuchstaben, ohne Leerzeichen oder Unterstreichungen.

Nach unzähligen Versuchen konnte ich das Wort htmlButtonRow finden. Wenn Sie es in den Code einfügen, erhalten Sie einen Fehler, der irgendwie beeinflusst und erkannt wird. Der nächste Schritt war die Auswahl eines Ortes, an dem er angebracht werden sollte.

Schließlich funktionierte der Code und ich bekam die begehrte Menüleiste:

  <tableView> <section> <htmlButtonRow name="  "> </htmlButtonRow> </section> </tableView> 

Es wurde nur eine Zeile angezeigt, und beim Drücken des Textes passierte nichts. Der Name des Abschnitts htmlButtonRow sprach jedoch von HTML, was bedeutet, dass Sie dort wahrscheinlich den Seitencode hinzufügen können.
Das Einfügen von HTML-Code in eine Schaltfläche mit <! [CDATA hat funktioniert. Sogar den Übergang von der Schaltfläche zur Website verdient.

Ich habe bekommen, was ich wollte, eine Möglichkeit, eine Liste verschiedener Websites anzuzeigen und zu ihnen zu gehen. Dann begann ich mit der Entwicklung einer XMLUI-Codegenerierungs-Engine. Ich habe eine Liste der notwendigen Parameter für eine Schaltfläche geschrieben, dort einen Link zum Bild, Text und einen Link zur Site eingefügt.

Das Ergebnis war eine Textkonfigurationsdatei dieser Art:

 [Section] Name=Facebook Url=menu://https://m.facebook.com/ Img=https://iclouddnsbypass.com/Icons/B5w8iLX.png 

Darin habe ich eine Liste beliebter Websites erstellt.

Als nächstes erstellte ich Seitenvorlagen, in denen Schaltflächen hinzugefügt wurden, alles wurde statisch im Speicher gespeichert und bei Bedarf ausgegeben, ohne auf die Festplatte zuzugreifen.

Nach ein paar Tagen habe ich alle Fehler behoben und der Server war bereit für einen ständigen Start. Die erste Version von iCloud DNS Bypass wurde am 25. Dezember 2014 gestartet. Ich habe die DNS-Serveradresse auf w3bsit3-dns.com in den Thread über iCloud-Bypass geschrieben, an dem Tag, an dem die Site-Moderatoren mir geschrieben und vorgeschlagen haben, einen separaten Zweig zu erstellen. Wen kümmert es , hier ist ein Link zum Forenthread w3bsit3-dns.com .

Infolgedessen sah alles so aus:



Aufgrund der Einschränkungen der Benutzeroberfläche selbst war es jedoch nur möglich, dem Link zu folgen, und der anschließende Übergang zu Websites von Drittanbietern war nicht möglich. Infolgedessen konnte jeder nur die Liste der Sites verwenden, die ich dem Server hinzugefügt habe.

Fehlerbehebung bei der iCloud-DNS-Umgehung


Einige Tage nach dem Start startete mein Freund Dybik eine Site mit Serverinformationen. Ich habe eine Gruppe in VK erstellt und mit Serverbenutzern gesprochen. Es stellte sich heraus, dass auf der neuen iOS-Firmware HTML-Click-through-Links nicht mehr funktionieren.

Zu diesem Zeitpunkt hatten sich bereits etwa 500 einzelne Benutzer verbunden, und alle Bewertungen halfen mir zu glauben, dass ich etwas Nützliches tat. Und ich habe immer davon geträumt, ein großes Projekt zu starten. Diese Gedanken gaben mir die Kraft, nicht aufzugeben. Ich suchte erneut nach XMLUI-Wertnamen. Ich war mir sicher, dass es noch viele weitere nützliche Befehle gab.

Nachdem ich weitere 3-4 Stunden fleißiger Suchen und Rebounds verbracht hatte, fand ich endlich ein nützliches Tag
<linkRow und sein Parameterzubehör = "Offenlegung", wodurch die Schaltfläche zu einem Unterordner wird. Dies war genau das, was Sie brauchten. Die Liste funktionierte auf allen iOS-Geräten und sah nativer aus, da kein HTML mehr vorhanden war.

Der endgültige Schaltflächencode lautete wie folgt:

 <linkRow accessory="disclosure" label=" " image="https://" shouldScaleHTMLPageToFit="true" url="http://   .buddyml" httpMethod="GET"/> 

Sie schickten mir nützliche Links, die ich dem Menü hinzufügte, und bildeten eine große Liste. Sie haben auch Abstürze gesendet, die ich dem Menü hinzugefügt habe, und jeder konnte sie ausprobieren.

Ich habe auch eine Sprach-Engine erstellt, bei der Texte abhängig von der Sprache des Benutzers ersetzt werden. Er lud alle zum Übersetzen ein und im Laufe der Zeit schickten sie mir Übersetzungen aus verschiedenen Ländern. Dank freiwilliger Helfer wurde die Serverschnittstelle bereits in 50 Sprachen übersetzt. Ich habe auch Einschränkungen für die Liste der Websites für die Sprache vorgenommen, z. B. wird Russisch für russische Websites angezeigt, Chinesisch bis Chinesisch. Es wurde ein Chat hinzugefügt, der auf tlk.io basiert, aber später aufgrund von Spammern eine eigene Engine erstellt hat.

BildBildBild

Außerdem fand ich den Parameter shouldScaleHTMLPageToFit = "true", der die Ansicht des Browsers auf das Handy brachte, wo sie benötigt wird. Unterwegs fand ich einen weiteren wichtigen Parameter: ModalHTMLView = „true“. Damit konnte ich die Webseite auf Vollbild erweitern, die Drehung des Bildschirms und alle Klicks auf Links funktionierten ohne Fehler und Einschränkungen. Cookies funktionierten auch nach dem Neustart, daher habe ich sie verwendet, um die Anzahl der Benutzer zu zählen. Zum ersten Mal auf der Welt wurde es möglich, einen vollständigen Browser ohne Registerkarten auf einem gesperrten iOS-Gerät zu verwenden.

Über die Schaltfläche zum Hochladen von HTML-Fotos kann jeder die Kamera verwenden und die Taschenlampe auf die gleiche Weise einschalten. Ich habe eine Favoritenliste hinzugefügt, die Sie in der Benutzeroberfläche hinzufügen können. Es gab Radiosender im Menü, es war möglich, Musik zu öffnen, dann eine andere Registerkarte mit einer speziellen Schaltfläche zu öffnen, während die vorherige funktionierte, und Multitasking stellte sich heraus.

Dann stellte sich heraus, dass einige Benutzer keine Verbindung zum Server herstellen können. Der Grund dafür waren entweder Router oder Anbieter, die alle DNS-Abfragen durch ihre eigenen ersetzten. Und es war nicht möglich, die Domain durch meinen Server zu ersetzen. Dann habe ich ein kleines Programm für Windows entwickelt, mit dem der integrierte DNS-Server gestartet wird, mit dem eine Verbindung zum lokalen Netzwerk hergestellt werden kann.

Hier ist ein YouTube-Video des EverythingApplePro-Kanals über iCloud DNS Bypass, in dem Sie sehen können, wie die Benutzeroberfläche zu dieser Zeit aussah.


Zwei Monate später waren bereits mehr als 200.000 Geräte mit dem Server verbunden.



Hier ist ein Video, in Echtzeit können Sie die Anforderungen auf dem Server sehen, die zu diesem Zeitpunkt waren


Damit Apple jedoch feststellte, dass das Markup ein Markup enthält, mussten weitere 300.000 Geräte angeschlossen werden.

Eine weitere Welle von Betrügern


Zwei Monate nach dem Start im Internet war es unmöglich, etwas anderes über eine Problemumgehung als meinen Server zu finden. Dies setzte dem betrügerischen Proxy ein Ende, der Geld erpresste. Aber eine Welle von Anzeigen bei eBay begann, sie begannen, "iCloud Bypass" für 30-50 USD zu verkaufen. Die naiven und verzweifelten Besitzer der gesperrten Geräte sind leicht zu manipulieren, und Betrüger haben sie benutzt.

Nachdem Betrüger für den "Entsperrdienst" bezahlt hatten, gaben sie den Käufern Anweisungen, wie sie sich mit meinem kostenlosen Server verbinden können. Viele ahnten nicht einmal, dass sie ausgeraubt wurden. Ich war wütend und wollte etwas tun, um sie aufzuhalten.

Ich habe eine Nachrichtenseite in allen Sprachen geschrieben, damit jeder, der eine Verbindung herstellt, versteht, dass der Server frei ist. Eine solche Beschriftung verbleibt weiterhin in der Serverschnittstelle. Er beschwerte sich auch über Betrug bei eBay, aber dieser Krieg war endlos.

Ich erhielt viele Briefe und warf alles weg, was sie über Hacks fanden, ich veröffentlichte auf dem Server und versuchte alles. Manchmal stellte sich heraus, dass es auf den Desktop ging, und manchmal wurde alles entsperrt (es funktionierte nur mit Geräten, die über die Site gelöscht wurden, die Schnittstelle stürzte bis zum Neustart in den Betriebszustand ab).

Anhand der Informationen, die mir gesendet wurden, stellte sich heraus, dass es viele Quellen gibt, die anbieten, Geräte für Geld freizuschalten, das wirklich funktioniert hat. Ich habe versucht herauszufinden, wie ich es mit der gesamten Community teilen kann, um Missverständnisse über kostenpflichtige Dienste auszuräumen.

Benutzer erhalten aus folgenden Gründen ein gesperrtes Gerät:

  • Ich habe Ihr Apple ID-Passwort vergessen und Ihren Scheck verloren
  • Kaufte ein Gerät, ohne zu wissen, dass es gesperrt ist
  • Sie wurden Opfer von Ransomware und verloren den Zugriff auf ihre Apple ID
  • Das Gerät wurde im Verlustmodus gefunden

Jetzt kann ich zuversichtlich sagen, dass es nur zwei Möglichkeiten gibt, es vollständig zu lösen:

  • Phishing, Besitzerkennwörter stehlen und ein Gerät aus seinem Konto entfernen
  • Nach Erhalt des ursprünglichen Schecks löst ein Anruf zur Unterstützung von Apple ein Gerät, das sich nicht im Verlustmodus befindet
  • Löten einer Modem- oder Widerstandsmethode für das iPad von Pasha4ur

Im vergangenen Jahr wurden Phishing-Dienste massiv verteilt, und Apple entfernte daraufhin sogar die Nachricht vom Eigentümer auf dem Bildschirm des gesperrten Geräts. Dies war jedoch nicht der Grund für das weit verbreitete Auftreten von Phishing-Angriffen. Es gibt Quellen, die Informationen vom Apple ID-Konto für das Geld verkaufen, das für Angriffe verwendet wurde. Sie hörten auf, nur an Feiertagen im chinesischen Kalender zu arbeiten. Höchstwahrscheinlich handelt es sich dabei um Apple-Mitarbeiter in China, die Informationen aus dem Apple Care-Verwaltungsbereich kopieren. Ich beschloss, die erhaltenen Informationen zu überprüfen und alles stellte sich als wahr heraus. Es gab Adressinformationen, Telefonnummern, Sicherheitsfragen, keine Passwörter und keine Antworten. Dann habe ich versucht, Apple zu kontaktieren, um herauszufinden, was passiert ist, und meine Briefe wurden erfolgreich ignoriert. Achten Sie also auf Ihre IMEI / UDID, ohne neugierige Blicke auf sich zu ziehen. In Apple ID ist es besser, keine echten Informationen zu schreiben.

Notfallplan


Ich vermutete, dass Apple jemals einen Fehler in der HTTPS-Verbindung bemerken würde und der iCloud DNS Bypass-Server in einem Zug nicht mehr für alle Geräte funktionieren würde. Die Suche nach Alternativen hat mich veranlasst, das Captive Portal zu erstellen. Dieser Mechanismus wird in vielen Hotels und Flughäfen verwendet, wenn Sie Ihre Nummer auf der Website eingeben müssen, bevor Sie eine Verbindung zum Internet herstellen können.

Informationen über das Captive Portal waren ebenfalls schwer zu finden. Niemand hat jemals versucht, ein Autorisierungsportal über einen DNS-Server zu starten. Nach mehreren Tagen der Recherche gelang es mir, mein eigenes Captive Portal zu starten. Alles funktionierte wie in einem normalen Browser. Wenn Sie auf alle Links klicken, funktioniert dies ohne Einschränkungen. Im Allgemeinen war ich bereit, dass Apple den Fehler korrigierte, aber die Tatsache, dass Cookies gelöscht wurden, als das Portal geschlossen wurde, verwirrte mich.

Zu dieser Zeit funktionierte die XMLUI-Methode perfekt, ich beantwortete E-Mails, ich war daran interessiert, mit Menschen zu kommunizieren. In YouTube haben viele ein Video über meinen Server gedreht, und alle haben Informationen über die Suche nach einem vollständigen Crawl ausgetauscht.

Offline-Modus, ein vollwertiger Dateimanager ohne Internet


Fast ein halbes Jahr ist vergangen, seit der Server gestartet wurde und Apple nicht daran gedacht hat, die Markup-Seite zu korrigieren. Ich kann mich nicht genau erinnern, wann, aber ich war gelangweilt und habe versucht, das iOS-Dateisystem über XMLUI zu lesen. Es gelang mir, und ich konnte Dateien aus dem Dateisystem öffnen, wobei ich ihren Pfad im Voraus kannte.

Ich hatte eine Idee: Wenn Sie alle Dateien über das Programm vom Computer in die beschreibbaren Ordner auf dem Gerät ablegen, können Sie einen Dateimanager erstellen. Dann war es noch möglich, auf Dateien ohne Bestätigung auf einem gesperrten Gerät zuzugreifen, jetzt unter iOS 10 funktioniert dies nicht mehr.

Ich habe ein Code-Eingabefeld erstellt, um die Testschaltflächen zu entsperren, in denen sich der Dateimanager befand, und mehrere Freiwillige zum Testen eingeladen.



Es war möglich, Dateien in beliebigen Formaten hochzuladen und auf dem Gerät zu öffnen. Ich habe auch alle Menüs und Untermenüs in einer Datei zusammengeführt, wodurch es möglich war, sie einmal auf das Gerät herunterzuladen und dann ohne Internet zu verwenden. Ich wollte neue Funktionen so schnell wie möglich mit Serverbenutzern teilen. Zunächst musste ein Programm erstellt werden, das die Struktur des Dateisystems mit dem Server synchronisiert und den Benutzer identifiziert, indem ihm eine Liste der Dateien von seinem Gerät zur Verfügung gestellt wird.

Ich war sehr engagiert und begann mich zu entwickeln. Viele Stunden sind vergangen und ein Audio-Player mit einer Wiedergabeliste und der Möglichkeit, einen Titel auszuwählen, war bereit. Am nächsten Morgen regneten mir E-Mails mit Nachrichten, dass der Server ausgefallen sei. Ich habe alles überprüft, der Server lief, mehrere hundert Benutzer waren online. Aber nur die Glücklichen haben den Server nicht verlassen.
Am 13. Mai 2015 bemerkten Apple-Entwickler einen Fehler und korrigierten den Link-Text von HTTP zu HTTPS.

Über Nacht stellten alle Geräte die Verbindung zum Server ein und verwandelten sich wieder in nutzlose Eisenstücke mit dem Apple-Logo. Und irgendwann wurde die gesamte Entwicklung des Dateimanagers nutzlos. Niemand hat jemals herausgefunden, dass ich diesen Modus starten würde. Um diese Methode zurückzugeben, müssen Sie auf dem Gerät ein selbstsigniertes Zertifikat für die Domäne albert.apple.com installieren. Bisher war dies nicht möglich. Zum Zeitpunkt der Behebung des Fehlers, aufgrund dessen die alte Methode nicht mehr funktioniert, waren eine halbe Million eindeutiger Geräte verbunden.



Ich habe sofort damit begonnen, das Captive Portal zu starten und das gesamte Menü auf die Weboption zu verschieben. Die Oberfläche basiert auf Framework7, ich habe sie an die alte Menükonfigurationsdatei angepasst. Am selben Tag wurde der Server in einem neuen Look gestartet, in dem er sich noch befindet.


Auf Facebook hatte ich eine iCloud DNS Bypass-Seite, auf der ich nur Nachrichten und Server-Updates veröffentlichte. Mehr als ein Jahr ist vergangen. Aus irgendeinem Grund gefiel es Apple nicht und eines Tages (in Ordnung) sah ich die folgende Meldung ohne Vorwarnung:



Später schickte CloudFlare eine E-Mail mit der Meldung, dass jemand vom Apple-Gerät die tatsächliche IP-Adresse meiner Website angefordert hat, da dies gegen das Urheberrecht verstößt richtig. Obwohl ich nicht verstand, was der Verstoß war, war ich froh, dass dies alles und begrenzt war. Apple hat die ganze Zeit nie versucht, direkt Kontakt aufzunehmen und zu löschen, was ihnen nicht gefällt.

Eine solche Ironie des Schicksals, wenn meine Frau das Telefon nicht fallen gelassen hätte, wenn ich nicht vom Hauptprojekt abgelenkt worden wäre, um mich zu entspannen und meine Idee zu verwirklichen, dann würde der iCloud DNS Bypass-Server heute nicht existieren.

Jetzt hat die Anzahl der eindeutigen Benutzer die Grenze von 15 Millionen überschritten. Pro Tag werden 50-60.000 eindeutige Geräte verbunden.

Die aktuelle Version des Servers funktioniert auf allen derzeit vorhandenen iOS-Versionen. Und es gibt immer noch keine Alternativen zum iCloud DNS Bypass, der auf dem Captive Portal basiert. Der Server arbeitet seit dem Start rund um die Uhr und Spenden reichen aus, um Geräte zu mieten. Bisher werden alle HTTP-Verbindungen von einem einzigen in C ++ geschriebenen Programm bedient.

Hier finden Sie Statistiken aus Ländern mit den am meisten blockierten Apple-Geräten, die eine Verbindung zum iCloud DNS Bypass hergestellt haben. Insgesamt derzeit 15,3 Millionen.



Und ja, Sie können das Captive Portal auf Ihrem nicht gesperrten Gerät ausprobieren, indem Sie alles gemäß den Anweisungen im Video aus diesem Artikel tun. Außerdem können Sie einfach über einen beliebigen Browser zur Seite ui.iclouddnsbypass.com wechseln

Nachwort


Ich hoffe, ich habe dich nicht mit meiner Geschichte langweilen lassen, und es war interessant für dich. In unserem Universum gibt es keine Regeln, und ein Projekt, an dem Sie seit einigen Jahren arbeiten, kann mit einem Kupferbecken abgedeckt werden, und ein Hobby, für das Sie zwei Wochen verbringen, kann sich in einen Dienst verwandeln, der vielen Millionen Menschen dient. Ich möchte, dass Sie sich bei Ihrer Arbeit nicht langweilen und oft von dem abgelenkt werden, was Sie wirklich mögen.

Source: https://habr.com/ru/post/de405437/


All Articles