wiki/pages/_pl-PL/ds-index/dsi-twl-firm.md
2020-12-22 14:41:08 -06:00

5.2 KiB

lang layout section title description
pl-PL wiki ds-index Nintendo DSi / Nintendo 3DS TWL_FIRM An explanation of all things DS modding

Przygotowywanie CFW

Chociaż większość korzyści z Custom Firmware dotyczy systemów Nintendo DSi i Nintendo 3DS, to umożliwia ono także odblokowanie możliwości konsoli. Instalacja Custom Firmware jest dosyć łatwe, a w większości przypadków potrzebujesz tylko karty (micro)SD. Mamy dla Ciebie najlepsze poradniki z instrukcjami krok po kroku.

Szybkości CPU

Nintendo DS było sprzedawane w 2004 z procesorem 67MHz. Nintendo DSi było sprzedawane w 2009 z procesorem 133MHz. Większość gier z biblioteki Nintendo DS wyszło na rynek przed premierą Nintendo DSi. Z tego powodu mogły korzystać one tylko z procesora o prędkośći 67MHz. Niektóre aplikacje wiązały się z tą prędkością i w rezultacie nie działałyby one poprawnie z wyższymi taktowaniami zegara procesora. Większość gier wykorzystywałaby większy potencjał nowego procesora, aby uzyskać wyższą wydajność.

nds-bootstrap ma opcje TWL Clock Speed, ale nie bedzie on próbował dostosować naszego ROM do pracy z większym taktowaniem zegara procesora. To zadanie leży w rękach aplikacji, więc aplikacje nie działające z wyższymi taktowaniami NIE są problemem ze strony nds-bootstrap.

Menu systemu Nintendo DSi

Menu systemu Nintendo DSi używa 32-bitowy signed integer, aby określić dostępne miejsce w pamięci NAND. Korzystając z faktycznego NAND, ilość ta nigdy nie przekroczy 128MB, więc jest to bezpieczne. Gdy jednak przekierujemy NAND do karty SD, dostępna pamięć przekracza limit 32-bitowego signed integer i jako rezultat następuje overflow do liczby ujemnej. Negatywna ilość wolnego miejsca spowoduje komunikat "Wystąpił błąd" i nie pozwoli Ci uruchomić menu. Na szczęście można to naprawić, tworząc plik który oszukuje system, aby ten myślał że miejsce wolne jest dodatnie.

Wartości dodatnie i ujemne określa się na podstawie par. Na przykład 1-2 GB wolnego miejsca jest dozwolone gdy 3-4 nie jest. 5-6GB wolnego miejsca jest dozwolone, a 7-8 znowu nie.

In version 1.4.0, RSA signatures in the DS Cart Whitelist aren't verified. There is an exploit regarding a vulnerability in the Nintendo DSi flashcard whitelist that allows you to take access over the ARM9 processor, It requires version 1.4.0 (it was patched in future versions and didn't exist in prior versions) and a flashcard with a modified ROM.

Nintendo DSi Slot-1 Access & Blockout

Slot-1 access is blocked when launching applications from the System Menu, except if said applications is either the Slot-1 launcher itself or System Settings. In order to launch normally unlaunchable slot-1 cartridges, you'll need to either make a System Settings exploit or install Unlaunch. Without either of those, you cannot launch unlaunchable flashcards and you cannot dump ROMs to your SD card.

The flashcard white list is checked via RSA signatures are contained via RSA keys on every firmware expect 1.4.0. This means that people can white list their own carts

Before 1.4.0, the white list used to contain only two sections. In 1.4.0, they've introduced a third section which was made to block flashcards that got around the first two. The third section loads up to eight different section of the rom and checks them with a hash to see if the rom has been tampered with. However, due to the forgetfulness of putting any sanity check, we can overflow into the exception vector/interrupt address using a large enough value. Best of all, this runs on ARM7 (aka the security processor) so this makes it the first exploit for the ARM7 processor. Since this happens before the lock out of the SCFG registers, we can run advanced homebrew (such as Slot-1 dumpers & external slot-1 dumpers)

Unfortunately, the requirements are tight. It requires version 1.4.0 and a flashcard with a modified ROM. Also, the exploit never officially came out, due to Unlaunch being much simpler to install and having less requirements (just a way to get into homebrew) with the same advantages.

Nintendo DSi Camera

The Nintendo DSi Camera application has the ability to take pictures in the JPEG and save them to either the System Memory or the SD card. The way it's loaded restricts it to only DSi made images, due to lacking the proper HMAC stored inside a custom EXIF tag. Any custom images are not readable on the DSi, whether its PC taken or PC edited.

A pit.bin file is used in order to load images. However, the header size at offset 0x16 is unchecked, so a big enough header size value can exceed boundaries and cause the buffer to overwrite and jump to unsigned code. This is how Memory Pit is powered.

Nintendo DSi Bootstage 2

The second bootstage of the Nintendo DSi loads launcher's "title.tmd" into memory. However, they do not specify a file size limit check, meaning that the first 80k bytes are loaded into RAM while the rest can be a custom payload. This is the basis of Unlaunch exploit.