Homebrew The bootroms

WeedZ

Possibly an Enlightened Being
Global Moderator
Joined
Jan 13, 2015
Messages
3,825
Trophies
1
Location
The State of Denial
Website
gbatemp.net
XP
5,666
Country
United States
Dude. If anyone "dumps the bootrom" they'd share it immediately. There's no reason not to. Nintendo can't patch it.
Their political stance on contributing to piracy? Not sure about yifanlu, but most named hackers in this scene won't share anything unless they can implement their own method of security.
 

FR0ZN

Well-Known Member
Member
Joined
Nov 2, 2013
Messages
1,402
Trophies
1
Age
37
XP
3,947
Country
United States
Just thinking out loud here:

We know from A9LH that FIRM consists of a ARM9 Loader and the encrypted ARM9 binary.
But is the ARM9 Loader also encrypted? If it is, do we have access to this key so we can change it just like Key #2?

If so, maybe we can apply the same technique for ARM9 Loader this time ? So a payload runs instead of ARM9 Loader?
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,745
Trophies
2
XP
8,595
Country
Tuvalu
Dude. If anyone "dumps the bootrom" they'd share it immediately. There's no reason not to. Nintendo can't patch it.
you don't know how some devs think...!
not all are about sharing, whatever their reason may be.


oops, this guy was already quoted twice about this lol, anyway, yeah not everyone has the same mindset as yourself!
 
Last edited by cearp,
  • Like
Reactions: WeedZ

astronautlevel

Well-Known Member
Member
Joined
Jan 26, 2016
Messages
4,130
Trophies
2
Location
Maryland
Website
ataber.pw
XP
5,016
Country
United States
Dude. If anyone "dumps the bootrom" they'd share it immediately. There's no reason not to. Nintendo can't patch it.
As much as I wish that would be the case it isn't, bootrom has actually already been confirmed to be dumped yet people don't share it...

--------------------- MERGED ---------------------------

Just thinking out loud here:

We know from A9LH that FIRM consists of a ARM9 Loader and the encrypted ARM9 binary.
But is the ARM9 Loader also encrypted? If it is, do we have access to this key so we can change it just like Key #2?

If so, maybe we can apply the same technique for ARM9 Loader this time ? So a payload runs instead of ARM9 Loader?
Bootrum locks itself before the arm9loader runs.
 

FR0ZN

Well-Known Member
Member
Joined
Nov 2, 2013
Messages
1,402
Trophies
1
Age
37
XP
3,947
Country
United States
Bootrum locks itself before the arm9loader runs.

Are you sure it's not the next component in the bootchain? How did Nintendo set the CFG_SYSPROT9 for OTP after the 2.1.0 update? They can't update the bootrom.
But let's say what you say is true ... on N3DS ARM9 Loader (which my theory exploits here) is the one which sets the locking register according to this?:

https://www.3dbrew.org/wiki/CONFIG_Registers#CFG_SYSPROT9

Says: On New 3DS, the above is instead done by the Kernel9 loader.
 

Suiginou

(null)
OP
Member
Joined
Jun 26, 2012
Messages
565
Trophies
0
Location
pc + 8
XP
738
Country
Gambia, The
Are you sure it's not the next component in the bootchain? How did Nintendo set the CFG_SYSPROT9 for OTP after the 2.1.0 update? They can't update the bootrom.
But let's say what you say is true ... on N3DS ARM9 Loader (which my theory exploits here) is the one which sets the locking register according to this?:

https://www.3dbrew.org/wiki/CONFIG_Registers#CFG_SYSPROT9

Says: On New 3DS, the above is instead done by the Kernel9 loader.
That's about the OTP region, not bit0 for the bootrom.

I know how to get it, I just don't have the funds to do so. Especially since I don't care that much about getting the bootrom. But if I do stumble upon it of course I'll share; otherwise I won't even mention it.
Maybe someone else has the funds. Might be worth just posting the theory on your blog?
 

astronautlevel

Well-Known Member
Member
Joined
Jan 26, 2016
Messages
4,130
Trophies
2
Location
Maryland
Website
ataber.pw
XP
5,016
Country
United States
Are you sure it's not the next component in the bootchain? How did Nintendo set the CFG_SYSPROT9 for OTP after the 2.1.0 update? They can't update the bootrom.
But let's say what you say is true ... on N3DS ARM9 Loader (which my theory exploits here) is the one which sets the locking register according to this?:

https://www.3dbrew.org/wiki/CONFIG_Registers#CFG_SYSPROT9

Says: On New 3DS, the above is instead done by the Kernel9 loader.
Well, let's get the full context for your quote
On Old 3DS, NATIVE_FIRM reads CFG_SYSPROT9 to know whether it has previously initialized the TWL console-unique keys using the OTP data. After setting the TWL console-unique keys, NATIVE_FIRM sets CFG_SYSPROT9 bit 1 to disable the OTP area. In subsequent FIRM launches prior to the next reset, NATIVE_FIRM will see that the OTP area is disabled, and skip this step.

On New 3DS, the above is instead done by the Kernel9 loader.

What the kernel9 loader does is lock CFG_SYSPROT9 bit 1, which disables OTP - this is why downgrading to 2.1 allows us to get OTP as it's the FIRM, not the bootrom, that locks the OTP registers.
 

cearp

瓜老外
Developer
Joined
May 26, 2008
Messages
8,745
Trophies
2
XP
8,595
Country
Tuvalu
I know how to get it, I just don't have the funds to do so. Especially since I don't care that much about getting the bootrom. But if I do stumble upon it of course I'll share; otherwise I won't even mention it.
funds? how much would it cost to get the hardware or whatever to do it? (assuming someone has not much hardware for this stuff)
(not interested in setting up a fundraiser haha, just curious!) :)
 

astronautlevel

Well-Known Member
Member
Joined
Jan 26, 2016
Messages
4,130
Trophies
2
Location
Maryland
Website
ataber.pw
XP
5,016
Country
United States
funds? how much would it cost to get the hardware or whatever to do it? (assuming someone has not much hardware for this stuff)
(not interested in setting up a fundraiser haha, just curious!) :)
I asked the person who said that he was selling them for a cost estimate on the CTR-DEBUGGER unit, but he hasn't responded yet. I can imagine it would be at least somewhat expensive, however.
 
  • Like
Reactions: cearp

sirocyl

Are we Geniuses or what?
Newcomer
Joined
Apr 30, 2012
Messages
92
Trophies
1
Age
31
XP
324
Country
United States
I'm going to assume @yifan_lu's method is involving either decapping the chip, or performing the exception-vector timing attack from hardware as outlined earlier in the thread?
 

astronautlevel

Well-Known Member
Member
Joined
Jan 26, 2016
Messages
4,130
Trophies
2
Location
Maryland
Website
ataber.pw
XP
5,016
Country
United States
I'm going to assume @yifan_lu's method is involving either decapping the chip, or performing the exception-vector timing attack from hardware as outlined earlier in the thread?
The FPGA is just an Altria Cyclone. The SDK references JTAG although the PARTNER Debugger does not use it. The existence of the files and symbols means that perhaps we can reconfigure the FPGA to enable JTAG access. With JTAG you can freeze the unit on boot and dump the boot rom.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • S @ salazarcosplay:
    and also ahve the option to play as a human
  • S @ salazarcosplay:
    or set it up that when you get injured past a certain point they have to replace your human parts with cybernetics
  • Xdqwerty @ Xdqwerty:
    i have a placeholder enemy sprite i made
  • S @ salazarcosplay:
    or have it that you don't know you are a cyborg, robot, and you find out and have a existential crisis
  • S @ salazarcosplay:
    or have it start in the virtual world and you are an ai that gained sentience
  • Xdqwerty @ Xdqwerty:
    btw gonna wash my face in a bit, my eyes feel tired
  • S @ salazarcosplay:
    and you convince your owner to help you break out of the virtual world to real world
  • BigOnYa @ BigOnYa:
    Eyes - "yawn"
    +1
  • S @ salazarcosplay:
    you bleack in to goverment computer systems to get cyborg schematics so you can get a robot body constructed
  • Xdqwerty @ Xdqwerty:
    btw @BigOnYa the health bar doesnt decrease when i take damage (and yes i put the "at the beggining of the scene change value of greenflatbar: set to Protagonistcopmode.Health::Health())
  • S @ salazarcosplay:
    i the protagonist
  • S @ salazarcosplay:
    human, robot, cyborg
  • S @ salazarcosplay:
    human with cyborg enhancements
  • S @ salazarcosplay:
    or like terminatior
  • S @ salazarcosplay:
    with living tissue
  • BigOnYa @ BigOnYa:
    @Xdqwerty there is health behaviour you can add to your character, then to use a health bar is lil more complicated, google n watch a few tutorial video on it, be too hard to explain here.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the character has the health behavior
  • BigOnYa @ BigOnYa:
    I know you have to create a health and health max variable. Then there is a calculation you use in code to subtract width size of the health bar. Google few vids.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the "greenflatbar" is one of the preset health bars btw
  • BigOnYa @ BigOnYa:
    Yea you can use any bar/sprite. It will just change the width. Ok good luck and have fun. I'm off to go shoot some pool at the bar. Talk to you later.
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why does the health behavior exist if you can just use a variable?
  • Xdqwerty @ Xdqwerty:
    and nope the number still doesnt change
  • Xdqwerty @ Xdqwerty:
    ok im gonna make my own asset
    Xdqwerty @ Xdqwerty: ok im gonna make my own asset