653 posts in this topic

Recommended Posts

Vlad    10

This is how Pokemon accesses GTS:

1. conntest server (any response is sufficient)

2. SSL server that gives the NDS a "pid" (personal idendification)

3. the HTTP server (where pid is used to generate hashes, really weak security...)

So far step #1 and #3 can be manipulated and the NDS can be tricked but the SSL part is much harder and so far we only use a DNS server to simply let the rest of the communication go as default but only hook the HTTP requests as thats actually the GTS itself, thus we modify data send to the client. This is how NDS connects to the GTS In a nut shell. Also I believe Mystery Gifts connect to a SSL server (not the one we connect when using GTS, but still SSL I believe) thus it's not easy to emulate that. SSL is supposed to be secure, thus it's not easy to hack and emulate it -the client will deny the server if not everything is as it should be.

What we can do is distribute key items via Pokemon (as "held" items I suppose), hehe. Have not tried but perhaps it could work, if not meh then isn't a custom GTS server enough? D:

Share this post


Link to post
Share on other sites
sieghart    10

So I've just about gone through all of this and am having issues with setting this up correctly, Firstly I have NO CLUE what files to use because everybody keeps posting new ones or edited ones and etc... WHICH ONE IS CORRECT!!!, I'm trying to set up a distributive center to send pokemon to other people not on my network(mainly friends). With my current SendPKM file, It prompts me to enter a specific dotted quad in my DNS settings on my DS, how do I configure this program to send over the internet to other people on different networks. Could someone who got it working just maybe post a step by step tutorial from start to end(sorry if it would be alot of work to type out) on how to get the DNS server up and running online.

Thanks,

Sieghart

Share this post


Link to post
Share on other sites
zowayixx    10
...

Alright, so if I upload the files to my site's front page, it should have a better chance at working, right?

Share this post


Link to post
Share on other sites
AngelSL    10
Alright, so if I upload the files to my site's front page, it should have a better chance at working, right?

No, problem is the DS doesn't support CNAMEs probably. Did you do the fix I told you to try?

If this doesn't work, putting it at your frontpage won't either as you don't have a dedicated IP.. (shared IP using virtual hosts)

@Vlad I modified his script to return a CNAME instead of an IP. Theoretically it should work.

What we can do is distribute key items via Pokemon (as "held" items I suppose), hehe. Have not tried but perhaps it could work, if not meh then isn't a custom GTS server enough? D:

Won't work, you also need the event flag set, not just the Key Item. (which is why there is a special wonder card type for each of the event items in DPPHGSS, and not just a 'Item')

Share this post


Link to post
Share on other sites
zowayixx    10
Did you do the fix I told you to try?

Aw crap, you must have modified the one I had, because I downloaded another dnsserver.py because it wouldn't work, so I reverted the changes I made, and it still didn't work. I can't find what you told me to look for now. =/

Share this post


Link to post
Share on other sites
lizzledpink    10

Based on the findings here I've created a quick, very basic guide, readable by pretty much anybody who'd bother to be on this website, about how to use the GTS servers to download your own customized and created pokemon (.pkm files) to your Pokemon games. Check it out! http://projectpokemon.org/forums/showthread.php?8325-GTS-Servers-and-%28Valid%29-Pokemon-Creation-for-Dummies&p=73435&viewfull=1#post73435

Share this post


Link to post
Share on other sites
sieghart    10

So anyone have news of getting this to work through the internet so I can create events for my friends and stuff without me having to trade them or them having to come to my house? =<, I know its possible because of a site I saw recently that did it.(currently dont have the link to it as I am not at home)

Share this post


Link to post
Share on other sites
FarePak    10

You will need to forward port 80 on your router then tell your friends to set their DNS on their DS' as your external IP. You can get your external IP from whatismyip.com. After that, you can get your friends to connect to it via GTS.

Share this post


Link to post
Share on other sites
sieghart    10

Oh sweet, thanks. What about keeping it open so all my friend can do it though without me having to reopen sendpkm =S, because I'll be going to a friends house this weekend and there's like three of them who are going to want it, and my brother has my ds atm.

Share this post


Link to post
Share on other sites
FarePak    10

The programs code would need to be edited for that to happen. Unless you find someone willing to do this for you then you would need to re-open it each time.

Share this post


Link to post
Share on other sites
sieghart    10

