Hacking Firmware Reverse Engineering (Info Dump)

NWPlayer123

Well-Known Member
OP
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
Would it help to write something explaining how instructions work in each function eg how parameters are passed in and what all the registers are for, you can mostly rely on yagcd and examples
When you mean 0x0 to 0x1 do you mean 0x0 to 0xFFF or something else ?

Thanks for this
see above, it's the full memory range from 0x00000000 to 0xFFFFFFFF, 0x0 to 0xF is the very first digit, splits it up into 16 chunks
 

NWPlayer123

Well-Known Member
OP
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
Question, what would one call the per-core kernel memory areas at 0xFFE04000, 0xFFE44000, 0xFFE84000, coreX_kernmem? It's per core so it's not really shared
get_core_kernarea is at FFF09658 on 5.5, just clears all but last 2 bits (to allow for 0, 1, and 2), then shifts left 18 bits (getting 0x00000, 0x40000, or 0x80000), then adds 0xFFE04000 to it which is the start of core0 (which will shift depending on the core number from pir)
the function right below it at FFF09668 is same thing but includes the move from pir to r12
 

Datalogger

Living the Dream
Member
Joined
Dec 21, 2009
Messages
416
Trophies
1
Location
Maui
XP
712
Country
United States
"The quick brown fox jumps over 13 lazy dogs" ..Not sure what relevance it has yet.

The quote is commonly used in writing because it utilizes every letter in the alphabet. On wikapedia I found this info on the saying.

"""In the age of computers, this pangram is commonly used to display font samples and for testing computer keyboards. In cryptography, it is commonly used as a test vector for hash and encryption algorithms to verify their implementation, as well as to ensure alphabetic character set compatibility. Microsoft Word has a command to auto-type the sentence, in versions up to Word 2003, using the command =rand(), and in Microsoft Office Word 2007 and later using the command =rand.old().[10]"""
Like I revealed earlier. That text is found in the system font files without the 13.
That is NOT what the message says.
Someone made a mistake in decoding it and thought it said "The quick brown...."
They were mistaken and have since recanted that decoding of it.
 
Last edited by Datalogger,

BurningDesire

Well-Known Member
Member
Joined
Jan 27, 2015
Messages
4,999
Trophies
1
Location
Behind a screen reading news
XP
4,885
Country
United States
Hey @NWPlayer123 . I know this is a bump but the curiosity hasn't killed the cat yet and I tried downloading the 5.5.1 kernel with your nus grabber and this happened.

Starting NUS Download. Please be patient!
Downloading Title 00050010-1000400 v15702...
[=] Storing Encrypted Content...
- Downloading TMD...
+ Downloading TMD Failed...
Download failed: "Downloading TMD Failed:
The remote server returned an error: (401) Unauthorized. ):"
NUS Download Finished.

Do you think nintendo updated their servers?
 

BurningDesire

Well-Known Member
Member
Joined
Jan 27, 2015
Messages
4,999
Trophies
1
Location
Behind a screen reading news
XP
4,885
Country
United States
Try unwizard I test it last night and it work
Same error

tarting NUS Download. Please be patient!
Downloading Title 00050010-1000400 v15702...
[=] Storing Encrypted Content...
- Downloading TMD...
+ Downloading TMD Failed...
Download failed: "Downloading TMD Failed:
The remote server returned an error: (401) Unauthorized."

Edit: I also including the keys for decrypting
 

RealityNinja

Well-Known Member
Member
Joined
Nov 4, 2015
Messages
1,716
Trophies
0
Location
Pokéland
XP
667
Country
France
Last edited by RealityNinja,

ryuutseku85

Well-Known Member
Member
Joined
Dec 14, 2015
Messages
110
Trophies
0
Age
39
XP
416
Country
France
Same error

tarting NUS Download. Please be patient!
Downloading Title 00050010-1000400 v15702...
[=] Storing Encrypted Content...
- Downloading TMD...
+ Downloading TMD Failed...
Download failed: "Downloading TMD Failed:
The remote server returned an error: (401) Unauthorized."

Edit: I also including the keys for decrypting
Get rid of the "-" and add a A ( from head ) at the end
 
  • Like
Reactions: RealityNinja

NWPlayer123

