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
      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.
    • Por Dekuwa
      Universal Updater es una aplicación homebrew para Nintendo 3DS que nos permite la fácil instalación y actualización de otro homebrew para la consola. No es necesario copiar manualmente los archivos ni pasar por procesos de instalación, ya que lo hace todo por ti.
      Principales de Universal Updater:
      Un formato de tienda con un concepto similar al de los repositorios de Cydia El valor por defecto es Universal-DB ¿Quieres añadir más? Ve a los ajustes, elige "Seleccionar Unistore", haz clic en el icono + y selecciona uno de la lista, introduce una URL o escanea un código QR Personalización en la clasificación y visualización Varias claves de clasificación: "Título", "Autor" y "Última actualización". La dirección puede ser ascendente o descendente La visualización de la aplicación puede ser en cuadrícula o en filas Instalación en segundo plano para poder seguir utilizando el resto de la aplicación mientras se instala Búsqueda y marcas para facilitar la búsqueda de aplicaciones Visualización de capturas de pantalla y notas de la versión de las aplicaciones Accesos directos para actualizar fácilmente las aplicaciones que se actualizan con frecuencia cuando se utiliza el Homebrew Launcher Traducciones para usuarios de muchos idiomas





      Créditos
      Desarrolladores principales Epicpkmn11: Helped me with the JSON parsing stuff and a lot more! StackZ: Main Developer of Universal-Updater. Translators _Mapple²: Russian antoine62: French Chips: Portuguese David Pires: Portuguese Epicpkmn11: Japanese lemonnade0: Lithuanian Roby Spia: Italian StackZ: German and English YoSoy: Spanish Otros devkitPro, Fincs, Smealum, WinterMute: devkitARM, Libctru, Citro2D, and Citro3D.
    • Por Dekuwa
      FTPD es un servidor FTP para Nintendo 3DS (aquí la versión para Switch).
      Características
      Parece funcionar bien con una variedad de clientes. Admite varios clientes simultáneos. La 3DS solo parece admitir suficientes sockets para realizar entre 4 y 5 transferencias de datos simultáneas, por lo que será útil limitar el cliente FTP a esta cantidad de solicitudes paralelas. Gráficos de vanguardia. Comandos soportados
      ABOR ALLO (no-op) APPE CDUP CWD DELE FEAT HELP LIST MDTM MKD MLSD MLST MODE (no-op) NLST NOOP OPTS PASS (no-op) PASV PORT PWD QUIT REST RETR RMD RNFR RNTO SIZE STAT STOR STRU (no-op) SYST TYPE (no-op) USER (no-op) XCUP XCWD XMKD XPWD XRMD FTPD ha sido creado por mtheall.
×
×
  • Crear nuevo...