Wie zu tun browserhax

Das Repo ist für für jeden 3DS Titel gedacht, die irgendeine Form von Web-Browser hat. Diese repo ist zur Erzeugung von ROP-Ketten für den Einsatz mit den zuvor genannten Zielen: kein Browser (n) ausnutzen werden in diesem repo enthält. Browser-Exploits aus dieser Repo seperate kann dies für die eigentliche ROP-Kette verwenden + alle erforderlichen ROP Gadgets usw.

Unterstützte Titel und Versionen

Die Versionen sind unten in folgendem Format aufgeführt: browserver titlever SYSVER. Welche browserver (Ziel Titel + Version des Titels) zu verwenden ist, durch Überprüfung des User-Agent automatisch ermittelt. Aus diesem Grunde, wenn hax mit diesem Zugriff muss der New3DS System Web-Browser den normalen User-Agenten, nicht der mobile User-Agent (der mobile User-Agent ist das gleiche für alle Versionen) verwenden, eingestellt wird.

Beachten Sie auch, dass mit dem System web-Browser, nur die letzte Nummer im System-Version (X.X.X-NUPVER) zählt eigentlich für die Browser-Version. Laden arm11code mit dem Old3DS Browser ist nur mit> = v5.0 NATIVE_FIRM unterstützt, wenn Sie Pre-v5.0 NATIVE_FIRM mit diesem verwenden möchten würden Sie die Quelle ändern haben. Normalerweise wird dabei nicht benötigt, da die * hax Nutzlasten System-Versionen, die alten sowieso nicht unterstützen.

Nur die USA, EUR, und JPN Browser werden unterstützt (mit Ausnahme siehe unten): die wichtigsten ExeFS codebin sind alle identisch für diese Regionen, im Gegensatz zu den anderen Regionen.

Beachten Sie, dass für CHN und TWN den Lader (mit 3ds_arm11code_chntwn.s) unterbrochen wird (die menustub nicht automatisch lokalisieren APT_GetServHandle aufgrund älterer homemenu / ctrsdk-Code).

  • 1.0.9934 v10 9.0.0-20..9.2.0-20
  • 1.1.9996 v1027 9.3.0-21..9.5.0-23
  • 1.2.10085 v2051 9.6.0-24..9.8.0-25
  • 1.3.10126 v3077 9.9.0-26..10.1.0-27 KOR wird auch für diese unterstützt.
  • 1.4.10138 v4096 10.2.0-28..10.3.0-28 KOR wird auch für diese unterstützt.
  • 1.5.10143 v5121 10.4.0-29..10.5.0-30 KOR wird auch für diese unterstützt.
  • 1.6.10147 v6144 10.6.0-31 KOR wird „unterstützt“ dafür, aber es ist nicht getestet.
  • 1.7.10150 v7184 10.7.0-32..11.0.0-33 KOR wird auch für diese unterstützt.
  • 1.8.10156 v8192 11.1.0-34

Wenn Sie einen Browser auf einem nicht unterstützten Browser-Version nutzen, um testen wollen nur zu sehen, ob es zumindest abstürzt, können Sie diese verwenden: „URL browserver =“. Wo ver eine der browservers aufgeführt in 3dsbrowserhax_common.php, wie zum Beispiel „85“ für New3DS oder „7“ für Old3DS (ohne Anführungszeichen) ist, oder was auch immer Versionen der Exploit-Seite unterstützt.

Nutzung mit eigenen Exploits

Mit PHP kann diese Repo mit dem folgenden verwendet werden:

  • Fügen Sie Config auf browserhax_cfg_example.php basiert, finden Sie die Datei für weitere Einzelheiten. Fügen Sie 3dsbrowserhax_common.php.
  • Stellen Sie den global $ ROPHEAP Variable an eine Adresse nach dem Prozess, der die ROP-Kette zum Speichern von beliebigen Daten (zum Beispiel verwenden kann, könnte dieser Speicher sein, wo Daten für Nicht-ROP-Chain-Daten aufgesprüht wurden, da diese Daten nicht benötigt wird, mehr an dieser Stelle).
  • Rufen Sie generate_ropchain (). Dies erzeugt eine ROP-Kette, die in JS über den $ ROPCHAIN ​​globalen Variable aufgenommen werden können. eine binary-only ROP-Kette statt, stellen Sie die $ generatebinrop globale Variable zu erzeugen, auf den Wert 1 vor generate_ropchain () aufrufen.
  • Die ROP-Kettendaten können nun zur Erzeugung der endgültigen HTML / JS verwendet werden, zum Beispiel: "var ropchain = unescape ($ ROPCHAIN);"
  • Dies kann vor den oben ROP-Chain-Daten verwendet werden, für die Verwendung als ROP NOP-Schlitten: "unescape ($ NOPSLEDROP);"
  • Dies kann zum Besprühen der Stapel-Pivot-Gadget-Adresse, wie für VTable funcptrs verwendet werden: "unescape ($ STACKPIVOT);"
  • Dies kann verwendet werden, wenn der Exploit erfordert den "Pop" Gadget "$ somestr = genu32_unicode ($ POPPC);"

