gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS Flash Equipment > Question about header.bin

#49428 - Smiley - Fri Jul 29, 2005 6:44 pm

Hello everyone,

I was reading on the forum, trying to understand how WiFiMe gets to boot even if it is unsigned code, and I found out that it uses a header.bin created from dumps of the Super Mario 64 DS header.

My question is actually quite simple. If it is possible for WiFiMe to use Super Mario 64 DS header, wouldn't it be possible for any homebrewed program? I am pretty sure it's impossible since someone else would have thought about it before me, but I am just curious as to why it works for WiFiMe and not for homebrewed applications.

Thanks for making this rookie formation in DS world easier :P

#49433 - Mighty Max - Fri Jul 29, 2005 6:55 pm

(Im taking guesses here so don't nail me on it)

I think it is not only using the header from mario64DS but also a already signed bit of code. (i guess captured too). Afaik there is no real code execution on that transfered thing, only a data field not protected by (within the header) is redirecting the execution start entry to the GBA rom address.

Only when the protection is removed it can start executing non signed stuff.

If anyone knows better (maybe firefly himself) please correct me.

#49435 - tepples - Fri Jul 29, 2005 6:57 pm

The (signed, unmodified) SM64DS multiplayer part actually receives another binary from the master machine over Wi-Fi. If we can figure out the protocol that SM64DS uses to send another binary, then we may be able to trick the SM64DS multiplayer part into receiving an unsigned binary from the PC.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#49442 - Smiley - Fri Jul 29, 2005 7:21 pm

If I understand correctly what you are saying Tepples, WiFiMe uses a signed but modified binary header which Firefly captured from a SM64DS multiplayer hosting DS.

Your theory is that if we could understand the WiFi protocol for the transfer of one cart multiplayer, we could "emulate" a SM64DS multiplayer server on the PC, but instead of sending SM64DS, you would send a homebrewed binary.

So to load a homebrew, you would buy SM64DS, start a hacked multiplayer server, start SM64DS on the DS and look for a server?

Do I understand correctly?

#49473 - tepples - Sat Jul 30, 2005 12:45 am

Smiley wrote:
Your theory is that if we could understand the WiFi protocol for the transfer of one cart multiplayer, we could "emulate" a SM64DS multiplayer server on the PC, but instead of sending SM64DS, you would send a homebrewed binary.

So to load a homebrew, you would buy SM64DS, start a hacked multiplayer server, start SM64DS on the DS and look for a server?

Almost. But you wouldn't need to buy SM64DS because SM64DS has single-pak multiplayer. You'd just need to send the SM64DS client stub (which WiFiMe already does) except without the header changes, and then the PC would emulate the multiplayer server. This is why I continue to suggest disassembling the SM64DS client stub.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.