ROM Hack 3DNUS

  • Thread starter Thread starter ground
  • Start date Start date
  • Views Views 429,837
  • Replies Replies 830
  • Likes Likes 63
I made a program last days, and i thought it could be usefull for more people. So I made a few adjustments and decided to release it.

The Idea is actually stolen from UpdateCDN and NUSDownloader. It downloads a title and wrap it as a .cia file (if you want), or it download whole firmwares.
This file doesn't need any additional .csv files. it downloads the complete list from http://yls8.mtheall.com/ninupdates/reports.php and cycle through the titles and decide what to downloads.
This program also uses 3DSGuy's make_cdn_cia.exe file.
It is written in c# so it only works with .net framework.

to download a title:
just enter the title ID and the version ID and press download.

to download a firmware:
just enter the firmware you want in the title box and the region in the version box and press download. If this firmware doesn't excist it will grab the first firmware under it (Example 7.0.3-13 becomes 7.0.0-13)

UPDATE 1.5:
- it has an awsome icon;
- the not responding windows is solved and it is obvious is is runnign (cursur changes to wait cursor etc., it jsut seem smoother now);
- it has the ability to change the versions of the title. USE AT YOUR OWN RISK(this is actually for the whole program), so it can trick the 3ds in updating while it is actually downgrading (emunand for now).

UPDATE 1.6:
- A bug is fixed which makes the program freeze when spoofing small version numbers.
- a scrollbar is added
- when an error occurred the textbox background turns red (so be extra extra careful with installing (if)),