hmm alright I'll have to look into that then, thank you for the help though, when I get home I'll give it a shot.

Oh um I guess one last question. Which file would need to be edited for me to be able to have it stay open til its awarded more than one. I'll do that myself and learn how, just need to know which ones.

Thanks in advance.

Share this post


Link to post
Share on other sites
FarePak    10

Not entirely sure as I don't know much about it myself but its most likely the pokehaxlib.py and sendpkm.py

Share this post


Link to post
Share on other sites
M@T    10

My program coded in VB.NET sends the .pkm at each request it receives until it is closed, you can find it here if you want.

I also included a DNS server, you just input your external IP address, you also forward your UDP 53 port and you're done, your friends don't even need to launch a DNS server on their computers, they only have to put your IP in their DS settings.

Vlad's PHP server is awesome too, but it needs Apache being installed and some modifications to fit your configuration.

Share this post


Link to post
Share on other sites
kickhopper    10
My program coded in VB.NET sends the .pkm at each request it receives until it is closed, you can find it here if you want.

I also included a DNS server, you just input your external IP address, you also forward your UDP 53 port and you're done, your friends don't even need to launch a DNS server on their computers, they only have to put your IP in their DS settings.

Vlad's PHP server is awesome too, but it needs Apache being installed and some modifications to fit your configuration.

Alright I cannot seem to get this to work for me, not sure exactly what the problem is. I forwarded port 53 properly but when I start the dns server it says, "DNS server started on 0.0.0.0:53" Any clue how to fix this? Also could you tell me, step by step, what exactly I need to do? First I start up sendpkm with a pkm file, then the DNS server? Any help would be appreciated.

Share this post


Link to post
Share on other sites
M@T    10

"DNS server started on 0.0.0.0:53" only means that the socket was successfully bound on the port 53 of your computer, this is NOT the equivalent of sendpkm.py's "Please set your DS's DNS server to 192.168.1.7" (for example).

This was more for debugging purpose actually.

So, step by step, you must :

- Know your external IP address, go here to have it for example

- Launch DNS_Server.exe, and input that IP when asked

