Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimaskiddo/bb803c5e008002214f9da917cfd1485f to your computer and use it in GitHub Desktop.
Save dimaskiddo/bb803c5e008002214f9da917cfd1485f to your computer and use it in GitHub Desktop.
90DNS Injection in Atmosphere 0.18.x DNS.MITM Module

Follow this Guide with YOUR OWN RISK!

REQUIRED: NX-Atmosphere 0.18.x

As Atmosphere 0.18.x Releases, there is dns.mitm module implementation to extend Nintendo Switch hosts file, but first we need to activate dns.mitm module to be started by configuring system_settings.ini file in atmosphere/config. Here's the snippet section of system_settings.ini file:

...
[atmosphere]
...
...
; Controls whether am sees system settings "DebugModeFlag" as
; enabled or disabled.
; 0 = Disabled (not debug mode), 1 = Enabled (debug mode)
; enable_am_debug_mode = u8!0x0
; Controls whether dns.mitm is enabled
; 0 = Disabled, 1 = Enabled
enable_dns_mitm = u8!0x1
; Controls whether dns.mitm uses the default redirections in addition to
; whatever is specified in the user's hosts file.
; 0 = Disabled (use hosts file contents), 1 = Enabled (use defaults and hosts file contents)
add_defaults_to_dns_hosts = u8!0x1
; Controls whether dns.mitm logs to the sd card for debugging
; 0 = Disabled, 1 = Enabled
; enable_dns_mitm_debug_log = u8!0x0
...

And here is my full system_settings.ini file:

; Disable uploading error reports to Nintendo
[eupld]
upload_enabled = u8!0x0
; Control whether RO should ease its validation of NROs.
; (note: this is normally not necessary, and ips patches can be used.)
[ro]
ease_nro_restriction = u8!0x0
; Atmosphere custom settings
[atmosphere]
; Reboot from fatal automatically after some number of milliseconds.
; If field is not present or 0, fatal will wait indefinitely for user input.
fatal_auto_reboot_interval = u64!0x0
; Make the power menu's "reboot" button reboot to payload.
; Set to "normal" for normal reboot, "rcm" for rcm reboot.
power_menu_reboot_function = str!payload
; Controls whether dmnt cheats should be toggled on or off by
; default. 1 = toggled on by default, 0 = toggled off by default.
dmnt_cheats_enabled_by_default = u8!0x0
; Controls whether dmnt should always save cheat toggle state
; for restoration on new game launch. 1 = always save toggles,
; 0 = only save toggles if toggle file exists.
dmnt_always_save_cheat_toggles = u8!0x0
; Enable writing to BIS partitions for HBL.
; This is probably undesirable for normal usage.
enable_hbl_bis_write = u8!0x1
; Enable reading the CAL0 partition for HBL.
; This is probably undesirable for normal usage.
enable_hbl_cal_read = u8!0x1
; Controls whether fs.mitm should redirect save files
; to directories on the sd card.
; 0 = Do not redirect, 1 = Redirect.
; NOTE: EXPERIMENTAL
; If you do not know what you are doing, do not touch this yet.
fsmitm_redirect_saves_to_sd = u8!0x0
; Controls whether to enable the deprecated hid mitm
; to fix compatibility with old homebrew.
; 0 = Do not enable, 1 = Enable.
; Please note this setting may be removed in a
; future release of Atmosphere.
enable_deprecated_hid_mitm = u8!0x1
; Controls whether am sees system settings "DebugModeFlag" as
; enabled or disabled.
; 0 = Disabled (not debug mode), 1 = Enabled (debug mode)
; enable_am_debug_mode = u8!0x0
; Controls whether dns.mitm is enabled
; 0 = Disabled, 1 = Enabled
enable_dns_mitm = u8!0x1
; Controls whether dns.mitm uses the default redirections in addition to
; whatever is specified in the user's hosts file.
; 0 = Disabled (use hosts file contents), 1 = Enabled (use defaults and hosts file contents)
add_defaults_to_dns_hosts = u8!0x1
; Controls whether dns.mitm logs to the sd card for debugging
; 0 = Disabled, 1 = Enabled
; enable_dns_mitm_debug_log = u8!0x0
[hbloader]
; Controls the size of the homebrew heap when running as applet.
; If set to zero, all available applet memory is used as heap.
; The default is zero.
applet_heap_size = u64!0x0
; Controls the amount of memory to reserve when running as applet
; for usage by other applets. This setting has no effect if
; applet_heap_size is non-zero. The default is 0x8600000.
applet_heap_reservation_size = u64!0x9000000

dns.mitm will drop some defaults file and folder under atmosphere/ directory, but in this case we can create manually to directly inject 90DNS to dns.mitm hosts file. Let's create 2 folders under atmosphere/ folder in your SD Card:

  • hosts => atmosphere/hosts
  • logs => atmosphere/logs

Now create default.txt file under atmosphere/hosts/ directory with 90DNS hosts record content:

# Nintendo Main Servers
127.0.0.1 *.nintendo.com
127.0.0.1 *.nintendo.net
127.0.0.1 *.nintendo.jp
127.0.0.1 *.nintendo.co.jp
127.0.0.1 *.nintendo.co.uk
127.0.0.1 *.nintendo-europe.com
127.0.0.1 *.nintendowifi.net
127.0.0.1 *.nintendo.es
127.0.0.1 *.nintendo.co.kr
127.0.0.1 *.nintendo.tw
127.0.0.1 *.nintendo.com.hk
127.0.0.1 *.nintendo.com.au
127.0.0.1 *.nintendo.co.nz
127.0.0.1 *.nintendo.at
127.0.0.1 *.nintendo.be
127.0.0.1 *.nintendods.cz
127.0.0.1 *.nintendo.dk
127.0.0.1 *.nintendo.de
127.0.0.1 *.nintendo.fi
127.0.0.1 *.nintendo.fr
127.0.0.1 *.nintendo.gr
127.0.0.1 *.nintendo.hu
127.0.0.1 *.nintendo.it
127.0.0.1 *.nintendo.nl
127.0.0.1 *.nintendo.no
127.0.0.1 *.nintendo.pt
127.0.0.1 *.nintendo.ru
127.0.0.1 *.nintendo.co.za
127.0.0.1 *.nintendo.se
127.0.0.1 *.nintendo.ch
127.0.0.1 *.nintendoswitch.com
127.0.0.1 *.nintendoswitch.com.cn
127.0.0.1 *.nintendoswitch.cn

# Nintendo Telemetry Servers
127.0.0.1 receive-%.dg.srv.nintendo.net receive-%.er.srv.nintendo.net

# Nintendo CDN Servers
95.216.149.205 conntest.nintendowifi.net
95.216.149.205 ctest.cdn.nintendo.net

So in result there will be some addition in your SD Card atmosphere/ directory:

  • atmosphere/config/system_settings.ini file
  • atmosphere/hosts/default.txt file
  • atmosphere/logs folder

Plug-in back your SD Card to the Nintendo Switch and boot it to Atmosphere

Test it with YOUR OWN RISK

If you want to see the dns.mitm module log there will be in atmosphere/logs/ directory

Done, Cheers 🍻 😄

Feels like SXOS Stealth Mode 😎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment