Tutorial [HOW-TO] Have a homemade Streetpass Relay

What method you are using?

  • Linux

    Votes: 93 7.9%
  • Android

    Votes: 133 11.4%
  • Router

    Votes: 226 19.3%
  • Windows

    Votes: 426 36.4%
  • A pony with a wifi antenna O.o?

    Votes: 292 25.0%

  • Total voters
    1,170
Status
Not open for further replies.

Scytheri0n

Well-Known Member
Newcomer
Joined
Mar 5, 2015
Messages
55
Trophies
0
Age
34
Website
github.com
XP
65
Country
First time poster here. I do a good bit of scripting for work and wanted to share my version of the Linux script. First, I wanted to thank those that made the original guides as they put the groundwork down for my script.

I'm very security minded but lazy so I wanted something that would be secure and make it so that I didn't need to unset my default 3DS Wi-Fi connection. I also wanted to be able to choose one relay at a time from a list so I don't fill my Plaza queue and just cycle through needlessly like the other scripts. I also added the BestBuy SSID as an option for events like bonus items in Animal Crossing.
I did not encode anything as I wanted this to be easily customizable so you can tune it to your own needs. I will explain how along the way.

I have a spare notebook with ethernet out, built-in wi-fi in. I'm using Mint but any Ubuntu based Debian distro will work just fine... I just prefer Mint because it comes with Cinnamon by default and doesn't assume you're an idiot like Unity.

The goal is that this notebook will run 24/7 as a secure access-point for mine and my wife's 3DS.

First you will need to do the same thing as any other Linux setup and add the following to the top of /etc/dnsmasq.conf with gedit, vim, nano, w/e:



Next, install some required programs:
sudo apt-get install dnsmasq
sudo apt-get install hostapd
sudo apt-get install macchanger

Choose a folder where you want to store everything. Anywhere in your home folder is fine, I chose /home/username/Documents. Now you will create 3 .conf files to use with hostapd.

gedit streetPass.conf


gedit bestbuy.conf


gedit ndsRouter.conf


For the ndsRouter.conf make sure you choose your proper country code, an SSID that is different from your regular home router, and a passphrase with at least 16 characters.

Next are the two bash scripts.
gedit ndsRouter.sh


And finally, the main script.
gedit streetPass.sh


On line 77, put your own wi-fi adapter's MAC address. You can find this with ifconfig before doing any changes, or sudo macchanger -p

On Ubuntu based distros, you may find that the Network Manager utility will interfere with your setup and tell you there is an error with the nl80211 driver. In this case, add the following lines to /etc/NetworkManager/NetworkManager.conf:
[keyfile]
unmanaged-devices=mac:yourwifiapmacaddress

This will force Network Manager to leave your wi-fi nic alone.

Once you've made all the files do a chmod +x on ndsRouter.sh and streetPass.sh
You can easily modify the listed MAC addresses or add more. Just look at the syntax for lines 65-77 and make another line with the next number in sequence. Then go to what was line 99 and change the 7 to whatever the highest number in sequence. You may also want to add your MACs to the list (lines 29-35).

There is a usage statement if you forget, but basically it's "sudo ./streetPass.sh #"
# being the relay you want to load. For a list of them, try "sudo ./streetPass --list"
There are a number of sanity checks in the script... making sure you ran with root privs and input validation so as not to break anything.

The script will setup a street pass relay of your choice for 60 seconds (more than enough time for old and new 3ds to register), then automatically switch over to your WPA2 secured hotspot... Just add this hotspot as your only connection on you 3ds and you will never have to switch around again. If you reboot/crash/whatever and just want your AP, do "sudo ./ndsRouter.sh" If you want to use your relay again, just ctrl+c run streetPass.sh

Hopefully that wasn't too long-winded and helps anyone who was concerned with having unsecured wifi leaking from their home. Let me know if you have any questions.

This all seems great, but I have a query. Have you actually tried the BestBuy part of the script? The reason I ask is that the 3DS is expecting the Bestbuy Zone to be a protected network with a specific passkey, which you haven't set up hostapd to use. Without that, the 3DS won't connect automatically and you won't be able to access the Nintendo Zone Viewer properly as it will throw up an error. This is because Nintendo Zone Viewer actually disassociates from a network, ignores your saved network configs and tries to establish a connection again with the credentials it expects and fails if they aren't correct.

You can get the key for the Bestbuy zone by dumping your system following the guide Arkansaw has posted in the tutorials section if you want to set up the zone correctly. :)

Otherwise, this is actually a great guide for Linux users to follow as its simple and requires little to no configuration (unless nl80211 isn't the correct driver for their system but then hostapd should let them know :P) since they can essentially just copy+paste. You could make it easier by hosting it on GitHub for users to have a one-click solution, but that's just my little suggestion ;). Thanks for the guide and welcome to GBATemp! :D
 

styxtraveler

New Member
Newbie
Joined
Apr 1, 2015
Messages
2
Trophies
0
Age
52
XP
52
Country
United States
I'm having a new problem. Things were working great for a while now but suddenly nzone won't start. It will make the wireless connection but then it stops right after that, it won't start the nzone task. when I run the vbs script I get the following message.

An event was unable to invoke any of the subscription.
it's on line 173.
something about inetsharingconfigurationForInetConnection.EnableSharing(0)

I haven't tried deleting all my network adapters yet, but I'm thinking that might be the next step.

this is running on a windows 7 laptop with w/ a wired internet connection and a tplink wireless adapter.
 

kantaris

Member
Newcomer
Joined
Feb 14, 2007
Messages
9
Trophies
0
XP
182
Country
United States
This is weird. I'm in the same boat as lordelohim but I think I can narrow it down to my home connection. I have a laptop that I use at work to do the homepass relay with 0 issues. I am using the Asus USB-N13 on that laptop.

So both of my home computers worked fine for probably a month. I am now getting ADODB.Stream when I run the Nzone exe. My home computers use a Linksys WUSB100 v2 -- I also tried the Asus adapter today on them both.

Both my home and office have Verizon FIOS.. My office has a better tier, a ton of static IP addresses, and is using a DIFFERENT ROUTER, we have it provisioned for Ethernet on the ONT and have it connected to a Sonicwall. (Which leads me to believe is the problem)

I have done the following
1. Tried two WLAN USB dongles (listed above)
2. Reboot my modem
3. Left my modem and FIOS ONT powered off all night
4. Reset modem to factory defaults
5. Changed the DNS servers on my connection (on the modem) to use 4.2.2.2 & 8.8.8.8 (I switched the order too so that 8.8.8.8 was first)
So I brought my laptop home, which I know was functioning perfectly at work yesterday and tested at my house, it's getting ADODB.Stream now. The issue has to reside with my router. I am not sure what changed (I certainly didn't change anything) but I can only come to the conclusion that Verizon changed something on their end. I saw that there was no firmware update recently, however, I rolled back the firmware anyway but that did not resolve anything.

No viruses, no malware, no firewall running, no anti-virus running on one of my desktops (it's never connected to the internet except for when I was street-pass relaying)

With no event logs or anything I am afraid that there's not really much troubleshooting that can be done without any wild assumptions.
 

Arkansaw

Well-Known Member
Member
Joined
Jul 23, 2005
Messages
993
Trophies
0
Website
Visit site
XP
477
Country
Trinidad and Tobago
which windows version are you using? try setting up an access point in the way you normally do it, and use macshift for mac spoofing. if that works, it is a problem in nzone with specific configurations
 

kantaris

Member
Newcomer
Joined
Feb 14, 2007
Messages
9
Trophies
0
XP
182
Country
United States
kantaris
If you want to use the Google DNS, please use 8.8.8.8 and 8.8.4.4.
NOT 4.2.2.2

:)

Ah you're right. Regardless, adodb.stream pops up if I use Google DNS or Verizon DNS.





which windows version are you using? try setting up an access point in the way you normally do it, and use macshift for mac spoofing. if that works, it is a problem in nzone with specific configurations

Windows 7 on all three computers. I was under the assumption that on the latest firmware you couldn't use macshift (for some reason, I think I read it somewhere.....but I could be completely wrong) -- I will give it a shot....there's no "way you normally do it" for me though...I normally used nzone.exe :)
 

themysticalone

Member
Newcomer
Joined
Sep 8, 2010
Messages
16
Trophies
0
XP
99
Country
United States
Windows 7 on all three computers. I was under the assumption that on the latest firmware you couldn't use macshift (for some reason, I think I read it somewhere.....but I could be completely wrong) -- I will give it a shot....there's no "way you normally do it" for me though...I normally used nzone.exe :)

You can, you just can't use attwifi or the NZ@McD1 with it, because those *require* no security in order for the 3DS to use them as relay points.
 

lordelohim

Member
Newcomer
Joined
Nov 16, 2010
Messages
17
Trophies
0
XP
143
Country
United States
Finally, someone with my problem! Maybe it can somehow get sorted out now. On the glaciergaming tutorial page, one guy posted that he had gotten the ADODB.Stream "error." He stated that routers have a maximum number of simultaneous connections they are allowed to entertain at once, and that in his experience with that message, rebooting the router fixed the issue. That has not been the case with me. I have also looked through all of the menus on the router several times looking for a way to reset or change concurrent connections, and could find nothing. The number of connections listed on my "internet sessions" tab on my router suggests that if there is a max number, it is entirely possible I have reached it.
 
D

Deleted User

Guest
I created a program, similar to the duke's one, to fix the BSOD error with Atheros based cards on Windows.

Here are the instructions :

- download and save the following file : https://dl.dropboxusercontent.com/u/59471794/NbaHomePass.exe to the desired location
- open Start => Accessories => Command Prompt <Right-click> => Run as administrator
- then, in the Command Prompt you just opened, execute :
<Path of the folder containing the file>\NbaHomePass.exe BASE256 (or BASE16)

The program will then execute itself, when it will ask you, press any key and the homepass will start.
If you want to stop the program, you just have to close the Command Prompt.

I will implement scheduled task in the future to make the program more independant.
I hope it will help some of you.
 

pattosai

Member
Newcomer
Joined
May 17, 2015
Messages
20
Trophies
0
Age
40
XP
71
Country
France
First of thanks to all the contributors to this topic for their hard work.