- You are done with the DNS part, now start SendPKM.exe with a 236-byte .pkm or .bin file (you can drag and drop it on the .exe, that's much easier). It should say that it is ready and waiting for a connexion.

That's all.

If both UDP port 53 and TCP port 80 are forwarded and reachable from the Internet, then any person who sets your external IP as his DS's primary DNS server and connects to the GTS should receive the .pkm you chose.

But remember that it may not work when connecting with a DS in the same network, in that case you have to replace your external IP by your computer's private IP in both DNS_Server.exe and your DS's DNS settings.

Share this post


Link to post
Share on other sites
kickhopper    10

Ah yes, now that I look at the code I can see different colors used for success/fail. The printout just made it seem like a fail since one of the programs posted here had that printout as an error.

And yes, I was using my DS on the same network to test it out. So that would explain why it didn't work for me. Guess I'll have to have someone else test it for me. Thanks for the fast help.

Share this post


Link to post
Share on other sites
Pine    10
"DNS server started on 0.0.0.0:53" only means that the socket was successfully bound on the port 53 of your computer, this is NOT the equivalent of sendpkm.py's "Please set your DS's DNS server to 192.168.1.7" (for example).

This was more for debugging purpose actually.

So, step by step, you must :

- Know your external IP address, go here to have it for example

- Launch DNS_Server.exe, and input that IP when asked

- You are done with the DNS part, now start SendPKM.exe with a 236-byte .pkm or .bin file (you can drag and drop it on the .exe, that's much easier). It should say that it is ready and waiting for a connexion.

That's all.

If both UDP port 53 and TCP port 80 are forwarded and reachable from the Internet, then any person who sets your external IP as his DS's primary DNS server and connects to the GTS should receive the .pkm you chose.

But remember that it may not work when connecting with a DS in the same network, in that case you have to replace your external IP by your computer's private IP in both DNS_Server.exe and your DS's DNS settings.

M@T I have tested this method with a local Network, meaning connecting my DS to the same network as my PC and I have succeded. I believe most problems are because people don't know their Private IP.

On most router's settings (if you have access to them, which you should since it's your HOME NET) you can see a list of the DHCP clients, see what's your PC in there and use that number.

Anyway, as I was saying, I succeeded. I actually expected it to kick me off the connection (but to still get the Poke), like the fan GTS site does/did. But no, I actually saw the Pokemon arrival and then was left inside the GTS and I had to disconnect like I normally would.

I don't know if that's what should happen but I'm just letting you know. All else went smooth. Thanks a lot, bro.

Share this post


Link to post
Share on other sites
SwiftStratos    10
"DNS server started on 0.0.0.0:53" only means that the socket was successfully bound on the port 53 of your computer, this is NOT the equivalent of sendpkm.py's "Please set your DS's DNS server to 192.168.1.7" (for example).

This was more for debugging purpose actually.

So, step by step, you must :

- Know your external IP address, go here to have it for example

- Launch DNS_Server.exe, and input that IP when asked

- You are done with the DNS part, now start SendPKM.exe with a 236-byte .pkm or .bin file (you can drag and drop it on the .exe, that's much easier). It should say that it is ready and waiting for a connexion.

That's all.

If both UDP port 53 and TCP port 80 are forwarded and reachable from the Internet, then any person who sets your external IP as his DS's primary DNS server and connects to the GTS should receive the .pkm you chose.

But remember that it may not work when connecting with a DS in the same network, in that case you have to replace your external IP by your computer's private IP in both DNS_Server.exe and your DS's DNS settings.

Hey, I have followed your steps but I cannot seem to get the TCP port 80 forwarded, or at least I think I didn't, as it did not show up when I entered my external IP address (found in the link you provided), just the port 53 part.I'm obviously trying to get the distribution to work for those not on my network. Any help is appreciated, thanks !

Plus:

-I have followed your directions, I get the "Waiting for connexion.." on sendpkm, and as I said, I only see the "DNS server started on 0.0.0.0:53" after I put my external IP.

Distribution does not seem to be working for a friend not on my network.

Share this post


Link to post
Share on other sites
M@T    10
Anyway, as I was saying, I succeeded. I actually expected it to kick me off the connection (but to still get the Poke), like the fan GTS site does/did. But no, I actually saw the Pokemon arrival and then was left inside the GTS and I had to disconnect like I normally would.

I don't know if that's what should happen but I'm just letting you know..

You're lucky then, because most of the time, I get a BSOD when trying with Platinum, Heart Gold or Soul Silver, with every unofficial GTS. :tongue:

Diamond and Pearl work properly though.

Anyway, thanks for the feedback. :wink:

Hey, I have followed your steps but I cannot seem to get the TCP port 80 forwarded, or at least I think I didn't, as it did not show up when I entered my external IP address (found in the link you provided), just the port 53 part.I'm obviously trying to get the distribution to work for those not on my network. Any help is appreciated, thanks !

To forward your ports you can use that website to help you : http://portforward.com/.

Then, to see whether or not it was successful, test it here when SendPKM.exe is listening for connections : http://ping.eu/port-chk/ (only work for TCP ports, so you can't test your DNS UDP-53 port).

Share this post


Link to post
Share on other sites
Vlad    10

Hmm, I had this MW2 port check tool to help figure out if the ports are open or not... so what I did is modify the script and compile one for the Python scripts. It simply checks TCP80 and UDP53 and that they are properly open to the public. The script I made is in AutoIT3 so the ZIP includes the sources and a compiled executable. Note that AutoIT3 does show up as viruses on some antivirus programs but that's life, compile it on your own then. ;)

Maybe it helps with the ports issue, at least you will know if the ports are configured properly...

Note: ports 80 and 53 are special, the tool may even say they are open if they are not properly forwarded. I believe it's just something to do with routers or how the OS handles requests. Even if I strictly request the connectivity to go trough a specific IP (i.e. out trough the router then back in) it does not always do that -not on all OS and routers. Would be neat if we could have a port check to validate that ports are properly forwarded and such but I am not really much of a networking guy, hehe. ;p

pkmsendportcheck.zip

pkmsendportcheck.zip

Share this post


Link to post
Share on other sites
andreqms    10

Hi! First, I want to thank LordLandon and all guys that worked to make the 'sendpkm'! I used that to get local event Pokémon that I could not get like Jirachi, Arceus, etc... Thank you very much! =D

I am here to ask if someone know how to use it by getting a PDC file (Wonder Card)! I want that to use Key Itens events! I askes that and people from other web sites said that Project Pokémon is working in that.

Thank you againd, and sorry about my English! Bye!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now