[HOW-TO] Have a homemade Streetpass Relay

Discussion in '3DS - Tutorials' started by dicamarques, Aug 9, 2013.

?
  1. Linux

    90 vote(s)
    7.8%
  2. Android

    132 vote(s)
    11.5%
  3. Router

    225 vote(s)
    19.5%
  4. Windows

    418 vote(s)
    36.3%
  5. A pony with a wifi antenna O.o?

    286 vote(s)
    24.8%
  1. GothicIII

    GothicIII GBAtemp Advanced Fan

    Member
    6
    Jan 4, 2015
    Gambia, The
    Don‘t get your hopes up. Nintendo won‘t magically gift someone the sourcecode of those servers, so there is a long reverse engineering process involved which must have happened when the server were working. I dont know the details but if the traffic was encrypted this would be very bad news.
    I dont know if anybody is/was working on this. Everything else would be patchable with cfw. The serverside is the real problem.

    The benefits of getting homepass working again vs. the cost and work has to be done... there is not enough public interest in this.
     
    Last edited by GothicIII, Mar 29, 2018
  2. NGamerCole

    NGamerCole Advanced Member

    Newcomer
    2
    Jul 15, 2016
    United States
    Honestly I figured, I can be hopeful, but you're right. But you never know whose out there who might want to.
     
  3. raphamotta

    raphamotta GBAtemp Advanced Fan

    Member
    6
    Jul 12, 2013
    Tested with VMWare machine, option GBATEMP,49 and I can confirm, no more streetpasses at all :(
     
  4. StevenSeegal

    StevenSeegal Member

    Newcomer
    3
    Jul 22, 2015
    Netherlands
    Nintendo blocked the "Home pass". Streetpass in gamestores are still working, even as streetpass between my 2 3DS'es are.
    Hopefully we can work out a way to have a working "Homepass" function but I bet it involves changing stuff in the NAND.
     
  5. raphamotta

    raphamotta GBAtemp Advanced Fan

    Member
    6
    Jul 12, 2013
    Really? Do you know the source? Idk if it's possible without 3DS firmware update. .

    Edit : street pass between 3DS's will always works in actual and old firmware because doesn't needs Internet for the relay. It's It's a hardware thing. Maybe in the game stores you go have a lot is 3DS idk
     
    Last edited by raphamotta, Apr 5, 2018
  6. k7ra

    k7ra GBAtemp Fan

    Member
    4
    Dec 11, 2016
    Well, not really.
    If we understand how 3ds share streetpasses, than we can emulate wifi with server where ppl would exchange their streetpass data.
    Like we done with Streetpass Relay, but it would work as 2 3ds was exchange them while walking

    And ofc streetpass works, they dont even need a net...
    Stores Streetpass Relay still work???
    Thats strange, bcs nin said that they drop it support
     
  7. StevenSeegal

    StevenSeegal Member

    Newcomer
    3
    Jul 22, 2015
    Netherlands
    Have to admit I didn't test the Store's Streetpass as I'm too sick to go outside but the news post indicated that Nintendo dropped Streetpass in Japan only. This is why I assume it should still work outside Japan.
     
  8. Tane

    Tane GBAtemp Regular

    Member
    2
    Aug 8, 2013
    United States
    Hi all - have been working with Pinchie who developed the RaspiPass Raspberry Pi image to get this working the last few weeks, and I think we are dead in the water. A couple weeks ago, it was still working. Then sometime since then, it all stopped working. My guess is that they have disabled all the databases that stored the MAC information & Streetpass data. Without that, there is nothing we can do.

    Like Raphamotta was saying - there is very little chance someone can emulate the database that Nintendo runs to store the data.

    :(
     
  9. oliv5599

    oliv5599 Member

    Newcomer
    1
    Feb 9, 2017
    France
    Hello guys. I hope that someone can create a server which simulate the Nintendo Database, then we'll may streetpassing like we done before with Nbahomepass or Rhyzhomepass or all the others methods... Do you think it will be possible ??
    We just need a server that stock mii datas, and the right ssid for connecting the 3ds, no ?
    So sad without any streetpass !!!! :sad:
     
  10. raphamotta

    raphamotta GBAtemp Advanced Fan

    Member
    6
    Jul 12, 2013
    In theory is that way, but we don't know how the server works, how's the data content and how it sends to multiple consoles. I believe we need a server to see the source code. I tried with wireshark with no luck.
     
  11. AndyN

    AndyN Member

    Newcomer
    2
    Aug 21, 2013
    United States
    Arkansas
    It's unfortunate that they all stopped working. I have enjoyed using mine daily for a few years, i was using the wifi repeater method. Then suddenly it stopped working on march 28th. I wasn't even aware that nintendo was going to shut them down until it was done. I am very grateful to the people who figured out how to do homepass in the 1st place. Because before streetpass relay stations i was lucky to get a streetpass once a month. After relay stations came out, i would stop by mcdonlads on my way home from work but after homepass was set up, it was awesome to be able to change mac at will and get a new set of streetpasses. I just want to say Thank you to everyone's hard work. If home pass is revived it would be great but i am still grateful for the amount of time i got to enjoy it while it was active.
     
    Tane, raphamotta and zoogie like this.
  12. bungiefan

    bungiefan Member

    Newcomer
    3
    Jul 19, 2008
    United States
    The way it worked is that the 3DS looked for specific SSIDs (attwifi being one of them), and when it found one of them without security on the network, it connected to the Relay server at Nintendo and told the server the MAC address of the wireless access point and which SSID it used to connect. The server then spat back the last 6 system's StreetPass data that talked to it with that pair of credentials, wipes the oldest one, and pulls the data from your system. So us setting up HomePass, we were just cloning the SSID and MAC of known relays out in the wild, and agreeing on a bunch of other pairs of SSID/MAC that we would all use to exchange data with each other through Nintendo's server. So the same MAC, but one with attwifi as the SSID and one with the NZone@McD SSID would each count as a different relay, and pull different data from the server. Our router holds no data about the transaction, and routers don't generally have enough storage for things like this. All the HomePass software did was cucle through SSID and MAC combinations, it did nothing to data stored on our devices. The 3DS established the connection to Nintendo's central relay server through our router, and that server shut down. The server held the data. Heck, the StreetPass Weekend events where you could streetpass people from around the world just was them letting the relay server return random results from the entire database, instead of just the last 6 matching the pair of attributes for the relay you used to connect.

    So the server was the single point of failure, and when they shut it down, they ended global relay service. There were no regional relay servers, all 3DS systems in the world connected to the same server through anything they recognized as a relay.

    The complication with setting up a new server is the 3DS firmware is coded to use a specific server domain and hostname, and verifies it against an SSL certificate. That means we can't do a simple DNS redirect in our routers to point to another server of our own creation, because the 3DS will ask for the SSL certificate, and if it isn't issued to Nintendo by the proper certificate authority, it refuses the connection. We cannot get a certificate for our own server from that authority that claims to be issued to Nintendo, as that is the whole point of such certificates, to verify a site is who it claims to be. The authorities do identity verification before issuing a certificate, that is their entire job. They also revoke compromised certificates, and other operations relating to certificates and verification.

    Thus the only possible solution for that is to use CFW to replace the certificate the 3DS checks for with one we can get, and redirect it to a different server for StreetPass Relay that uses that certificate, or modify the 3DS to not do the certificate check at all. Then someone still has to set up a server that properly stores and exchanges valid StreetPass data, or find out how to forge data the system accepts as valid. I don't think anyone has completed such a project yet, but data may have been captured over the years to reverse-engineer it.

    Until those issues are worked out, relays are dead.

    So the big project now is figuring out how StreetPass data is structured for each game that uses it, and making a program to communicate with a 3DS so that it will exchange data, or a program to generate a fake StreetPass entry to send to the system so it will read as valid. The latter would let anyone make a StreetPass event with any data they want for any game they want, to unlock anything they need on their system. Of course, save editors could also do that without involving StreetPass, but the plaza would lose out on a lot of functionality without a StreetPass emulator, or a full relay server replacement being set up.

    I guess the question for anyone wanting to set up a replacement relay is how much bandwidth per month it would consume if all of us on Homepass started using it. It may also be possible that only CFW systems will be able to use a replacement option.
     
    oliv5599, MAXLEMPIRA, driph and 4 others like this.
  13. raphamotta

    raphamotta GBAtemp Advanced Fan

    Member
    6
    Jul 12, 2013
    That's it.
     
  14. Tane

    Tane GBAtemp Regular

    Member
    2
    Aug 8, 2013
    United States
    ^^ This

    It's been a great 5 years of HomePass... was hoping for another 5 at least.

    If anything gets development/reverse-engineered - I will be happy to put it up on the old spreadsheet (www.homepass.info).

    So long, and thanks for all the passes!
     
  15. JediAviator

    JediAviator Advanced Member

    Newcomer
    2
    Feb 20, 2016
    United States
    Going to miss seeing my green light flashing...
     
    MAXLEMPIRA and oliv5599 like this.
  16. oliv5599

    oliv5599 Member

    Newcomer
    1
    Feb 9, 2017
    France
    Hello guys !
    And what about Nintendo Co., Ltd. ? Maybe we could suggest them to create 'official homepass' ? ... I mean : they make a 'game' (that we have to buy on the nintendo e-shop ^^ they can get money !!) that allow the 3ds to get streetpass like we done before unofficially, every 8 hours for example...
    They just have to turn on their central server, and develop the 'game'... Sure that lot of janapese players will buy the program !! And all over the world too !!
    What do you think about that? Someone knows how to contact Nintendo ??
    I miss my green light too ! So much !!
     
    JediAviator likes this.
  17. bungiefan

    bungiefan Member

    Newcomer
    3
    Jul 19, 2008
    United States
    They don't need an app. All they would need to do is stand up the server again and point people to the HomePass page. Nintendo doesn't like to involve people too much in using a computer to make their 3DS work though, which is why they still say only 32 GB and smaller cards are compatible, even though it is super easy to use any SD card size on the market (probably 2 TB is the max it can access, given FAT32 limitations).

    Nintendo is way behind the times on both security principles and network functionality. Odds are low they would do this for us, considering they have withheld features from the Switch (camera, QR code scanner, web browser, sound player/recorder, save backup to external media) out of fear they would be used to hack it like they did for Wii, WiiU, and 3DS. Homepass was also "homebrew" and Nintendo has a hate-boner for homebrew that is hilariously large compared to other console companies. StreetPass has to rely on an external server or a direct connection to another console, because an app wouldn't have access to the data from other systems without it, and the relay server was that thing, if you read my previous post. An app alone won't substitute, and doesn't need to.
     
    oliv5599 likes this.
  18. Cecil_FF4

    Cecil_FF4 Member

    Newcomer
    3
    Apr 25, 2016
    United States
    I was wondering about an alternative, so I decrypted and extracted the contents of the CECD (system save 00010026), since it's in a standard DISA filesystem format. There are a number of files and folders contained within, but most notably there is an "OutBox" folder in each SPID folder (StreetPass ID -- game ID that presumably corresponds to the physical region of the game developer), which contains a transmission file within (and some metadata). That file is what is actually sent between consoles when they talk, which is then placed in the "InBox" folder on the target console. The "InBox" gets filled up according to the size of the maximum transmission number (which actually has nothing to do with the size of the transmission files, which tend to be about 4kB), metadata is recorded, and a message from the transmission itself is sent to the notifications applet. There's also "MBox" data, which includes the game name (file 010), ID (file 050), and something else I can't read (file 001), which is all presumably read by a notification and output to the user.

    If my assumptions to this point are correct, I'm betting a repository of these "OutBox" files could be used in some way to simulate connecting to a remote console, but that is beyond me. Something like that would probably work best as a homebrew app that injects such OutBox files directly into the CECD. Hopefully someone here will find this useful.
     
  19. Tane

    Tane GBAtemp Regular

    Member
    2
    Aug 8, 2013
    United States
    Wow! This is fascinating! This is the sort of thing that could lead us in the direction of "faking" an actual relay. One step along the path... I personally don't know how to utilize what you've shared, but I hope it might stir up something creative in someone else. Awesome job Cecil!
     
  20. Cecil_FF4

    Cecil_FF4 Member

    Newcomer
    3
    Apr 25, 2016
    United States
    Apparently a few of you like what I posted, and I really wish I could do more (my coding skills are mediocre at best), so let me be the first to toss my OutBox file on here so people can take a look at it. I don't think you can just toss it in the InBox of a game without also manipulating the metadata, but here it is anyway. It's for Super Mario 3D Land. The file is located at `.\CEC\00054000\OutBox\` within the CECD. The game has an SPID equivalent to the US Game ID in this case (doesn't always match up). This game uses a copy of my Mii, but no Mii hex data can be found, indicating that this game parses what it needs (face only) and uses just that. The hex of the code starting at 0x00000d00 contains "A Mystery Box has arrived!" text, which is what you see in the notifications screen.

    And for those of you that want to extract your CECD yourselves, copy your decrypted system save 00010026 (through FBI or godmode9 - the file is 55.0 MB) and use this tool to do a DISA extract. The top CEC folder contains a folder for each game that you've set up streetpass for, plus 2 metadata files; the "MBoxList____" is a simple plaintext list of SPIDs. The Game folder always contains InBox and OutBox folders, plus 4 MBox files; 3 are described in my previous post and the 4th is metadata. The InBox for each game always contains X+1 files, where X is the number of transmissions you've received and the 1 is metadata (X can be 0, btw). The OutBox always contains 3 files; 1 for your outbound transmission and 2 for metadata.

    If anyone wants my help in decoding all this, I'll be happy to contribute any way I can. I got a lot of Streetpasses back when Homepass was active that I never touched, which is why I got 8 titles with InBox data, including Mii Plaza.
     

    Attached Files:

    Last edited by Cecil_FF4, May 4, 2018
    bungiefan and raphamotta like this.
Quick Reply
Draft saved Draft deleted
Loading...