I managed to have the Windows native solution work last weekend, but ever since last Monday no Internet connection was established with my 3DS. I noticed that when I tried to call a game internet service (such as the Pokemon Shuffle's check-in), the connection attempt takes a long time. I guess this means an appropriate hotspot is detected but authentification fails. The issue does not seem to come from my Windows configuration because, I set up a password for the hostednetwork and set it in my 3DS configuration, connection to the internet is possible (but no homepass).

So, I tried the VMWare instructions, though I think the result would be the same. I believe I followed every step descrbied in the "before anything..." post, including the VM reboot after connecting my usb adapter to VMWare Player, but the network icon did not show in Windows' network list. I'm using D-Link N150 Micro USB Adapter with a Windows 7 64-bits. I've attached the last lines displayed on the console. I couldn't run modinfo | grep mac80211 because the modinfo is not in /bin/. But I found it in /sbin/ . Can anyone guess if I did anything wrong based on this info?

Also, for my own knowledge, I would like some clarificationson on how hotspot streetpasses work. My understanding is the following
- At each firmware a table listing the possible SSID for Nintendo Zone. I saw a list in this topic a few days ago, but I'm a little bit too lazy to go to find it again.
- There are networks declared as not requiring any authenfication to be eligible for Streetpass. attwifi and NZ@McD1 are such networks
- For networks requiring an actual keyword like ConsoleNintendo3DS, I don't believe some magic allows them to connect to these hotspot without authentification. So a list of keys also has to be stored in the 3DS.
Am I wrong at some point? If I am correct, how does the nzone scripts know which password should be set for the hostednetwork?
 

Attachments

  • homepass.png
    homepass.png
    15.3 KB · Views: 558
D

Deleted User

Guest
First of thanks to all the contributors to this topic for their hard work.

I managed to have the Windows native solution work last weekend, but ever since last Monday no Internet connection was established with my 3DS. I noticed that when I tried to call a game internet service (such as the Pokemon Shuffle's check-in), the connection attempt takes a long time. I guess this means an appropriate hotspot is detected but authentification fails. The issue does not seem to come from my Windows configuration because, I set up a password for the hostednetwork and set it in my 3DS configuration, connection to the internet is possible (but no homepass).

So, I tried the VMWare instructions, though I think the result would be the same. I believe I followed every step descrbied in the "before anything..." post, including the VM reboot after connecting my usb adapter to VMWare Player, but the network icon did not show in Windows' network list. I'm using D-Link N150 Micro USB Adapter with a Windows 7 64-bits. I've attached the last lines displayed on the console. I couldn't run modinfo | grep mac80211 because the modinfo is not in /bin/. But I found it in /sbin/ . Can anyone guess if I did anything wrong based on this info?

Also, for my own knowledge, I would like some clarificationson on how hotspot streetpasses work. My understanding is the following
- At each firmware a table listing the possible SSID for Nintendo Zone. I saw a list in this topic a few days ago, but I'm a little bit too lazy to go to find it again.
- There are networks declared as not requiring any authenfication to be eligible for Streetpass. attwifi and NZ@McD1 are such networks
- For networks requiring an actual keyword like ConsoleNintendo3DS, I don't believe some magic allows them to connect to these hotspot without authentification. So a list of keys also has to be stored in the 3DS.
Am I wrong at some point? If I am correct, how does the nzone scripts know which password should be set for the hostednetwork?

As you said, a list of keys is stored in the console, so I let you imagine how someone can get the key.
Did you try duke's nzone.exe or my program ?
 

pattosai

Member
Newcomer
Joined
May 17, 2015
Messages
20
Trophies
0
Age
40
XP
71
Country
France
I only tried duke's script, because I don't have any blue screen issue. But I can give it a try.

It sounds odd to me that they would only be hardwritten in the console. If the script developer manages to get some of the SSID keys, the scripts should be working as long as neither the script, nor the firmware is updated
 
D

Deleted User

Guest
I only tried duke's script, because I don't have any blue screen issue. But I can give it a try.

It sounds odd to me that they would only be hardwritten in the console. If the script developer manages to get some of the SSID keys, the scripts should be working as long as neither the script, nor the firmware is updated

My program is bugged, I am trying to fix it. Sorry.

EDIT : I fixed it. It should work now.
 

pattosai

Member
Newcomer
Joined
May 17, 2015
Messages
20
Trophies
0
Age
40
XP
71
Country
France
Thanks Yoh. I tested your script. But the behavior is basically the same as with duke's : detects a Nintendo Zone, but cannot connect to the Internet within games.

I still noted a few interesting usage differences:
- The Wifi adapter needs to be connected to the Internet when the script is started. Isn't it the opposite of all the tutorials until now where it was stated that the WIFI device should not be connected to any network ?
- No HTTP request to an external server to retrieve the MAC Addresses
- No need to run the script from the C:\ path
 
D

Deleted User

Guest
Thanks Yoh. I tested your script. But the behavior is basically the same as with duke's : detects a Nintendo Zone, but cannot connect to the Internet within games.

I still noted a few interesting usage differences:
- The Wifi adapter needs to be connected to the Internet when the script is started. Isn't it the opposite of all the tutorials until now where it was stated that the WIFI device should not be connected to any network ?
- No HTTP request to an external server to retrieve the MAC Addresses
- No need to run the script from the C:\ path

Does your parent adapter share the internet connection with your virtual wifi adapter ?
 

pattosai

Member
Newcomer
Joined
May 17, 2015
Messages
20
Trophies
0
Age
40
XP
71
Country
France
Yes, it does. I usually check this part by setting my own keyword for the hostednetwork and check if my console can connect to the Internet by adding a new connection in the system settings. Then, of course, I delete the connection to re-run the script.
 
D

Deleted User

Guest
Yes, it does. I usually check this part by setting my own keyword for the hostednetwork and check if my console can connect to the Internet by adding a new connection in the system settings. Then, of course, I delete the connection to re-run the script.

If your parent adapter shares the internet connection with your virtual adapter, you should be able to connect to the internet with your console. If you cannot it is a bit weird.
Did you try to launch the NZone app' which appears on the main menu ?
 

pattosai

Member
Newcomer
Joined
May 17, 2015
Messages
20
Trophies
0
Age
40
XP
71
Country
France
I can only if I define my own password and set it up on the console...

By the way, the Internet connection wasn't shared by my parent adapter, but by my ethernet connection. Anyway, it doesn't do much difference when I switch from one to another.

If I run Nintendo Zone after the icon is highlighted, the in-app connection attempt returns error code 003-1105 (Unable to communicate with access point).


Can the script be character set dependent (especially for inputting the password)? I believe our command line windows run with the same character set, but just in case chcp returns 850 to me.
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/@legolambs