Well-Known Member
OP
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
So I have another question in IDA view every seg000: 00007804 spits out a dd and a bunch of crap after that ... How if I can convert those to strings?
Basic usage: press D to convert to data (there's a "carousel" rotate thing between different data types, first byte then short then word, can change it in options), you can select a number of bytes and hit A to make a string (I usually exclude the 00 null byte at the end and either convert it to byte short or word or if it's 3 bytes, select and hit A to turn it into one line), C lets you turn data into code (all instructions are 4 bytes so if the addr is not 0, 4, 8, C it's probably gonna complain), Q if you left stack pointer stuff on when compiling will turn the +var_8 to just the normal number.
 
  • Like
Reactions: BurningDesire

Sammi Husky

Well-Known Member
Member
Joined
Jul 6, 2014
Messages
312
Trophies
0
Age
29
XP
498
Country
United States
Basic usage: press D to convert to data (there's a "carousel" rotate thing between different data types, first byte then short then word, can change it in options), you can select a number of bytes and hit A to make a string (I usually exclude the 00 null byte at the end and either convert it to byte short or word or if it's 3 bytes, select and hit A to turn it into one line), C lets you turn data into code (all instructions are 4 bytes so if the addr is not 0, 4, 8, C it's probably gonna complain), Q if you left stack pointer stuff on when compiling will turn the +var_8 to just the normal number.

So I have another question in IDA view every seg000: 00007804 spits out a dd and a bunch of crap after that ... How if I can convert those to strings?

To add to this, q will automatically turn 4 bytes at the cursor into a word. ctrl-o will attempt to convert into an offset (you can select a whole range of words and it'll attempt to turn as many as possible into offsets). You can also change words into floats as well, but you may need to go setup the data types in the database settings. Then float will be added to the cycle when you press D. (or just press q, then D). And iirc L is an alignment directive. (especially useful in the kernel.img since the functions are seperated by null bytes, alignment's will clean it right up). Alt-q will bring up a dialog to convert to any structures you define (like the memory table entries for example). Lastly, you can press P in a code location to attempt to convert it to a function, which will also run auto-analysis on it.

As far as strings go, there are more than one kind of string you can convert to. Sometimes you may need to convert to unicode and such. You can either change the default string type in settings, or you can use edit->strings->[option].
 

BurningDesire

Well-Known Member
Member
Joined
Jan 27, 2015
Messages
4,999
Trophies
1
Location
Behind a screen reading news
XP
4,885
Country
United States
To add to this, q will automatically turn 4 bytes at the cursor into a word. ctrl-o will attempt to convert into an offset (you can select a whole range of words and it'll attempt to turn as many as possible into offsets). You can also change words into floats as well, but you may need to go setup the data types in the database settings. Then float will be added to the cycle when you press D. (or just press q, then D). And iirc L is an alignment directive. (especially useful in the kernel.img since the functions are seperated by null bytes, alignment's will clean it right up). Alt-q will bring up a dialog to convert to any structures you define (like the memory table entries for example). Lastly, you can press P in a code location to attempt to convert it to a function, which will also run auto-analysis on it.

As far as strings go, there are more than one kind of string you can convert to. Sometimes you may need to convert to unicode and such. You can either change the default string type in settings, or you can use edit->strings->[option].

I'll say this. Even though the lack of kernel on 5.5.1 has left me uninspired to develop my game it has left me inspired to learn more then I ever could from just making a game. So while others are bitching about not having kernel I have learned that when you want to fight to get something and do it yourself you learn a whole lot more then just saying I'm entitled give it to me. So guys. If you want the exploit yourself make it. Or at least attempt to. If you fail you can still say to your friends. Yeah I worked on reverse engineering the espresso kernel. Did I succeed no. However I still learned much more then I ever would instead of just waiting and complaining so all I can say is

Thank you, thank you for making us wait. This has and still is a wonderful experience for knowledge. Guys quit complaining and start doing things your self.

Thank you to the guy above and @NWPlayer123 for responding to my question as well.
 
Last edited by BurningDesire,

NWPlayer123

Well-Known Member
OP
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
To add to this, q will automatically turn 4 bytes at the cursor into a word. ctrl-o will attempt to convert into an offset (you can select a whole range of words and it'll attempt to turn as many as possible into offsets). You can also change words into floats as well, but you may need to go setup the data types in the database settings. Then float will be added to the cycle when you press D. (or just press q, then D). And iirc L is an alignment directive. (especially useful in the kernel.img since the functions are seperated by null bytes, alignment's will clean it right up). Alt-q will bring up a dialog to convert to any structures you define (like the memory table entries for example). Lastly, you can press P in a code location to attempt to convert it to a function, which will also run auto-analysis on it.

As far as strings go, there are more than one kind of string you can convert to. Sometimes you may need to convert to unicode and such. You can either change the default string type in settings, or you can use edit->strings->[option].
Tru, I've rarely seen Unicode strings tho, either it's 1-byte ASCII or if it's a first party Nintendo game it'll probably have Japanese comments in Shift-JIS (you'll need to go to Options -> ASCII String Style -> Change encoding or set default encoding, right click and Insert then type in Shift-JIS [as spelled]) which you can tell when it ends cause each char takes up two bytes and you scroll down till you hit a null byte like usual. Also, wh, I never knew that alignment thing existed, how would I combine more than 4 bytes in .bss to eg a .space 0x30 cause I never figured it out and IDA gets some stuff wrong in disassembly
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Quincy @ Quincy:
    Usually when such a big title leaks the Temp will be the first to report about it (going off of historical reports here, Pokemon SV being the latest one I can recall seeing pop up here)
  • K3Nv2 @ K3Nv2:
    I still like how a freaking mp3 file hacks webos all that security defeated by text yet again
  • BigOnYa @ BigOnYa:
    They have simulators for everything nowdays, cray cray. How about a sim that shows you playing the Switch.
  • K3Nv2 @ K3Nv2:
    That's called yuzu
    +1
  • BigOnYa @ BigOnYa:
    I want a 120hz 4k tv but crazy how more expensive the 120hz over the 60hz are. Or even more crazy is the price of 8k's.
  • K3Nv2 @ K3Nv2:
    No real point since movies are 30fps
  • BigOnYa @ BigOnYa:
    Not a big movie buff, more of a gamer tbh. And Series X is 120hz 8k ready, but yea only 120hz 4k games out right now, but thinking of in the future.
  • K3Nv2 @ K3Nv2:
    Mostly why you never see TV manufacturers going post 60hz
  • BigOnYa @ BigOnYa:
    I only watch tv when i goto bed, it puts me to sleep, and I have a nas drive filled w my fav shows so i can watch them in order, commercial free. I usually watch Married w Children, or South Park
  • K3Nv2 @ K3Nv2:
    Stremio ruined my need for nas
  • BigOnYa @ BigOnYa:
    I stream from Nas to firestick, one on every tv, and use Kodi. I'm happy w it, plays everything. (I pirate/torrent shows/movies on pc, and put on nas)
  • K3Nv2 @ K3Nv2:
    Kodi repost are still pretty popular
  • BigOnYa @ BigOnYa:
    What the hell is Kodi reposts? what do you mean, or "Wut?" -xdqwerty
  • K3Nv2 @ K3Nv2:
    Google them basically web crawlers to movie sites
  • BigOnYa @ BigOnYa:
    oh you mean the 3rd party apps on Kodi, yea i know what you mean, yea there are still a few cool ones, in fact watched the new planet of the apes movie other night w wifey thru one, was good pic surprisingly, not a cam
  • BigOnYa @ BigOnYa:
    Damn, only $2.06 and free shipping. Gotta cost more for them to ship than $2.06
    +1
  • BigOnYa @ BigOnYa:
    I got my Dad a firestick for Xmas and showed him those 3rd party sites on Kodi, he loves it, all he watches anymore. He said he has got 3 letters from AT&T already about pirating, but he says f them, let them shut my internet off (He wants out of his AT&T contract anyways)
  • K3Nv2 @ K3Nv2:
    That's where stremio comes to play never got a letter about it
  • BigOnYa @ BigOnYa:
    I just use a VPN, even give him my login and password so can use it also, and he refuses, he's funny.
  • BigOnYa @ BigOnYa:
    I had to find and get him an old style flip phone even without text, cause thats what he wanted. No text, no internet, only phone calls. Old, old school.
  • Psionic Roshambo @ Psionic Roshambo:
    @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87 cents. Free shipping from China... It arrived it works and honestly I don't understand how it was so cheap.
    +1
    Psionic Roshambo @ Psionic Roshambo: @BigOnYa, Lol I bought a new USB card reader thing on AliExpress last month for I think like 87... +1