ROM Hack 3DSExplorer

Immortal_no1

Well-Known Member
Member
Joined
Jul 17, 2003
Messages
266
Trophies
0
XP
292
Country
Think only Cartridge EEPROM files

Nice app btw,

Samurai Warriors won't load up in the app, is it restricted to 128k files?

I'll support you when i find any issues
tongue.gif
 

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
It's suppose to open:

3ds files (with CCI ('NCSD') header and CXI ('NCCH') partitions)
sav files (with 'SAVE' in them...encrypted and decrypted)
tmd files (downloaded from eshop.. really early stage)

save files still have problems because i dont fully understand the structure..
you could check the source files at http://code.google.com/p/3dsexplorer/
and maybe explain it to me.

If you do:
Don't take one save file as an example (they are different).
For starters download the 3 encrypted files from http://3dbrew.org/wiki/Games
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,646
Country
France
For more save files, you can also check the 3DS Save DeEncrypter topic.
There are some posted save files in that topic (you'll have to search in all pages for links).

I don't remember if you worked with them already, but they are also working on the save file structure.

Thanks for 3DSexplorer, I hope you'll keep updating it with new exploits/hacks/understanding of any files structure.
 

Immortal_no1

Well-Known Member
Member
Joined
Jul 17, 2003
Messages
266
Trophies
0
XP
292
Country
you can make the user interaction with the app work more fluidly by removing the message box asking if the file is encrypted or decrypted, it's not necessary, Do the following:

1. calculate the header checksum of the data, create a CRC16 hash from the start of the file of the next (318 bytes 13Ehex) then compare that against the following 2 bytes after the 318 you just read. the result will need to be endian flipped.

This will show a the file is a save and not just a random binary file. If the check passes then
2. Do a search for: "53 41 56 45 00 00" which is SAVE with 2 null characters next to it, this will tell you it's decrypted save and removes some of the issues if a game randomly has the word SAVE in the encrypted file. Chances of that is extremely low.

This will eliminate the need for the message box.
 
  • Like
Reactions: 1 person

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
good idea.. i'll do that!

Edit: Actually about number one... the crc is at offset 10*(filesize/0x1000-1)+8 (you forgot the blockmap size is dynamic)

Edit2: I don't have issues if a file has the word save in it because i don't search for it...I do a jump according to the DIFI file system offset
The SAVE should appear right after the HashTable size.
If you search for the word save you could end up giving information about previous file tables that don't exist anymore!!
this is still a filesystem and the garbage isn't deleted..
 

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
Released v0.5.2...
check it out!

v0.5.2
* tmd now works well (apperantly it was BE and not LE)
* save classes and structure improved (code-wise)
* no question on opening a save file rather it's encrypted or not.
now it's autodetecting.
 

Immortal_no1

Well-Known Member
Member
Joined
Jul 17, 2003
Messages
266
Trophies
0
XP
292
Country
Looking at your updates on 3dbrew have you found all the information you needed then?

We're still a few hashes behind recreating the Save structure aren't we though? 3 More hashes to be found or are there 2 now and the other 2 aren't needed?
 

Immortal_no1

Well-Known Member
Member
Joined
Jul 17, 2003
Messages
266
Trophies
0
XP
292
Country
By using your updated app, you have the Hash Size which for my Super MonkeyBall is 300 0x12C and the Hash which is: 98 2F 00 F3 0B 81 41 49 B5 A4 66 C8 A3 D7 F9 3C B5 2F 5A AF 51 59 85 A1 5E 93 45 6A F1 FF 91 8E

What data gets hashed to create that hash? as it's said that it's the first 0x12C bytes of the Active Partition (First)

I have tried to recreate it with various CRC's but have been unable to, are you saying that you can now recreate the Hash in the DISA or just displaying it in your app?

Fixed
 

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
the Active Table is 0 meaning the second table.

This block of 0x12C (in size) starting @ 0x330 into the image:
Code:
44 49 46 49 00 00 01 00 44 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 BC 00 00 00 00 00 00 00 50 00 00 00 //DIFI
00 00 00 00 0C 01 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 49 56 46 43 
00 00 02 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 
20 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 A0 01 00 00 
00 00 00 00 0C 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 D0 00 00 00 00 00 00 0C 00 00 00 00 00 00 00 
78 00 00 00 00 00 00 00 44 50 46 53 00 00 01 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 08 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 
00 E0 00 00 00 00 00 00 0C 00 00 00 00 00 00 00 A0 E9 0E 3B BF 29 9B 05 54 4E CF F7 88 EB 23 53 77 E4 3A 02 
D8 48 27 B7 44 D0 49 B1 AB 90 98 61

Gives (SHA-2,256) : 982F00F30B814149B5A466C8A3D7F93CB52F5AAF515985A15E93456AF1FF918E
as requested
smile.gif


And to your other question...the hashes in the unactive table apprears to be old hashes...
 

Immortal_no1

Well-Known Member
Member
Joined
Jul 17, 2003
Messages
266
Trophies
0
XP
292
Country
Sorry, i was thinking of DIFI generation. I have DISA already, i went off on a wild tangent there
tongue.gif


Do you have any fresh info on the DIFI hash generation?
 

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
No..nothing there...it might be the last hash.

But my intention is: once we get all the hashes figures out.

You could
open a sav file (encrypted)
extract the files from it
change them
replace the ones in the sav file (with the same size)
and save the changed image.

For this to happen
the 3ds explorer should hash the partitions and then the disa.
and should store the memory map, the key for recreation.

it already stores the key and the memory map shouldn't be a problem, just make it global in the context.
so i think the difi's hash is all weve got
smile.gif
(hopefully...)

P.S.
A hash could be stored at the game's files also.
so each game will have its own problems...
 

elisherer

I ♥ 3DS
Member
Joined
Dec 16, 2009
Messages
778
Trophies
0
Location
3dbrew.org
Website
www.sherer.co.il
XP
392
Country
Iceland
Immortal_no1 said:
By using your updated app, you have the Hash Size which for my Super MonkeyBall is 300 0x12C and the Hash which is: 98 2F 00 F3 0B 81 41 49 B5 A4 66 C8 A3 D7 F9 3C B5 2F 5A AF 51 59 85 A1 5E 93 45 6A F1 FF 91 8E

What data gets hashed to create that hash? as it's said that it's the first 0x12C bytes of the Active Partition (First)

I have tried to recreate it with various CRC's but have been unable to, are you saying that you can now recreate the Hash in the DISA or just displaying it in your app?

Fixed

Thanks, there was a mistake at the program... i just fixed it...
It said "First" but it was really "Second"...

Download again everybody...v0.55
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Yea that's what I'm sitting on now- 4.9, and it seems fine, have had no issues at all
  • S @ salazarcosplay:
    I don't know if people play online or such
  • K3Nv2 @ K3Nv2:
    My ps3 short circuited during a deep clean still salty about it after downloading 2tbs worth but SteamDeck okay with emulation still just can't run mgs4 worth shit
  • BigOnYa @ BigOnYa:
    Yea forgot bout trophies. They just silly to me. Just like the xbox achievements. Hey, to each they own tho.
  • K3Nv2 @ K3Nv2:
    It keeps players in touch with the game like a check list of things to do after they beat it
  • S @ salazarcosplay:
    @BigOnYa they ruined the gaming experience for me to be honest
  • S @ salazarcosplay:
    @BigOnYa Im not crazy about getting all of them, i feel like I have something to show for for the time put in
  • S @ salazarcosplay:
    @BigOnYa If you want to do rgh or 360 mod
  • S @ salazarcosplay:
    does it matter if you update your 360 or not before trying is it advisable or not
  • BigOnYa @ BigOnYa:
    Yea I don't pay attention to them really. Or do I try to 100% a game. I just play till story ends/ or I get the girl!
  • K3Nv2 @ K3Nv2:
    Bigonya uses his wiener to mod 360s
    +1
  • Xdqwerty @ Xdqwerty:
    Going to the water park, see ya
  • BigOnYa @ BigOnYa:
    You should update the 360 to newest dash before RGHing it yes. But not a big deal if you don't, you can install new dash/avatar updates after. It's just easier to do it auto online before, instead manual offline after.
  • BigOnYa @ BigOnYa:
    Have fun @Xdqwerty. If you see a chocolate candy bar floating in the water, don't eat it!
  • AncientBoi @ AncientBoi:
    :O:ohnoes: Y didn't U Tell ME that ALSO? @BigOnYa :ohnoes: 🤢🤮
    +1
  • BigOnYa @ BigOnYa:
    Does it taste like... chicken?
    +1
  • S @ salazarcosplay:
    @BigOnYa I wanted to ask you about your experience with seeing south park. Most of the people a bit younger like my younger brother and cousins that are a few younger than me that saw kids found south park funny because of the curse words, kids at school, that seemed like liking the show on a very basic level.

    I could not quite have a in depth discussion of the show.

    How was it for you? As an adult. What did you find the most interesting part about it. Did you relate to the parents of the kids and their situations. Was it satires, the commentary on society. The references on celebrities' and pop culture.
  • BigOnYa @ BigOnYa:
    I remember seeing the very first episode back in the day, and have watched every episode since. I used to set my VCR to record them even, shows how long ago.
  • BigOnYa @ BigOnYa:
    I just like any comedies really, and cartoons have always been a favorite of mine. Family guy, American Dad, Futurama, Cleveland Show, Simpsons - I like them all.
  • BigOnYa @ BigOnYa:
    South Park is great cause they always touch on relavent issues going on today, and make something funny out of it.
    +3
  • S @ salazarcosplay:
    @BigOnYa were you always up to date on the current events and issues of the time or were there issues that you first found out thru south park
  • BigOnYa @ BigOnYa:
    Most of the time yea I knew, I watch and read the news regularly, but sometimes the Hollywood BS stuff, like concerning actors slip by me. I don't follow most Hollywood BS (example: the Kardasians)
    +2
  • S @ salazarcosplay:
    @BigOnYa there were relevant issues before south park was made, that's why i think a south park prequel/spinoff would be great. Randy and his friends in their child hood
  • BigOnYa @ BigOnYa:
    Yea, like them running in high school together, getting into stuff, and how they got hitched and had kids. And how the town of South Park was back then compared to now. That would be cool to see.
    BigOnYa @ BigOnYa: Yea, like them running in high school together, getting into stuff, and how they got hitched and...