Difference between revisions of "YouTube"
Line 25: | Line 25: | ||
| This update fixed the vuln used for tubehax. | | This update fixed the vuln used for tubehax. | ||
* Plaintext HTTP is still used. | * Plaintext HTTP is still used. | ||
− | * The RomFS is empty, and accessinfo is still 0x0. It's unknown what happened to the CROs(see below). | + | * The RomFS is empty, and accessinfo is still 0x0. It's unknown what happened to the CROs(see below). Strings related to RO are still in the codebin, but during application startup ldr:ro isn't used at all. |
* This version was built with the latest CTRSDK, so NATIVE_FIRM [[9.6.0-25|9.6.0-X]] is now required. | * This version was built with the latest CTRSDK, so NATIVE_FIRM [[9.6.0-25|9.6.0-X]] is now required. | ||
|} | |} |
Revision as of 17:42, 15 October 2015
The YouTube application available from the eShop is a web-browser. Like the main browser this uses WebKit. All data is downloaded with plaintext HTTP.
User-Agent and Browser Versions
The user-agent format is almost identical to the main browser: "Mozilla/5.0 (Nintendo 3DS; U; ; Factory Media Production) Version/<version>.<region>". <lang> is "en", "fr", etc. <region> is "US", "EU", etc. See below for <version>.
Browser version | USA/EUR CDN Title-version | Release date | Notes |
---|---|---|---|
1.7498 | v16 and v0 | Initial app version. | |
1.7498 | v1056 and v1040 | First app update. This build uses the v7.0 NCCH encryption for the main CXI, this was the first retail title to use this. | |
? | v2096 and v2080 | October 15, 2015 | This update fixed the vuln used for tubehax.
|
Updates for this application are forced, since the app itself checks for a newer version of the title(this is done before any actual HTTP requests by the actual application are done). This is done with Friend_Services: the application tries to authenticate itself with FRDU. When the installed version is outdated, it gets an error-code in the output buffer for FRDU:GetGameAuthenticationData(this error-code then gets passed to the error-display applet).
The friend HTTP requests which are involved with the above use HTTPS, so blocking it (probably) isn't an option(the usual POST request(s) to https://nasc.nintendowifi.net/ac).
RomFS
The RomFS only contains CROs("/cro/") and the CRR("/.crr/static.crr"), the following is the "/cro/" contents:
- JavaScriptCore_CTR.cro
- WebCore_CTR.cro
- WebkitMediaPlayer_CTR.cro
- WebKit_CTR.cro
- static.crs
Webkit
Looks like the YouTube application uses a newer version of Webkit than the Internet Browser applet. It has the ability to construct Blobs, of course the HTML5 video element, and possibly the Audio element (Visible, but untested). It also supports the localStorage API. Here a list of exposed apis: [1].
embedded.ctr
Inside the YouTube app, there is a pseudo-webserver running that links to a structure inside ExeFS. This structure provides a list of urls under the domain "http://embeded.ctr/".