Siehe oben in Bezug auf die CFG-Datei.

Standardmäßig Wenn $ ropchainselect nicht durch browserhaxcfg_handle_urlparams () initialisiert wurde, wird es $ ropchainselect value0 und $ arm11code_loadfromsd auf Wert2 eingestellt. Wenn diese mit einer Spinne Version vor der System-Version v7.1 ist, wird $ ropchainselect auf Wert1 gesetzt werden. Als nächstes unabhängig von Browser-Version, dann ruft browserhaxcfg_handledefault ().

Die Werte für $ ropchainselect:

Die Werte für $ arm11code_loadfromsd:

  • 0: Die arm11code Nutzlast ist in den ROP-Kettendaten selbst eingebettet.
  • 1: Die arm11code Nutzlast aus SD über diese Filepath geladen: "SDMC: /arm11code.bin".
  • 2: Die arm11code Nutzlast durch Anfordern eines binären mit http heruntergeladen wird, siehe das obige Beispiel config und ropgen_httpdownload_binary () in 3dsbrowserhax_common.php. Die binäre wird auf SD heruntergeladen, sobald sie mit, dass die Datei hat alle Nullen geschrieben, um es fertig ist, dann versucht er, die Datei zu löschen (die eigentlich nicht die Datei löschen, unbekannt, warum).

Browserhax Nutzung info

Wie jeder Exploit ausgelöst, hängt von der Exploit finden Sie in der Dokumentation für das separate ausbeuten dafür. Wie weiter unten gesagt, nur erfolgreich die Exploit auslösenden ist alles, was wirklich außer SD „/boot.3dsx“ gebraucht wird.

Dieser Lader wird zunächst versuchen, die hblauncher ropbin Nutzlast von SD-Karte „/browserhax_hblauncher_ropbin_payload.bin“ zu laden. Dies ist unabhängig von der Otherapp Nutzlast.
Wenn das Laden von SD ausfällt, wird dieser Lader dann erkennt automatisch die erforderliche Nutzlast, dann laden Sie es mit HTTP. Diese letztere Methode ist sehr zu empfehlen (es sei denn, diese Methode für den Benutzer nicht gut funktioniert): mit einer „/boot.3dsx“ auf SD-Karte, gibt es Null andere Setup / Benutzereingabe erforderlich, wenn die browserhax erfolgreich ausgelöst wird.
Wenn es mit den beiden obigen Methoden, um die Nutzlast Laden fehlschlägt, wird ein Absturz ausgelöst werden.

Hängen / an einem grau-bottom-Bildschirm Absturz bedeutet * hax Nutzlast Laden fehlgeschlagen ist, normalerweise ist dies aufgrund von Netzwerkproblemen (Sie sollten Ihr System neu starten, wenn dies geschieht).

Der Lader für Old3DS läuft tatsächlichen nativen Code im Kontext des Home-Menü, wenn Sie wirklich Ihren eigenen Code unter Home Menu ausführen möchten Sie diesen Code im Loader ändern können. Dieser Code wird in dem Home-Menü Prozess Boot sehr früh.

Wenn die untere Bildschirm ColorFill mit browserhax werden, um verschiedene Farben in der folgenden Reihenfolge festgelegt werden:

    1. Gelb: Browser ROP fing an zu laufen, bedeutet dies auch, die exploititself hat gut funktioniert.
    1. Gray: Diese ColorFill liegt direkt vor auf die ursprüngliche arm11code binäre Springen, für die Ausführung von nativen Code zum ersten Mal.
    1. Orange: Diese wird nach dem * hax Nutzlast erfolgreich in den Speicher über HTTP / SD geladen wurde.
    1. White: Dies wird durch die * hax Nutzlast selbst gesetzt, wenn es beginnt zu laufen.
  • megazig mit APT für die Unterstützung (für APT Sachen einmal der Home-Menü-Code in dem Lader zu laufen beginnt) während der anfänglichen + Implementierung schließlich erfolgreich Old3DS Home Menu Übernahme.

In Verbindung stehende Artikel