Jump to content


MSET9 2.0

¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter, Mastodon o Threads!

MSET9 es un exploit primario ARM9 para 3DS que puede ser lanzado con sólo datos de nombre de archivo añadidos a la tarjeta SD insertada.

Cómo funciona

En la implementación de FSPXI:EnumerateExtSaveData (llamada por MSET para analizar los ID de extdata de 3DS para la gestión de datos), no se comprobaba el valor de retorno de la llamada a la función interna P9 para abrir un directorio (al enumerar el contenido del directorio extdata). Por lo tanto, si la llamada falla, se utilizará un puntero no inicializado en la pila para una llamada vtable.

Como tal, un archivo que comienza con 8 dígitos hexadecimales puede bloquear process9 si se coloca directamente dentro del directorio extdata. Puede bloquearse de varias formas basadas en sutiles diferencias en la forma en que el usuario desencadena el evento de bloqueo.

Mientras que en la mayoría de los casos conduce a referencias nulas, en un contexto específico, process9 salta directamente a una cadena ID1 que se mantiene en la memoria ARM9. Sorprendentemente, la 3DS no discierne qué caracteres se utilizan para el nombre del directorio ID1 en la SD, sólo requiere exactamente 32 caracteres. Esto permite al atacante insertar instrucciones arm en el nombre de directorio ID1 unicode y tomar el control del ARM9, y por lo tanto, el control total de la 3DS.

¿Puedo hacerlo?

  • Necesitas una 3ds 11.4-11.17, de cualquier región (probablemente, no las he probado todas)
  • Un lector USB a SD
  • PC Windows/Linux (esto podría ampliarse a MAC y/o Android en algún momento, si es posible)

PREGUNTAS FRECUENTES

P: ¿Esto instala boot9strap y escribe en la NAND?
R: ¡Sí! ¿Qué más vas a hacer con el control de ARM9, a9lh? pastaCFW? sketchy tetris clones" 😛

P: ¡Eso suena peligroso, Zoogie!
R: Sí, lo es, pero la escena lleva años haciendo estas cosas peligrosas. Si te preocupa, no pases de la fase beta.

P: ¿Qué pasa si no desinstalo el exploit cuando termine?
R: Tendrás problemas para ejecutar los títulos instalados anteriormente, además de fallos aleatorios en el FBI y en la configuración del sistema. ¡Así que asegúrate de limpiar el exploit! (la opción 4 en el menú mset9.py hace esto)

P: El archivo que activa el exploit (002F003A.txt) ... parece ... una dirección virtual, ¿no?
R: Son los caracteres ":/", algo que no podemos mostrar en un nombre típico de archivo/carpeta. Un hecho conveniente de ese archivo (además de desencadenar la caída general) es que los primeros 8 caracteres de ese nombre de archivo hexadecimal se convierten a un u32 que resulta existir 0x44 pasado SP, por lo que puedo usarlo para rellenar los caracteres que faltan en la ruta de archivo de carga útil "sdmc??b9", y mantener feliz al sistema operativo del PC.

P: Sugieres en la explicación del hack anterior que FS_EnumerateExtData es la función responsable de permitir el crash en MSET/ARM9, ¿podría ser llamada en userland homebrew para hacerse cargo de ARM9?
R: ¿Quizás? Jugué brevemente con esta misma idea, pero no pude encontrar un contexto de crash que pudiera controlar, a diferencia del método pre-userland que es MSET9. Tal vez esto podría ser un ejercicio para que el usuario dedicado explore y desarrolle esta variante potencial de MSET9. Podría ser útil más adelante.
Dato curioso: El archivo hexadecimal de 8 dígitos, si se deja en extdata, también bloqueará FBI al seleccionar la opción "Ext Save Data" en su menú principal. Es el único homebrew que conozco que llama a FS_EnumerateExtData.

P: Acortaste SafeB9SInstaller.bin a SafeB9S.bin, ¿por qué?
R: Mantiene el estándar de nombre de archivo 8.3 de FAT que evita Nombres de Archivo Largos, y por lo tanto permite un ahorro significativo de espacio en la biblioteca FatFs. "B9" también se utiliza por el mismo motivo, aunque no está relacionado con FatFs. En este exploit es de vital importancia que el código ocupe poco espacio.