UPDATE 1.7:
Thanks for the reactions everybody ;), I looked into some suggestions and added the following:
- Errors are shown differently(a text is shown isntead of a red background)
- For firmware downloading you can enter "+" for spoofing 1 version higher than the current newest version for eacht title (this make it still updatable with net firmware updates);
- a progress bar has been added
View attachment 13061
download:
.exe: see attachment
source (c#): http://www17.zippyshare.com/v/53991976/file.html

I have a question. How do you install the .cia file on emunand and emulate say 9.0.0 after you downloaded it from this wonderful piece of software?
 
I have a question. How do you install the .cia file on emunand and emulate say 9.0.0 after you downloaded it from this wonderful piece of software?
you can install the .cia's with bigredmenu/ devmenu. ;) if you want to "downgrade"make sure you spoof the titleid's high enough.
 
  • Like
Reactions: satel
What do you mean be spoof the titleid's high enough.
i ment version id. So that the version of your downloaded cia is higher then the already installed title(cia) on your 3ds, otherwise the 3ds refuses to install that cia.
 
Hey, You think I could use this to trick my console into downgrading? Been reading this thread: https://gbatemp.net/threads/3ds-update-process-analyzed.285655/ and I'm thinking of using my Raspberry Pi to redirect the console to a local web server, hosting the files. Seem possible? I think it may be possible. I could use IPTABLES to redirect the traffic... Maybe...
 
Hey, You think I could use this to trick my console into downgrading? Been reading this thread: https://gbatemp.net/threads/3ds-update-process-analyzed.285655/ and I'm thinking of using my Raspberry Pi to redirect the console to a local web server, hosting the files. Seem possible? I think it may be possible. I could use IPTABLES to redirect the traffic... Maybe...
I had the same idea as I to have a raspberry pi. Maybe we could work together...
 
I had the same idea as I to have a raspberry pi. Maybe we could work together...


Maybe. After reading the post about the update process, I wonder if the part where the 3DS exchanges data through SSL is where it gets "told" what titles have been updated. Since I'm already running 9.5.x, I wouldn't be able to test it at the moment as Nintendo haven't release another firmware update, yet.

Once Nintendo release another update and I have found the listing of updated titles - I should be able to replace those files with older ones on my local server. If all goes well - I guess that'll be my very first "big hack".

What firm you running?
 
Maybe. After reading the post about the update process, I wonder if the part where the 3DS exchanges data through SSL is where it gets "told" what titles have been updated. Since I'm already running 9.5.x, I wouldn't be able to test it at the moment as Nintendo haven't release another firmware update, yet.

Once Nintendo release another update and I have found the listing of updated titles - I should be able to replace those files with older ones on my local server. If all goes well - I guess that'll be my very first "big hack".

What firm you running?
9.5.0. Are the update files from Nintendo the servers a .cia or something else?

Edit: I will be getting a 4.5 console this summer however.
 
9.5.0. Are the update files from Nintendo the servers a .cia or something else?

Edit: I will be getting a 4.5 console this summer however.


The update files aren't normally stored as a .CIA, but 3DNUS converts them into a .CIA so you can install them through DevMenu. The 3DS downloads the files in their "Original" form. I've downloaded 9.2E and 9.2U (for American users). If I do succeed in this, I'll post my findings on GBATemp - I guess. If you get a 4.5 console, you should definitely use MT Cards emuNAND if you don't have a Gateway, then we can "play around" with the NUS.
 
9.5.0. Are the update files from Nintendo the servers a .cia or something else?

Edit: I will be getting a 4.5 console this summer however.


Easiest method would be to download the latest firmware, then replace the files with older ones (old titles should be named with latest version ID's), the finally configure IPTABLES to redirect the HTTP traffic to a local server (can't redirect HTTPS because of the SSL certificate and such. If the console fails to communicate to Nintendo's legit secure server, the update would fail).
 
Easiest method would be to download the latest firmware, then replace the files with older ones (old titles should be named with latest version ID's), the finally configure IPTABLES to redirect the HTTP traffic to a local server (can't redirect HTTPS because of the SSL certificate and such. If the console fails to communicate to Nintendo's legit secure server, the update would fail).
So what your suggesting is when the update fails our raspberry pi server will hijack it and upgrade it to the firmware that the user want's to update to?
 
So what your suggesting is when the update fails our raspberry pi server will hijack it and upgrade it to the firmware that the user want's to update to?


No, what I'm saying is - the Raspberry Pi will ALLOW HTTPS (otherwise the update WILL fail) but redirect all HTTP traffic to a local server (hijack). This SHOULD in theory, downgrade the console. All I'd haft to do is rename the old 9.2 titles to the name of the latest version of that title.

E.g. (This is an example, it is completely random)
9.2 Download Play ID/VER: 00111009 (ID)/0000V12 (VER)
9.6 Download Play ID/VER: 00111009 (ID)/0000V13 (VER)

Rename "0000V12" to "0000V13". The console will download "0000V13" and it will actually be installing an older title. All of this is just a theory at the moment though - I can only test it if I had another console with an older firmware or if Nintendo released another update. My console is running 9.5 so I'm sort of screwed at the moment :/
 
No, what I'm saying is - the Raspberry Pi will ALLOW HTTPS (otherwise the update WILL fail) but redirect all HTTP traffic to a local server (hijack). This SHOULD in theory, downgrade the console. All I'd haft to do is rename the old 9.2 titles to the name of the latest version of that title.

E.g. (This is an example, it is completely random)
9.2 Download Play ID/VER: 00111009 (ID)/0000V12 (VER)
9.6 Download Play ID/VER: 00111009 (ID)/0000V13 (VER)

Rename "0000V12" to "0000V13". The console will download "0000V13" and it will actually be installing an older title. All of this is just a theory at the moment though - I can only test it if I had another console with an older firmware or if Nintendo released another update. My console is running 9.5 so I'm sort of screwed at the moment :/
Everyone on 9.5 is screwed for chances of making homebrew aren't they :p It's a simple and beautiful theory. Ubuntu Snappy core could be used as the sever (I'm currently trying to do my first ever port and port Snappy Core to Raspberry Pi model A) .
 
Everyone on 9.5 is screwed for chances of making homebrew aren't they :p It's a simple and beautiful theory. Ubuntu Snappy core could be used as the sever (I'm currently trying to do my first ever port and port Snappy Core to Raspberry Pi model A) .


Oh cool. At this current moment in time, I'll be testing everything on my model B with Apache2 as the web server since it's what I've already got set up. You sure you can port snappy core to the model A? I don't think Ubuntu distribute ARM6 binaries for the architecture meaning that you probably won't have access to the archive of programs with apt-get, unless you add debians repo to your apt-get.list? Would be cool if you did mange somehow!
 
I see. Thanks.
I guess it's back to the drawing board.
Not at all... You only actually need a gateway card to enter Gateway Mode /Gateway Classic. Without a Gateway, you can still load the Gateway menu and do nand backups and perform the downgrade.

Edit: I already said this in an earlier post. I guess you missed it.

By the way... When I put + in the spoof version block, it says "no valid spoof number entered"
 
It doesn't work on WinXP 32bit.
I know, I'm outdated and all, but there are still a lot of users using it. if you know how to compile for it that would be great.
Thanks.
 
  • Like
Reactions: cvskid
Oh cool. At this current moment in time, I'll be testing everything on my model B with Apache2 as the web server since it's what I've already got set up. You sure you can port snappy core to the model A? I don't think Ubuntu distribute ARM6 binaries for the architecture meaning that you probably won't have access to the archive of programs with apt-get, unless you add debians repo to your apt-get.list? Would be cool if you did mange somehow!
New update is out for 3DS!
 

Site & Scene News

Popular threads in this forum