Comment faire browserhax

Cette prise en pension est destiné à tout pour le titre 3DS qui a une certaine forme de navigateur Web. Cette prise en pension est pour générer des chaînes ROP pour une utilisation avec les objectifs mentionnés ci-dessus: aucun navigateur exploit (s) sont contenus dans ce repo. Les exploits de navigateur séparé de cette prise en pension peut utiliser pour la ROP chaîne réelle + tous les gadgets ROP requis, etc.

titres pris en charge et versions

Les versions ci-dessous sont répertoriés dans le format suivant: browserver titlever sysver. Ce qui browserver (titre cible + version du titre) à utiliser est déterminé automatiquement en vérifiant l'agent utilisateur. En raison de cela, lors de l'accès Hax avec cela, le système de navigateur Web New3DS doit être configuré pour utiliser l'agent utilisateur normal, pas l'utilisateur-agent mobile (l'agent utilisateur mobile est le même pour toutes les versions).

Notez également que le navigateur Web du système, seul le dernier numéro dans le système version (x.x.x-NUPVER) compte en fait pour la version du navigateur. Chargement arm11code avec le navigateur Old3DS est uniquement pris en charge avec> = V5.0 NATIVE_FIRM, si vous souhaitez utiliser NATIVE_FIRM pré-v5.0 avec cela, vous devrez modifier la source. Normalement, donc est faisant, ne sont pas nécessaires puisque les * charges utiles hax ne prennent pas en charge le système-versions anciennes de toute façon.

Seuls les Etats-Unis, EUR, et les navigateurs JPN sont pris en charge (à l'exception ci-dessous): les principaux ExeFS codebin sont tous identiques pour ces régions, à la différence des autres régions.

Notez que pour CHN et TWN le chargeur (avec 3ds_arm11code_chntwn.s) est cassé (le menustub ne parvient pas à localiser automatiquement APT_GetServHandle en raison de plus homemenu / code ctrsdk).

  • 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 est également pris en charge pour cela.
  • 1.4.10138 v4096 10.2.0-28..10.3.0-28 KOR est également pris en charge pour cela.
  • 1.5.10143 v5121 10.4.0-29..10.5.0-30 KOR est également pris en charge pour cela.
  • 1.6.10147 v6144 10.6.0-31 KOR est pour cette « soutenu » mais pas testé.
  • 1.7.10150 v7184 10.7.0-32..11.0.0-33 KOR est également pris en charge pour cela.
  • 1.8.10156 v8192 11.1.0-34

Si vous voulez tester un navigateur exploiter sur une version du navigateur non pris en charge juste pour voir si au moins se bloque, vous pouvez l'utiliser: « URL browserver = ». Où ver est l'un des browservers énumérés dans 3dsbrowserhax_common.php, tels que « 85 » pour New3DS ou « 7 » pour Old3DS (sans les guillemets), ou quoi que les versions les supports de page exploit.

Utilisation avec des exploits séparés

Avec php, ce repo peut être utilisé avec les éléments suivants:

  • Inclure config basée sur browserhax_cfg_example.php, voir ce fichier pour plus de détails. Inclure 3dsbrowserhax_common.php.
  • Définissez la variable globale ROPHEAP $ à une adresse dans le cadre du processus que la chaîne ROP peut utiliser pour stocker des données arbitraires (par exemple, cela pourrait être la mémoire où les données ont été vaporisée pour les données non-ROP-chaîne, puisque ces données ne sont pas nécessaires plus à ce stade).
  • Appelez generate_ropchain (). Cela génère une chaîne ROP qui peut être inclus dans JS via la variable globale $ ROPCHAIN. Pour générer un binaire uniquement ROP chaîne à la place, la variable globale generatebinrop $ à la valeur 1 avant d'appeler generate_ropchain ().
  • Les données de la chaîne ROP peuvent maintenant être utilisés pour générer les html / js final, par exemple: "var = ropchain unescape (ROPCHAIN ​​$);"
  • Ceci peut être utilisé avant que les données ci-dessus de la chaîne ROP, pour une utilisation en tant que ROP NOP traîneau: « unescape (NOPSLEDROP $); »
  • Ceci peut être utilisé pour pulvériser l'adresse de gadget pile-pivot, comme pour funcptrs vtable: "unescape (STACKPIVOT $);"
  • Cela peut être utilisé lorsque l'exploit nécessite l'utilisation de la "pop" gadget "somestr de $ = genu32_unicode (POPPC $);"

Voir ci-dessus en ce qui concerne le fichier CFG.

Par défaut, lorsque $ ropchainselect n'a pas été initialisé par browserhaxcfg_handle_urlparams (), il établira $ ropchainselect à value0 et arm11code_loadfromsd $ à valeur2. Lorsque cela est une version d'araignée avant système version v7.1, $ ropchainselect sera réglé sur valeur1. Ensuite, quelle que soit la version du navigateur, il appelle ensuite browserhaxcfg_handledefault ().

Les valeurs pour ropchainselect de $:

Les valeurs de arm11code_loadfromsd $:

  • 0: La charge utile de arm11code est incorporé dans les données de la chaîne elle-même ROP.
  • 1: La charge utile de arm11code est chargé à partir de SD par l'intermédiaire de ce chemin_fichier: "SDMC: /arm11code.bin".
  • 2: La charge utile de arm11code est téléchargé en demandant un binaire avec http, voir la configuration de l'exemple ci-dessus et ropgen_httpdownload_binary () dans 3dsbrowserhax_common.php. Le binaire est téléchargée sur SD, une fois terminé avec que le fichier a écrit à elle tout à zéro, il tente de supprimer le fichier (qui ne supprime pas le fichier, inconnu pourquoi).

informations d'utilisation Browserhax

Comment chaque exploit est déclenché dépend de l'exploit, consultez la documentation de l'exploitation séparée pour cela. Comme dit ci-dessous, juste le déclenchement de l'exploit est avec succès tout ce qui est vraiment nécessaire en plus SD « /boot.3dsx ».

Ce chargeur va essayer d'abord de charger le hblauncher ropbin charge utile de la carte SD « /browserhax_hblauncher_ropbin_payload.bin ». Il est distinct de la charge utile Otherapp.
Si le chargement de ne SD, ce chargeur détecte alors automatiquement la charge utile requise, puis le télécharger avec HTTP. Cette dernière méthode est fortement recommandée (à moins que cette méthode ne fonctionne pas bien pour l'utilisateur): avec un « /boot.3dsx » sur la carte SD, il est nécessaire une fois que la browserhax est déclenchée avec succès zéro autres entrées utilisateur de configuration /.
Lors du chargement de la charge utile avec les deux méthodes ci-dessus échoue, un accident sera déclenché.

Hanging / plantage à un écran fond gris signifie * Hax chargement de la charge utile a échoué, normalement cela est dû à des problèmes de réseau (vous devez redémarrer votre système lorsque cela se produit).

Le chargeur pour Old3DS exécute le code natif réel dans le contexte du menu d'accueil, si vous voulez vraiment exécuter votre propre code sous menu Accueil, vous pouvez modifier ce code dans le chargeur. Ce code fonctionne très tôt dans le processus Menu Accueil démarrage.

Lorsque vous utilisez browserhax l'ColorFill écran inférieur sera réglé sur différentes couleurs dans l'ordre suivant:

    1. Jaune: navigateur ROP a commencé à courir, cela signifie aussi le exploititself a bien fonctionné.
    1. Gris: Ce ColorFill est situé juste avant de sauter au binaire arm11code initial, pour l'exécution de code natif pour la première fois.
    1. Orange défini après la charge utile * de Hax a été correctement chargé dans la mémoire via HTTP / SD.
    1. Blanc: Ceci est fixé par la charge utile * de Hax lui-même quand il commence à courir.
  • megazig pour aider avec APT (pour des choses APT une fois le code du menu d'accueil dans le chargeur se met en marche) pendant la + initiale éventuellement Old3DS succès Accueil Menu de mise en œuvre de reprise.

Articles Liés