P: ¿Por qué no funciona en MAC?
R: Porque se niega a renderizar la siguiente locura unicode: �﫿餑䠇䚅敩ꄈ∁䬅䞘䙨䙙꫿ᰗ䙃䰃䞠䞸退ࠊꁱࠅ캙ࠄsdmc退ࠊb9
( ͡° ͜ʖ ͡°)

MSET9 es una aplicación creada por Zoogie.


Que novedades incluye la versión 2.0

Released

  • Lista de cambios no disponible por el momento.

No te pierdas nada, síguenos en Twitter, Mastodon o Threads!
Preguntas, aportes y peticiones en el foro.

  • Contenido similar

    • Por Dekuwa
      GodMode9 es un explorador de archivos con acceso completo para Nintendo 3DS, permitiéndnos accer a nuestra tarjeta SD, a las particiones FAT de la SysNAND y EmuNand, y básicamente cualquier sitio. Entre otras funcionalidades, puedes copiar, borrar o renombrar archivos, además de crear carpetas.
      Precaución
      Este es un material poderoso, te proporciona los medios para hacer básicamente cualquier modificación pensable a cualquier dato del sistema disponible en la consola 3DS. Sin embargo, se toman precauciones para que no dañes accidentalmente los datos de tu consola. El sistema de permisos de escritura te protege mediante advertencias y te obliga a introducir una secuencia de desbloqueo para habilitar los permisos de escritura. No es posible sobrescribir o modificar cualquier cosa importante sin estas secuencias de desbloqueo y no es posible desbloquear algo accidentalmente.
      Como siempre, sé inteligente, guarda copias de seguridad para estar seguro.
      Quick start guide
      These short instructions apply to all users who have boot9strap and Luma3DS installed (Luma3DS set up with standard paths), which will be the majority of all GodMode9 users. Here's how to set it up quickly:
      Rename GodMode9.firm (from the release archive) to X_GodMode9.firm (change X to the button of your choice) and put it into sd:/luma/payloads/ Copy the gm9 folder from the release archive to your SD card. Then, get good versions of seeddb.bin and encTitleKeys.bin from somewhere (don't ask me!) and put these two files into sd:/gm9/support (optional but recommended for full functionality). It is also recommended you setup the RTC clock if you're running GodMode9 for the first time. Find the option via HOME button -> More.... Also keep in mind that you should fix your system OS clock afterwards. Helpful hint #1: Go here for step by steps on doing some common tasks in GodMode9. Especially users coming from Decrypt9WIP or Hourglass9 may find this to be helpful. Helpful hint #2: Never unlock the red write permission level unless you know exactly what you're doing. You will notice that prompt when it comes up, it features a completely red screen. It is recommended you stay on the yellow permission level or below at all times to be completely safe. Also read more on the write permissions system below. You may now run GodMode9 via holding the X Button (or any other button you chose) at startup. See below for a list of stuff you can do with it.
      Buttons in GodMode9
      GodMode9 is designed to be intuitive, buttons leading to the results you'd expect. However, some stuff may not be obvious at first glance. So, here's a quick, incomplete rundown of what each button / button combo does.
      <A> button: The <A> button is the 'confirm' / 'choose' button. It confirms prompts and selects entries in menus. In the main file view, it pulls up a submenu for files and opens directories (use <R+A> on directories for a submenu, also including the invaluable title search). In the hexviewer, <A> switches into edit mode. <B> button: The <B> button is the 'cancel' / 'return' button. Use it to leave menus without action, hold it on file operations to cancel said file operations. <X> button: In the main file view, the <X> button deletes (marked) files. With <R+X> files are renamed. <Y> button: In the main file view, the <Y> button copies and pastes files. With <R+Y> you can create folders and dummy files. <L> button: The <L> button is the 'mark' button. Use it with <LEFT> / <RIGHT> to mark / unmark all files in a folder, hold it and use <UP> / <DOWN> to select multiple files. <R> button: The <R> button is the 'switch' button. It switches buttons to their secondary function. Notable exceptions are <R+L> for a screenshot (works almost anywhere), <R+LEFT> / <R+RIGHT> to switch panes and <R+DOWN> to reload the file listing. <START> button: Use the <START> button to reboot from GodMode9. Use <R+START> to poweroff your 3DS. <SELECT> button: The <SELECT> button clears or restores the clipboard (depending on if it's empty or not). <HOME> button: The <HOME> button enters the HOME menu, including the scripts / payloads submenus, options for formatting the SD, setting the RTC, and more. <R+UP> combo: This little known keycombo, when held at startup, pauses the GodMode9 boot so that you can stare at the splash screen for a little longer. <R+LEFT> combo: If you have installed GodMode9 as your bootloader, this keycombo enters the bootmenu. Hold on startup! If you built GodMode9 as SALTMODE and have it as a bootloader, the keycombo is simply the <START> button. Aplicación creada por d0k3.
    • Por Dekuwa
      Azahar es un emulador de Nintendo 3DS para Windows, maOS, Linux y Android basado en Citra.
      Requisitos mínimos
      A continuación, se detallan los requisitos mínimos para ejecutar Azahar en los diferentes sistemas operativos:
      Escritorio
      Sistema operativo: Windows 10 (64 bits), macOS 13 (Ventura) o Linux moderno de 64 bits CPU: CPU x86-64 (64 bits). Rendimiento de un solo núcleo superior a 1800 en Passmark GPU: Compatible con OpenGL 4.3 o Vulkan 1.1 Memoria: 2 GB de RAM. Se recomiendan 4 GB Android
      Sistema operativo: Android 9.0 o superior CPU: SoC Snapdragon 835 o superior GPU: Compatible con OpenGL ES 3.2 o Vulkan 1.1 Memoria: 2 GB de RAM. Se recomiendan 4 GB
    • Por Dekuwa
      Borked3DS es un emulador de Nintendo 3DS para Windows, macOS, Linux y Android basado en Citra, incorporando elementos de Lime3DS y Mandarine, además de proporcionar su propio material.

      Nuevas características de Borked3DS
      Paridad de características en términos de configuración y funciones entre las versiones de escritorio y Android: prácticamente todas las opciones de la versión de escritorio que son aplicables a la versión de Android están aquí, excepto una (Offset Time, para que conste). El que estas características funcionen o no en tu dispositivo puede depender de la GPU de tu dispositivo o de la situación de compatibilidad de controladores (o puede que algunas hayan tenido errores desde el principio; en cuyo caso, se agradecen las PR con correcciones). Para algunas características, puedes obtener mejores resultados con hardware que admita Vulkan 1.3+ y/o OpenGL 4.6+. Compatibilidad con portal IR de Skylanders integrado en la versión de escritorio: si tienes ese hardware, debería funcionar de forma nativa en Borked3DS en la mayoría de los juegos de 3DS que admiten el hardware (la interfaz de administración se puede encontrar en el menú Herramientas y puedes encontrar más detalles en general del desarrollador original aquí). La capacidad de personalizar la optimización de sombreadores SPIR-V en Vulkan para escritorio y Android: anteriormente, las cosas estaban codificadas para optimizar solo el tamaño y solo a través de Glslang sin opción para deshabilitarlo o cambiarlo. Este proyecto canaliza esos sombreadores directamente a través de spirv-opt y además le permite elegir optimizar el tamaño, el rendimiento o deshabilitarlo por completo y volver al método heredado. También puede elegir activar la validación y/o legalización de SPIR-V, lo que puede ayudar con la depuración y prueba de sombreadores personalizados. Mejores opciones de registro en Android: ahora puede elegir la verbosidad por nivel de registro, y la función de filtrado de expresiones regulares que se encuentra en la bifurcación de PabloMK7 también está aquí. De forma predeterminada, el registro de Android estaba codificado en el nivel :Info, lo que significaba que faltaban algunos mensajes a los que podría haber tenido derecho o que pueden ayudar a otros desarrolladores a resolver problemas. Mejores descripciones y sugerencias para todas las opciones en todos los frontends: si no sabes qué hace una configuración, probablemente haya algún texto de ayuda para ella en este proyecto. Una interfaz de escritorio más compacta y optimizada: útil para personas como yo que todavía tienen que trabajar con pantallas de menor resolución en sus computadoras portátiles. Mi mayor problema con las versiones anteriores era que se desperdiciaba mucho espacio en la interfaz de configuración porque las cosas se representaban verticalmente. Por eso, ahora las cosas también se representan horizontalmente, lo que es un uso más eficiente del espacio de la pantalla. Más opciones en términos de versiones para implementar: hay AppImages de Linux basadas en Ubuntu 20.04, 22.04 y 24.04 (en lugar de solo 22.04), y versiones compiladas con GCC y Clang para Windows y Linux. Puedes elegir la que funcione mejor para ti en cualquier hardware o software que tengas. Las dependencias de terceros son más recientes que las de otras bifurcaciones y, dado que se crean a partir de la fuente de Git, a veces son de vanguardia. Por lo tanto, piense en compatibilidad con controladores de entrada de vanguardia a través de SDL tan pronto como estén disponibles, compatibilidad con las diversas actualizaciones de la API de Vulkan entre los lanzamientos de las principales versiones del SDK de Vulkan o binarios creados con los compiladores más recientes disponibles para cualquier plataforma compatible.
    • Por Dekuwa
      GodMode9i es un completo explorador de archivos para Nintendo DS, Nintendo DSi y Nintendo 3DS.
      Principales características de GodMode9i
      Dumpear cartuchos de GameBoy Advance en Nintendo DS y Nintendo DS Lite. Dimpear cartuchos de Nintendo DS/DSi en Nintendo DSi y Nintendo 3DS (si GodMode9i se está ejecutando en la tarjeta SD de la consola) Copiar, mover, borrar y renombrar archivos y carpetas, así como crear carpetas. Montar NitroFS de los archivos .nds. Explorar archivos en flashcards soportados cuando se ejecuta GM9i desde la NAND o la tarjeta SD (AceKard 2 & R4 Ultra) Explorar archivos de la tarjeta SD cuando se está ejecutando GM9i desde cualquier flashcard en modo DS (requiere un lanzador de juegos de DS con el acceso a la tarjeta SD activado)
      Créditos
      RocketRobz: Main Developer. Evie/Pk11: Contributor. zacchi4k: Logo designer. Edo9300: Save reading code from his save manager tool. JimmyZ: NAND code from twlnf (with writing code stripped for safety reasons). zoogie: ConsoleID code (originating from dumpTool). devkitPro: devkitARM, libnds, original nds-hb-menu code, and screenshot code. d0k3: Developer of GodMode9 for the Nintendo 3DS, which this is inspired by.
    • Por Dekuwa
      3DSident es una sencilla aplicación para Nintendo 3DS que nos permite checkear el firmware actual y la versión del sistema operativo de la consola de una forma simple y cómoda, de forma similar a lo que hace  PSPident con PSP.
      Funciones:
      Detección de la versión actual del kernel, FIRM y sistema. Visualización de la versión inicial del sistema. Detección de modelo con nombre de código e información de hardware (Retail/Devboard/Debugger/Unidad de captura). Muestra el tipo de pantalla (TN/IPS). Muestra la región. Muestra el idioma. Muestra la dirección MAC. Muestra la serie. Muestra SDMC y NAND CID. Muestra el nombre de usuario NNID, el ID principal, el ID persistente, el ID de base transferible, el país y la zona horaria. Muestra el ID del dispositivo. Muestra el ID del jabón. Estado de carga de la batería. Estado de conexión del adaptador de CA. Porcentaje de la batería (porcentaje real de la batería mediante mcu::HWC). Muestra el voltaje de la batería (estimado) y el formato desconocido. Muestra el firmware de la MCU. Detección de SD. Muestra la capacidad de almacenamiento total y libre de la SD. Muestra la capacidad de almacenamiento total y libre de CTR. Muestra la capacidad de almacenamiento total y libre de TWL. (Exclusivo GUI) Muestra la capacidad de almacenamiento total y libre de TWL photo. (GUI exclusivo) Muestra el número de títulos instalados en SD y NAND. Muestra el número de tickets instalados. (Exclusivo de GUI) Muestra el estado y el porcentaje del deslizador de volumen. Muestra el estado y porcentaje del deslizador 3D. Muestra la intensidad de la señal Wifi. Muestra la dirección IP. Muestra el brillo actual. Muestra el estado del brillo automático. (Exclusivo GUI) Muestra el modo de ahorro de energía. (Exclusivo GUI) Muestra el modo de salida de sonido. (Exclusivo GUI) Muestra si la consola es una unidad de depuración. (Exclusivo GUI) Muestra el estado de la toma de auriculares/audio. (Exclusivo GUI) Estado de la ranura de la tarjeta y tipo de tarjeta insertada (CTR/NAND). Muestra el pin de control parental, la dirección de correo electrónico y la respuesta secreta. (Exclusivo GUI) Muestra el ID del menú de inicio. Muestra información de la ranura Wifi (SSID, contraseña y dirección MAC). Muestra la semilla de código amigo local original/NAND. 3DSident es una aplicación creada por  joel16.
×
×
  • Crear nuevo...