MSET9 - ein neuer ARM9 Exploit

  • N3DS_MSET9.png


    MSET9


    Bei mset9 handelt es sich um einen primären ARM9-Exploit für 3DS, der nur gestartet werden kann, wenn Dateinamensdaten zur eingelegten SD-Karte hinzugefügt werden.


    Danke

    • Luigoalma für etwas ASM-Hilfe in ID1gen!
    • Aspargas2 (die schwarze Katze) für ASM-Hilfe auch in ID1gen!
    • TuxSH für usr2arm9ldr und ein paar gute Ratschläge!
    • ToxicAven für erhebliche mset9.py-Verbesserungen!


    MSET9 in Aktion


    https://zoogie.github.io/web/m9/(%20%CD%A1%C2%B0%20%CD%9C%CA%96%20%CD%A1%C2%B0).webm


    Wie es funktioniert


    In der Implementierung für FSPXI:EnumerateExtSaveData (von MSET aufgerufen, um 3DS-Extdata-IDs für die Datenverwaltung zu analysieren) wurde der Rückgabewert des internen P9-Funktionsaufrufs zum Öffnen eines Verzeichnisses (beim Auflisten von Inhalten des Extdata-Verzeichnisses) nicht überprüft. Wenn der Aufruf fehlschlägt, wird daher ein nicht initialisierter Zeiger auf dem Stapel für einen vtable-Aufruf verwendet.


    Daher kann eine Datei, die mit 8 Hexadezimalziffern beginnt, Prozess9 zum Absturz bringen, wenn sie direkt im extdata-Verzeichnis abgelegt wird. Der Absturz kann auf unterschiedliche Weise erfolgen, basierend auf subtilen Unterschieden in der Art und Weise, wie der Benutzer das Absturzereignis auslöst.

    Während Prozess9 meist zu Null-Derefs führt, springt Prozess9 in einem bestimmten Kontext direkt zu einer ID1-Zeichenfolge, die im ARM9-Speicher gehalten wird. Überraschenderweise erkennt der 3DS nicht, welche Zeichen für den ID1-Verzeichnisnamen auf der SD verwendet werden, sondern benötigt nur genau 32 Zeichen. Dies ermöglicht es dem Angreifer, ARM-Anweisungen in den Unicode-ID1-Verzeichnisnamen einzufügen und die Kontrolle über den ARM9 und damit die volle Kontrolle über den 3DS zu übernehmen.


    Quelle: 3Dbrew


    Kann ich es schaffen?

    • Du benötigst einen 3DS mit Firmware 11.4 - 11.17, beliebige Region
    • Ein USB zu SD-Lesegerät
    • Windows/Linux-PC (dies könnte irgendwann auf MAC und/oder Android erweitert werden, wenn möglich)


    Richtungen

    Im Release-Archiv oder vorzugsweise im 3DS Hacks Guide – MSET9.


    Fehlerbehebung

    https://3ds.hacks.guide/troubleshooting.html#installing-boot9strap-mset9




    FAQ

    • F: Dadurch wird boot9strap installiert und auf NAND geschrieben?
      A: Ja! Was willst du sonst noch mit der ARM9-Steuerung machen, a9lh? PastaCFW? skizzenhafte Tetris-Klone“ :p
    • F: Das klingt gefährlich, Zoogie!
      A: Ja, das ist es schon, aber die Szene macht diese gefährlichen Sachen schon seit Jahren. Wenn Ihr Bedenken habt, könnt Ihr die Betaphase einfach aussetzen.
    • F: Was passiert, wenn ich den Exploit nicht deinstalliere, wenn ich fertig bin?
      A: Ihr werdet Probleme beim Starten zuvor installierter Titel haben, zusätzlich zu zufälligen Abstürzen in den FBI- und Systemeinstellungen. Stellt Sie also sicher, dass Ihr den Exploit bereinigt! (Option 4 im Menü mset9.py erledigt dies)

    (Der Rest davon dient eher eurer Information als allem Wichtigen)

    • F: Diese Datei, die den Exploit auslöst (002F003A.txt) ... sieht irgendwie aus wie ... eine virtuelle Adresse, nicht wahr?
      A: Es sind die Zeichen „:/“, etwas, das wir in einem typischen Datei-/Ordnernamen nicht anzeigen können. Eine praktische Tatsache dieser Datei (neben der Auslösung des Gesamtabsturzes) ist, dass die ersten 8 Zeichen dieses Hex-Dateinamens in ein u32 konvertiert werden, das zufällig 0x44 nach SP existiert, sodass ich es verwenden kann, um die fehlenden Zeichen in die Nutzlast einzufügen Dateipfad „sdmc??b9“ und halten Sie das Betriebssystem des PCs bei Laune.
    • F: Du hast in der Hack-Erklärung oben vorgeschlagen, dass FS_EnumerateExtData die verantwortliche Funktion ist, die den Absturz in MSET/ARM9 ermöglicht. Könnte dies im Userland-Homebrew aufgerufen werden, um ARM9 zu übernehmen?
      A: Vielleicht? Ich habe kurz mit genau dieser Idee herumgespielt, konnte aber im Gegensatz zur Pre-Userland-Methode MSET9 keinen Absturzkontext finden, den ich steuern konnte. Vielleicht könnte dies eine Übung für den engagierten Benutzer sein, um diese potenzielle Variante von MSET9 zu erkunden und zu konkretisieren! Es könnte auf der ganzen Linie nützlich sein.
      Interessante Tatsache: Wenn die 8-stellige Hex-Datei in extdata belassen wird, führt dies auch zum Absturz von FBI, wenn im Hauptmenü die Option „Ext Save Data“ ausgewählt wird. Es ist das einzige mir bekannte Homebrew, das FS_EnumerateExtData aufruft.
    • F: Du hast SafeB9SInstaller.bin zu SafeB9S.bin gekürzt. Warum?
      A: Behalte den Dateinamenstandard 8.3 von FAT bei, der lange Dateinamen vermeidet und somit erhebliche Platzeinsparungen in der FatFs-Bibliothek ermöglicht. Aus dem gleichen Grund wird auch „B9“ verwendet, obwohl es nichts mit FatFs zu tun hat. Bei diesem Exploit ist überall ein kleiner Code-Footprint von größter Bedeutung.
    • F: Warum funktioniert das nicht auf MAC?
      A: Weil es sich weigert , die folgende Unicode-Verrücktheit wiederzugeben: �﫿餑䠇䚅敩ꄈ∁䬅䞘䙨䙙꫿ᰗ䙃䰃䞠䞸退ࠊꁱࠅ캙ࠄsdmc退ࠊb9

      ( ͡° ͜ʖ ͡°)

    Zusätzlicher Dank
    Hierbei handelt es sich um Repos, die Homebrew-Binärdateien enthalten, die im Release-Archiv enthalten sind. Vielen Dank an die Autoren.


    GitHub - LumaTeam/Luma3DS: Noob-proof (N)3DS "Custom Firmware"
    Noob-proof (N)3DS "Custom Firmware". Contribute to LumaTeam/Luma3DS development by creating an account on GitHub.
    github.com

    GitHub - d0k3/GodMode9: GodMode9 Explorer - A full access file browser for the Nintendo 3DS console :godmode:
    GodMode9 Explorer - A full access file browser for the Nintendo 3DS console :godmode: - GitHub - d0k3/GodMode9: GodMode9 Explorer - A full access file browser…
    github.com

    https://github.com/d0k3/SafeB9SInstaller (umbenannt in SafeB9S.bin)

    https://github.com/devkitPro/3ds -hbmenu

    GitHub - SciresM/boot9strap: Boot9/Boot11 code execution.
    Boot9/Boot11 code execution. Contribute to SciresM/boot9strap development by creating an account on GitHub.
    github.com

    GitHub - Steveice10/FBI: Open source title manager for the 3DS.
    Open source title manager for the 3DS. Contribute to Steveice10/FBI development by creating an account on GitHub.
    github.com



    Quelle: https://github.com/zoogie/MSET9/

  • Probiere es mal jetzt. Wenn es nicht klappt, einfach auf den github (habe ich im erste Post eingefügt) gehen und dort auf den Link klicken:


    MSET9 in action

  • Denn 2 Link denn M geteilt hat ist ein direkt Link heißt wenn am PC bist könntest mit rechts klick direkt das Video laden, am Handy kann sein das dass Video geladen werden will

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!